web压力测试工具ab | 天使羊波波闪耀光芒 零之轨迹 天使羊波波
web压力测试工具ab
ab是apache自带的一款压力测试工具,安装完apache后就有了,一般在/usr/bin目录下。系统为CentOS。
1、安装apache
yum install httpd
2、ab使用方法形如
ab -c 20 -n 1000 http://www.example.com/
-c:并发数
-n:总请求数
===我蛋疼的看了源代码,这段可以跳过===ab是如何分配并发和请求数的呢?在test函数中,先给连接数和请求数分配内存,组http报文头、组http请求报文默认使用GET方法(最大2048个字节)进入for循环for (i = 0; i < concurrency; i++) { con[i].socknum = i; start_connect(&con[i]); }start_connect函数里,concurrency有几个并发,就创建几个socket连接apr_socket_create设置TCP窗口大小apr_socket_connectstarted++ 打开的并发数加加进入write_request函数apr_socket_send 把request里的内容通过socket发过去最大2048个字节 发送数据是一个字节一个字节发的吗?一个并发创建完成及一次请求发送后,出上一个for循环进入一个do while循环这个do while循环里面又有一个for循环for (i = 0; i < n; i++) n为并发数进入read_connection函数apr_socket_recv进入close_connection函数统计一些成功失败数量 平均时间,到一定数量会显示"Completed XXXX requests"apr_socket_close然后connect again,再次调用start_connect函数创建socket连接,再write_request,循环n次然后return===================================
假设c为并发数,n为总请求数,done为已完成数。从这里可以看出ab的运作方式是创建c个并发,同时发送c个请求,然后关闭socket连接,如果done小于n,则继续创建c个并发,同时发送c个请求,然后关闭socket连接,一直循环,直到done等于n时退出。
3、ab运行完成后会有比较详细的结果
Server Software: web服务器软件及版本Server Hostname: 请求的地址Server Port: 请求的端口Document Path: 请求的页面路径Document Length: 页面大小Concurrency Level: 并发数Time taken for tests: 测试总共花费的时间Complete requests: 完成的请求数Failed requests: 失败的请求数Write errors: 写入错误Total transferred: 总共传输字节数,包含http的头信息等HTML transferred: html字节数,实际的页面传递字节数Requests per second: 每秒处理的请求数,服务器的吞吐量(重要)Time per request: 平均数,用户平均请求等待时间Time per request: 服务器平均处理时间Transfer rate: 平均传输速率(每秒收到的速率)
4、其它注意事项
1)
ab并发数不能大于请求数,会提示
ab: Cannot use concurrency level greater than total number of requests
2)
请求数默认不能超过1024个,会提示
socket: Too many open files (24)
可用ulimit -n命令修改,例如:ulimit -n 8192 (设置用户可以同时打开的最大文件数)。
3)
并发数默认不能大于20000个,会提示
ab: Invalid Concurrency [Range 0..20000]
需要修改apache源代码support目录下ab.c文件,找到:
#define MAX_CONCURRENCY 20000
将宏定义的值改大,重新编译安装apache。
4)
提示
apr_socket_recv: Connection reset by peer (104)
网上说是apr-util有些问题,不太稳定,多试几次就好了。
5)
还有单独的apache bench源码包,及如何单独安装ab教程
下载:http://apachebench-standalone.googlecode.com/files/ab-standalone-0.1.tar.bz2
安装教程:https://code.google.com/p/apachebench-standalone/wiki/HowToBuild
6)测试时发现有如下错误
...Failed requests: 998 (Connect: 0, Receive: 0, Length: 998, Exceptions: 0)...
是因为在测试动态页面时,返回的长度和第一次不同,所以ab就判断失败了,对于动态页面这是合理的。可参考:http://mib168.iteye.com/blog/1299990
参考资料:
http://www.cnblogs.com/yjf512/archive/2011/05/24/2055723.html
http://www.kwx.gd/CentOSApp/CentOS-Apache-Bench.html
http://blog.csdn.net/largetalk/article/details/7337102
http://apr.apache.org/docs/apr/0.9/group__apr__network__io.html
http://httpd.apache.org/docs/2.2/programs/ab.html
分类: LINUX发表评论
更多阅读
部分白盒测试工具介绍 安卓白盒测试工具
一、JTEST1、简介:jtest是parasoft公司推出的一款针对java语言的自动化白盒测试工具,它通过自动实现java的单元测试和代码标准校验,来提高代码的可靠性。Jtest先分析每个java类,然后自动生成junit测试用例并执行用例,从而实现代码的最
渐变工具和渐变素材的使用——入门系列教程之三沧海原创 渐变背景素材
2011-10-07 2011-10-08转载本文引用自沧海阿哥《渐变工具和渐变素材的使用——入门系列教程之三(沧海原创)》上篇入门系列教程之二讲了PS素材的下载、安装,本篇重点介绍渐变工具和渐变素材的具体使用。渐变工具的作用是产生逐渐变化的
5款浏览器兼容性测试工具 网站浏览器兼容性测试
5款浏览器兼容性测试工具Browsershots一个在线测试工具,支持很多浏览器,比如一些版本老掉牙的浏览器,和一些你可能从未听说过的浏览器。测试结果基本靠谱,但是等待时间稍长,一般都需要几分钟。
转载 最新版傲视千雄web传奇+GM工具一键启动(100%可玩) 4399傲视千雄
原文地址:最新版傲视千雄web传奇+GM工具一键启动(100%可玩)作者:corky解压后运行 “一键启动傲视千雄服务端.exe”(确保目录名是D:Web_Mirserver)等服务器启动成功后如图:共四个cmd窗口。打开浏览器 输入 http://127.0.0.1/indexDemo
自动化单元测试工具Junit Factory使用介绍 junit自动化测试
最近在PassPort项目中,很多开发人员都采用了Junit作为单元测试工具,保证代码质量,所以我最近研究了agitar公司的一种免费的junit自动生成的工具-junit factory,agitar公司有一套更优秀的商业软件---自动化单元测试工具agitarone。Junit