`
xiaobian
  • 浏览: 580156 次
  • 来自: 北京
社区版块
存档分类
最新评论

压力值测试工具

阅读更多

写一下Siege,webbench,ab这几种压力测试工具的使用方法,心得

Filed under: 运维管理, 运维辅助 | <!--<span class="comments"></span>-->
Posted on

注:压力测试要区分基准测试,应用测试, 不同的应用有不同的表现, 基准测试主要测试服务器的性能,而不是服务器在某个应用下的表现.进入正题.

Siege(英文意思是围攻)是一个压力测试和评测工具
#./configure --prefix=/usr/local/siege ;
#make
#make install

任务列表:url.txt文件
siege -c 20 -r 2 -f url.txt
参数说明:
-c 20 并发20个用户
-r 2 重复循环2次
-f url.txt任务列表:URL列表

输出样例:

** Siege 2.59
** Preparing 20 concurrent users for battle. 这次“战斗”准备了20个并发用户
The server is now under siege.. done. 服务在“围攻”测试中:
Transactions: 40 hits 完成40次处理
Availability: 100.00 % 成功率
Elapsed time: 7.67 secs 总共用时
Data transferred: 877340 bytes 共数据传输:877340字节
Response time: 1.65 secs 相应用时1.65秒:显示网络连接的速度
Transaction rate: 5.22 trans/sec 平均每秒完成5.22次处理:表示服务器后台处理的速度
Throughput: 114385.92 bytes/sec 平均每秒传送数据:114385.92字节
Concurrency: 8.59 最高并发数 8.59
Successful transactions: 40 成功处理次数
Failed transactions: 0 失败处理次数

注意:由于速度很快,可能会达不到并发速度很高就已经完成。Response time显示的是测试机器和被测试服务器之间网络链接状况。Transaction rate则表示服务器端任务处理的完成速度。

辅助工具:
增量压力测试:

为了方便增量压力测试,siege还包含了一些辅助工具:
bombardment (1)
是一个辅助工具:用于按照增量用户压力测试:
使用样例:
bombardment url.txt 5 3 4 1
初始化URL列表:url.txt
初始化为:5个用户
每次增加:3个用户
运行:4次
每个客户端之间的延迟为:1秒

输出成CSV格式:
siege2csv.pl (1)
siege2csv.pl将bombardment的输出变成CSV格式:
Time Data Transferred Response Time Transaction Rate Throughput Concurrency Code 200 (note that this is horribly broken.)
242 60.22 603064 0.02 4.02 10014.35 0.08
605 59.98 1507660 0.01 10.09 25136.05 0.12
938 59.98 2337496 0.02 15.64 38971.26 0.26
1157 60 2883244 0.04 19.28 48054.07 0.78

webbench
-----------------------------------------
webbench最多可以模拟3万个并发连接去测试网站的负载能力
tar zxvf webbench-1.5.tar.gz
cd webbench-1.5
make && make install

webbench -c 500 -t 30 http://127.0.0.1/test.jpg
参数说明:-c表示并发数,-t表示时间(秒)

测试结果示例:
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET http://127.0.0.1/test.jpg
500 clients, running 30 sec.
Speed=3230 pages/min, 11614212 bytes/sec.
Requests: 1615 susceed, 0 failed.
参数说明:
-c 20 并发20个用户
-r 2 重复循环2次
-f www.chedong.com.url 任务列表:URL列表

输出样例:
** Siege 2.59
** Preparing 20 concurrent users for battle. 这次“战斗”准备了20个并发用户
The server is now under siege.. done. 服务在“围攻”测试中:
Transactions: 40 hits 完成40次处理
Availability: 100.00 % 成功率
Elapsed time: 7.67 secs 总共用时
Data transferred: 877340 bytes 共数据传输:877340字节
Response time: 1.65 secs 相应用时1.65秒:显示网络连接的速度
Transaction rate: 5.22 trans/sec 平均每秒完成5.22次处理:表示服务器后台处理的速度
Throughput: 114385.92 bytes/sec 平均每秒传送数据:114385.92字节
Concurrency: 8.59 最高并发数 8.59
Successful transactions: 40 成功处理次数
Failed transactions: 0 失败处理次数

注意:由于速度很快,可能会达不到并发速度很高就已经完成。Response time显示的是测试机器和被测试服务器之间网络链接状况。Transaction rate则表示服务器端任务处理的完成速度。

辅助工具:
增量压力测试:
为了方便增量压力测试,siege还包含了一些辅助工具:
bombardment (1)
是一个辅助工具:用于按照增量用户压力测试:
使用样例:
bombardment urlfile.txt 5 3 4 1
初始化URL列表:urlfile.txt
初始化为:5个用户
每次增加:3个用户
运行:4次
每个客户端之间的延迟为:1秒

输出成CSV格式:
siege2csv.pl (1)
siege2csv.pl将bombardment的输出变成CSV格式:
Time Data Transferred Response Time Transaction Rate Throughput Concurrency Code 200 (note that this is horribly broken.)
242 60.22 603064 0.02 4.02 10014.35 0.08
605 59.98 1507660 0.01 10.09 25136.05 0.12
938 59.98 2337496 0.02 15.64 38971.26 0.26
1157 60 2883244 0.04 19.28 48054.07 0.78

APACHE 的 AB
-----------------------------------------
./ab -c 300 -n 1000 http://www.zaojiao.com/test.html

ab -n 全部请求数 -c 并发数 测试url
Concurrency Level: 50 #并发数
Time taken for tests: 92.76140 seconds #全部请求完成耗时
Complete requests: 10000 #全部请求数
Failed requests: 1974 #失败的请求
(Connect: 0, Length: 1974, Exceptions: 0)
Write errors: 0
Total transferred: 827019400 bytes #总传输大小
HTML transferred: 825219400 bytes
Requests per second: 108.61 [#/sec] (mean) #每秒请求数(平均)
Time per request: 460.381 [ms] (mean) #每次并发请求时间(所有并发)
Time per request: 9.208 [ms] (mean, across all concurrent requests) #每一请求时间(并发平均)
Transfer rate: 8771.39 [Kbytes/sec] received #传输速率

以下结果时间每次有所偏差,均取相对平均值。
test.html
1 1000 1.296 771/s
5 1000 0.4826 2072/s
10 1000 5.142 194/s

700 700 3.36 208/s
700 2100 6514 321/s
2000 2000 3.2 608
6000 6000 6.2 983

这三种工具从机理上是一样的,根据测试的要求选择合适的工具.

分享到:
评论

相关推荐

    DNS压力测试工具安装使用.docx

    在bind中,有一款自带的压力测试软件,queryperf。使用这款软件可以对DNS服务器作请求测试,并且使用方法简单,我们可以使用queryperf测试多次,取一个平均值,这样就算结果不准确,也不会和实际情况相差太大。

    HTTP压力测试工具

    WinForm中文界面,只需简单设定即可工作的网站压力测试小软件,结果涵盖较全面,可以测试网站的最大性能值,通过视图界面可以轻松掌握服务器性能状态。 相比其它专业测试软件,它适合于进行纯粹的压力测试,而不必...

    apache-jmeter-3.10 压力测试工具

    压力测试工具LoadRunner是收费的,而且操作复杂。作为开发人员当然是用apache提供的jmeter,免费容易上手。 jmeter下载地址http://jmeter.apache.org/首先下载解压到某个盘,我放在了D盘 然后配置环境变量: 变量...

    Android CPU 压力测试

    经测试在MTK平台1G内存4核CPU占用比在50%左右,偶尔可能会达到70%以上。 超过3D游戏及其它任何应用。 当应用占用CPU比超过一定系统的值后,会产生大量ANR(应用 无响应)请选择等待。 如: User 63%, System 31%, ...

    TCPSocket与Websocket互通压力测试工具

    2、ws服务端和Socket服务端必须写成服务器的内网地址(不是127.0.0.1,此值只能本地访问没问题,外网无法访问的;测试多次) 3、外部客户端必须连接服务端的公网地址。 4、注意修改,一处不对整个通道无法正常通讯!...

    处理器外围内存压力测试工具源码

    一款在用户空间下,用于测试内存正确性的实用工具,适用于大多数平台。可以在32位或64位的类Unix操作系统编译和运行(当然也包括MacOs)。这款工具主要面向硬件开发人员,从4.1.0版本开始,memtester可以指定起始...

    如何调整压力测试工具[2]

    如何调整压力测试工具[2]压力测试工具如何修复要修复压力测试,需要知道用户/线程发出请求的速度。所有用户的速度之和就转化为服务器接受请求的速度。一旦确定了这个值,就可以对工具发出请求的速度进行调整。下面的...

    压力测试工具Apache-Jmeter-5.5

    Apache JMeter是100%纯...通过你创建的测试脚本和assertions来验证你的程序返回了所期待的值。为了更高的适应性,JMeter允许调用二次开发的jar包来丰富你的测试场景;JMeter允许你使用正则表达式来创建这些assertions.

    cpuPress:(A simple Linux CPU pressure test tools which can assign time lasts and CPU Utilization based on core numbers) 一个简单的、可指定压力值和时长的 Linux CPU 压力工具

    需要安装cpulimit工具,CentOS系统下cpuPress默认会帮你安装,脚本已在CentOS7.2测试通过,可以在脚本开头修改指定的压力值和时长//默认压力值30%,时长30秒DEST_LIMIT=30 //cpu使用率压力值DEST_TIME=30 //脚本执行...

    MoccaCPU:基于Java的CPU压力测试工具-开源

    MoccaCPU是用Java编写的CPU压力测试工具。 它在测试过程中使用蒙特卡洛算法来计算π(Pi)的近似值。 可以启动多个线程以使用所有给定CPU内核的全部容量。

    LoadRunner性能测试工具实战视频教程【全套26集】

    LoadRunner性能测试工具实战视频教程【全套26集】 随机函数 在软件测试工具中如何巧用LoadRunner的随机函数。 LoadRunner有自带的随机函数,如果巧妙的加以采用,能解决一些看似很困难的实际问题。 一个项目的性能...

    stretcd:etcd的压力测试工具

    拉伸 str-etcd强调您的 etcd 集群 关于 stretcd 会将指定大小的键填充到命名空间/stretcd/ 。 重要的是要记住 ETCD_SERVER...用值填充集群 $ docker run --rm -e ETCD_SERVER=172.17.42.1:4001 -e ETCD_ACTION=popula

    硬件信息检测工具 AIDA64 Extreme 6.25.5400 中文多语免费版.zip

    AIDA64中文版是专业测试硬件信息和系统信息的好工具,它针对系统硬件能查探的信息远比 CPU-Z 等专业硬件检测软件丰富。 AIDA64 Extreme Edition 免费版 AIDA64 是全球第一的硬件识别、诊断工具,采用 32 位的底层...

    网上书店前台系统软件测试课程设计.zip

    该项目请用idea软件打开 该项目请用idea软件打开 ...性能测试:用LoadRunner(负载测试工具可以很好地对目标系统的性能指标进行评价)对某个系统进行稳定性测试和压力测试(通过逐步增加系统负载,测试系统性能

    路由跟踪测试小工具 WinMTR 0.92 + x64 中.zip

    WinMTR 中文版是 Laurentiu Stanimir 开发的一款网络诊断工具,集成了 tracert 与 ping 这两个命令的图形界面,使用 WinMTR 可以直接的看到各个节点的响应时间及丢包率,适合 Windows 下做路由追踪及 Ping 测试。...

    mvdost:用于压力测试系统和建模基于 DoS 的攻击的多向量拒绝服务工具,以创建统计异常和基于签名的警报机制

    移动端用于压力测试系统和建模基于 DoS 的攻击的多向量拒绝服务工具,以创建统计异常和基于签名的警报机制。 这是一个粗略的版本,所以它可能有问题,但核心功能就在那里。 有关用法,请使用 -h 或 --help。 该工具...

    软件测试课程设计.zip

    性能测试:用LoadRunner(负载测试工具可以很好地对目标系统的性能指标进行评价)对某个系统进行稳定性测试和压力测试(通过逐步增加系统负载,测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态,...

    LoadRunner自动化测试工具的应用V3.0

    压力测试:已知系统高峰期使用人数,验证各事务在最大并发数(通过高峰期人数换算)下事务响应时间能够达到客户要求。系统各性能指标在这种压力下是否还在正常数值之内。系统是否会因这样的压力导致不良反应(如:宕...

    SQLSERVER执行时间统计工具SQLQueryStress

    Machanic提供的SQLQueryStress工具可用于在测试存储过程时施加额外的压力。在测试存储过程时,还可以使用此工具将数据集应用为随机参数值。您还可以在tools文档页面上阅读关于sqlstress stest的更多信息,以了解关于...

    AndroidMonkey压力测试

    本文主要介绍JAVA环境的搭建、AndroidSDK工具安装、启动一个Android环境、AndroidMonkey压力测试、分析测试报告。本文来自于博客园,由火龙果软件Alice编辑、推荐。1.安装jdk-8u151-windows-x64,可以到官网或者应用...

Global site tag (gtag.js) - Google Analytics