写在前面
在学习ab工具之前,你需要了解一些压力测试的概念
吞吐量)。
概念:服务器并发处理能力的量化描述。 单位为reqs/s,是指给定并发用户数下单位时间内处理的请求数。 某个并发用户数在单位时间内可以处理的最大请求数称为最大吞吐率。
公式:请求总数/处理完成所用的时间
requestpersecond=complete requests/timetakenfortests
并发连接数(thenumberofconcurrentconnections ) )。
概念:服务在给定时刻接受的请求数。 简单来说,就是会话。
并发用户数(The number of concurrent users,Concurrency Level ) )。
概念:请注意区分此概念和并发连接数的差异。 一个用户可能同时生成多个会话或连接数。
用户平均请求等待时间(Time per request ) ) ) ) ) ) ) ) ) )。
公式:处理所有请求数所用的时间/(请求总数/并发用户数),即
timeperrequest=timetakenfortests/(complete requests/concurrency level )
服务器平均请求等待时间(timeperrequest : acrossallconcurrentrequests ) )。
公式:处理所有请求数所用的时间/总请求数
timetakenfor/testscompleterequests
如您所见,这是吞吐量的倒数。
同时,=用户的平均请求等待时间/并发用户数,即
timeperrequest/concurrency level
ab工具介绍
ab都叫apache bench
官方网站上的说明如下:
ab是Apache超文本传输协议(HTTP )的性能测试工具。 其设计意图是通过描述当前安装的Apache的运行性能,主要显示你安装的Apache每秒能处理多少个请求。
其他网站说明:
ab是apache附带的压力测试工具。 ab非常实用,不仅可以对apache服务器,还可以对其他类型的服务器进行网站访问压力测试。 例如,nginx、tomcat、IIS等。
下载ab工具
启动ab工具
例如,在windows环境中,apache的安装路径为C:apacheApache24
打开终端,输入命令
cd C:apacheApache24bin
可以启动ab
开始测试
输入命令
ab -n 100 -c 10 http://test.com/
其中-n表示请求数,-c表示并发次数
分析测试结果
上面的命令执行后,会出现测试报告
完整测试报告
此部分说明了web服务器的信息。 服务器使用nginx,域名为wan.bigertech.com,端口为80
服务器信息
此部分包含有关请求的文档的信息,位于“/”位置,文档大小为338436字节。 这是http响应的正文长度
文档信息
本节列出了压力测试的一些重要指标
重要指标
Concurrency Level: 100
//并发请求数
timetakenfortests 336050.872 seconds
//整个测试持续的时间
Complete requests: 1000
//已完成的请求数
故障请求: 0
//失败的请求数
total transferred 336013701482 bytes
//整个场景的网络传输量
html transferred 336013197000 bytes
//整个场景的HTML内容传输量
requestspersecond :19.66 [ #/sec ] (媒体)
//吞吐率,大家最关心的指标之一,相当于LR的每秒交易数,后面括号内的mean表示这是平均值
timeperrequest :5087.180 [ ms ]
//用户的平均请求等待时间,大家最关心的两个指标,相当于LR的平均事务响应时间,后面括号内的mean表示这是平均值
timeperrequest :50.872 [ ms ] () ) ) )。
//服务器的平均请求处理时间,大家最关心的指标之三
传输速率:263.02 [ kbytes/sec ] received
//通过平均每秒的网络流量,有助于消除网络流量过多和响应时间过长的问题
此段表示网络消耗的时间的分解
网络消耗时间
这一部分是每个请求处理时间的分布情况,50%的处理时间在4930ms以内,66%的处理时间在5008ms以内.重要的是看90%的处理时间。
根据情况
关于登录问题
进行压力测试可能需要用户登录,该怎么办?
请参考以下步骤。
首先使用帐户和密码登录,然后在“开发人员工具”中找到并记录标识此会话的Cookie值(Session ID )
如果只有一个cookie,则只需输入命令。
a B- n100-ckey=value http://test.com /
如果需要多个Cookie,请直接设置头。
a B- n100-h“cookie : key1=value 1; Key2=Value2” http://test.com/
总结
总之,ab工具ab体积小、简单,学习熟练,能提供必要的基本性能指标,但无图形化结果,无法监测。 因此,ab工具可以作为临时紧急任务和简单测试。
相同类型的压力测试工具包括webbench、siege和http_load