没有安装siege?

可参考我的另一篇博客

使用siege执行压力测试笔记

场景分析

使用siege对https://www.baidu.com/进行加压。

要求

模拟20个用户同时访问

一共跑3个循环

实现

[admin@ ~]$ siege -c 20 -r 3 https://www.baidu.com/ //漫长的等待

测试结果

  English                  示意数据                 中文释意
Transactions: 600 hits 处理事务总次数
Availability: 90.91 % 处理事务成功率
Elapsed time: 13.54 secs 测试用时
Data transferred: 34.26 MB 测试传输数据量
Response time: 0.36 secs 从发送到接收的平均响应时间
Transaction rate: 44.31 trans/sec 每秒事务处理量(tps)
Throughput: 2.53 MB/sec 数据吞吐率
Concurrency: 16.07 并发用户数
Successful transactions: 600 成功事物次数
Failed transactions: 60 失败事务次数
Longest transaction: 2.54 最长响应时间
Shortest transaction: 0.02 最短响应时间

查看帮助

[admin@ ~]$ siege -h

New configuration template added to /root/.siege
Run siege -C to view the current settings in that file
SIEGE 4.0.4
Usage: siege [options]
siege [options] URL
siege -g URL
Options:
-V, --version VERSION, prints the version number.
-h, --help HELP, prints this section.
-C, --config CONFIGURATION, show the current config.
-v, --verbose VERBOSE, prints notification to screen.
-q, --quiet QUIET turns verbose off and suppresses output.
-g, --get GET, pull down HTTP headers and display the
transaction. Great for application debugging.
-p, --print PRINT, like GET only it prints the entire page.
-c, --concurrent=NUM CONCURRENT users, default is 10
-r, --reps=NUM REPS, number of times to run the test.
-t, --time=NUMm TIMED testing where "m" is modifier S, M, or H
ex: --time=1H, one hour test.
-d, --delay=NUM Time DELAY, random delay before each requst
-b, --benchmark BENCHMARK: no delays between requests.
-i, --internet INTERNET user simulation, hits URLs randomly.
-f, --file=FILE FILE, select a specific URLS FILE.
-R, --rc=FILE RC, specify an siegerc file
-l, --log[=FILE] LOG to FILE. If FILE is not specified, the
default is used: PREFIX/var/siege.log
-m, --mark="text" MARK, mark the log file with a string.
between .001 and NUM. (NOT COUNTED IN STATS)
-H, --header="text" Add a header to request (can be many)
-A, --user-agent="text" Sets User-Agent in request
-T, --content-type="text" Sets Content-Type in request
--no-parser NO PARSER, turn off the HTML page parser
--no-follow NO FOLLOW, do not follow HTTP redirects Copyright (C) 2017 by Jeffrey Fulmer, et al.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE.

常用参数

-c 200 指定并发数200
-d 指定请求的延迟时间,注意每个请求间随机延迟
-r 5 指定测试的次数5
-f urls.txt 指定url列表,可以一次给多个地址加压
-t 5 持续测试5分钟
-g 获取请求的headers信息并打印出来,debug专用
-H 指定请求的headers信息
-l或--log=[File] 指定测试结果的路径

深入实战

需求1:

对ur.tencent.com的下面几个页面进行加压,以便暴露系统的瓶颈。

http://ur.tencent.com/categories/7
http://ur.tencent.com/categories/7/?page=2
http://ur.tencent.com/categories/7/?page=3

要求

并发数是5,持续运行1分钟。

步骤:

[admin@ ~]$ vi urls.txt //创建文件插入上面3个链接

执行压测:

[admin@ ~]$ siege -c 5 -t 1M -f urls.txt

等待结果:

以上执行数说明:

显示执行总数421hits,成功数411,失败0,成功率却显示100.00%,是里面有status code(状态码) == 300的请求,这个会让请求总数变多,所以执行总数显示大于成功数+失败数

有关状态码可点击了解

需求2:

保存siege日志

对ur.tencent.com的下面几个页面进行加压,以便暴露系统的瓶颈,并将结果记录到日志。

http://ur.tencent.com/categories/7
http://ur.tencent.com/categories/7/?page=2
http://ur.tencent.com/categories/7/?page=3

步骤:

[admin@ ~]$ vi urls.txt //创建文件插入上面3个链接

执行压测:

[admin@ ~]$ siege -c 5 -t 1M -f urls.txt --log=result.csv

等待结果:

现在我们当前工作文件就已经出现了一个result.csv文件了

[admin@ ~] sz result.csv //下载到本地

双击打开就有我们需要的结果日志了

需求3:

压测时候启用gzip压缩

gzip压缩就是指服务器在返回请求时候先将请求压缩一下,以减少response的体积,客户端收到response之后会自行解压,这是提升传输速度的一般做法。

我们仍然对上面的url进行加压,不过这次我们需要使用gzip。

在请求头中加入Accept-Encoding:gzip就可以告诉服务器返回压缩后的response。

执行压测:

[admin@ ~]$ siege -c 5 -t 1M -f urls.txt -H “Accept-Encoding:gzip” --log=result_gip.csv

等待结果:

现在我们当前工作文件就已经出现了一个result_gip.csv文件了

[admin@ ~] sz result_gip.csv //下载到本地

双击打开就有我们需要的结果日志了

需求4:对移动站点进行压测

对www.baidu.com移动版本进行加压。

其实只需要发送相应的user-agent,服务器就会根据这个值判断浏览器是移动版还是桌面版。

该需求里,我们只需要发送iphone的user-agent给服务器,服务器自然就会返回移动站点的请求了。

[admin@ ~]$ siege -c1 -r1 http://www.baidu.com //普通执行并发数1循环1次
** SIEGE 4.0.4
** Preparing 1 concurrent users for battle.
The server is now under siege...
HTTP/1.1 200 0.27 secs: 30737 bytes ==> GET /
HTTP/1.1 200 0.09 secs: 1131 bytes ==> GET /baidu.html?from=noscript
HTTP/1.1 200 0.09 secs: 91 bytes ==> GET /img/gs.gif
HTTP/1.1 200 0.08 secs: 3757 bytes ==> GET /5eN1bjq8AAUYm2zgoY3K/r/www/cache/bdorz/baidu.min.css
HTTP/1.1 200 0.04 secs: 33167 bytes ==> GET /r/www/cache/static/jquery/jquery-1.10.2.min_65682a2.js
HTTP/1.1 200 0.07 secs: 705 bytes ==> GET /img/baidu_jgylogo3.gif
HTTP/1.1 200 0.12 secs: 7877 bytes ==> GET /img/bd_logo1.png Transactions: 7 hits
Availability: 100.00 %
Elapsed time: 0.76 secs
Data transferred: 0.07 MB
Response time: 0.11 secs
Transaction rate: 9.21 trans/sec
Throughput: 0.10 MB/sec
Concurrency: 1.00
Successful transactions: 7
Failed transactions: 0
Longest transaction: 0.27
Shortest transaction: 0.04

可以看到上面访问桌面版本的百度首页有7个请求。

模拟iphone7试一下,iphone的user-agent可以在这里找到。

[admin@ ~]$ siege -c1 -r1 -A"Apple-iPhone7C1/1202.440" http://www.baidu.com
** SIEGE 4.0.4
** Preparing 1 concurrent users for battle.
The server is now under siege...
HTTP/1.0 302 5.05 secs: 0 bytes ==> GET /
HTTP/1.1 200 0.09 secs: 1229 bytes ==> GET /?from=1015785a
HTTP/1.1 200 0.08 secs: 2340 bytes ==> GET /static/index/u.png Transactions: 3 hits
Availability: 100.00 %
Elapsed time: 5.22 secs
Data transferred: 0.00 MB
Response time: 1.74 secs
Transaction rate: 0.57 trans/sec
Throughput: 0.00 MB/sec
Concurrency: 1.00
Successful transactions: 3
Failed transactions: 0
Longest transaction: 5.05
Shortest transaction: 0.08

解析上面使用的命令:

-c1 -r1 :并发数1循环1次

-A"Apple-iPhone7C1/1202.440":在请求中设置用户代理为iphone在这里找。

示意图:



可以看到移动版只有3个请求.

到这就结束了

使用siege执行压力测试的更多相关文章

  1. 用Jmeter对数据库执行压力测试

    转载:http://www.cnblogs.com/chengtch/p/6198900.html 在我看来压力测试的压测对象可以分为UI,接口及数据库三个部分吧,对界面及接口进行压测还算熟悉, 定位 ...

  2. ab命令执行压力测试

    ab是Apache超文本传输协议(HTTP)的性能测试工具:设计意图是描绘当前所安装的Apache的执行性能,主要是显示你安装的Apache每秒可以处理多少个请求:ab不仅仅能进行基于apache服务 ...

  3. debian下使用siege进行压力测试

    一:siege siege是开源的一个测试工具,可以对指定文本的URL列表进行负载测试,也可以在执行其他请求前让某个请求休眠,从而让你感觉某个用户在转移到web应用的下一个文档前正在读取该文档. ht ...

  4. 使用JMeter进行简单的压力测试

    一.压力测试 顾名思义:压力测试,就是  被测试的系统,在一定的访问压力下,看程序运行是否稳定/服务器运行是否稳定(资源占用情况). 比如: 2000个用户同时到一个购物网站购物,这些用户打开页面的速 ...

  5. jmeter 压力测试 参数

    Aggregate Report 是 JMeter 常用的一个 Listener,中文被翻译为“聚合报告”.今天再次有同行问到这个报告中的各项数据表示什么意思,顺便在这里公布一下,以备大家查阅. 如果 ...

  6. 使用 JMeter 进行压力测试

    一.前言 压力测试是每一个Web应用程序上线之前都需要做的一个测试,他可以帮助我们发现系统中的瓶颈问题,减少发布到生产环境后出问题的几率:预估系统的承载能力,使我们能根据其做出一些应对措施.所以压力测 ...

  7. go Test的实现 以及 压力测试

    引用 import "testing" 一些原则 文件名必须是 *_test.go* 结尾的,这样在执行 go test 的时候才会执行到相应的代码 必须 import testi ...

  8. mysqlslap 压力测试使用总结

    今天从运维同事那听说了mysql压力测试工具mysqlslap.经了解其实mysql自带就有一个叫mysqlslap的压力测试工具,还是模拟的不错的.下面举例说说.mysqlslap是从5.1.4版开 ...

  9. Jmeter压力测试(简单的http请求)-实例

    服务端系分提供的某接口样例为: 评估后可采用使用jmeter进行压力测试的步骤为: 启动jmeter:在bin下点击jmeter.bat,运行jmeter 2. 创建测试计划: 默认启动jmeter时 ...

随机推荐

  1. python爬虫 bs4_4select()教程

    http://www.w3.org/TR/CSS2/selector.html 5 Selectors Contents 5.1 Pattern matching 5.2 Selector synta ...

  2. 已以用户 NT AUTHORITY\SYSTEM 的身份执行。 对象 名称 'XXX' 包含的前缀超出了最大限值。最多只能有 2 个。

    我写了一个存储过程,里面用到了链接服务器,需要把这台电脑上的数据传送到连接服务器上去 insert [链接服务器].[数据库].[dbo].[表名] 我的数据 这样的格式是完全没问题的,问题出在于我t ...

  3. Centos6.8-hadoop-2.7.2 64 bit源码编译(伪分布-5大守护进程在本机上)

    1.安装插件 安装jdk/ant/libtool/protobuf/maven/zlib-devel/openssl-devel/ncurses-devel.gcc.snappy.bzip #set ...

  4. Dojo与jQuery综合比较分析

    最近一直都在参与项目,无法抽空写些或者看些东西,周末抽了点时间看了下关于Dojo和Jquery的东西,在CSDN上看到一篇两个框架进行对比的文章,感觉写的不错,就拿了过来,没有别的意思,一来想保留下来 ...

  5. aircrack-ng套件学习笔记

    Aircrack-ng套件 1.airdecap-ng 该工具主要用于对加密无线数据报文的解码. 1.当无线网络启用了WEP或者WPA-PASK加密,可以使用wireshark过滤,过滤条件为:IEE ...

  6. 《深入理解java虚拟机》第三章 垃圾收集器与内存分配策略

    第三章 垃圾收集器与内存分配策略 3.1 概述 哪些内存需要回收 何时回收 如何回收 程序计数器.虚拟机栈.本地方法栈3个区域随线程而生灭. java堆和方法区的内存需要回收.   3.2 对象已死吗 ...

  7. 20155302 2016-2017-2 《Java程序设计》第九周学习总结

    20155302 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 基本数据库操作相关的JDBC接口或类是位于java.sql包中.在程序中要取得数据库联机,我 ...

  8. python的特殊方法介绍

    __repr__.__str__ __len__.__getitem__.__setitem__.__delitem__.__contains__ __iter__.__reversed__.__ne ...

  9. Mac下配置多个SSH KEY访问远程Git服务

    第一步 生成对应的ssh key 1 后面输入你的用户名 或者 邮箱 2 输入一个独立的ssh key名字 区别之前的名字 第二步  编辑 config文件 在.ssh/目录下面 在config文件配 ...

  10. Python字符串解析方法汇总

    Python字符串方法解析 1.capitalize 将首字母大写,其余的变成小写 print('text'.capitalize()) print('tExt'.capitalize()) 结果: ...