最近项目过程中碰到这类的问题,AB的压测结果非常好看,而LR的压测结果就不是那么理想。
后来通过查询相关资料,以及找相关技术人员咨询。整理过程和结论:
AB为单请求,只适合技术人员简单的做做测试,不适合压实际应用场景。
AB压测脚本:# ab -n 4000 -c 1000 http://www.xxx.com/
-n后面的4000代表总共发出4000个请求;-c后面的1000表示采用1000个并发(模拟1000个人同时访问),后面的网址表示测试的目标URL。
如果页面内含有php、图片,需再请求:
ab -n 4000 -c 1000 http://xxx.com/ab.php
ab -n 4000 -c 1000 http://xxx.com/ab.gif
ApacheBench与Loadrunner差异:
一个请求发给服务器,服务器接到请求后接受请求了,HTTP响应的内容分为三个部分:协议-状态码(200)-描述、响应头、响应正文。服务器先给客户端返回一个成功状态码200,然后再发送给客户端需要的东西,比如js、css、图片等,而AB计只算接收到状态码的时间,后面具体的响应信息或图片等文件的传输时间等就没有计算了,而LR是模拟了现实场景中一个用户的完整操作,响应时间涵盖:协议-状态码-描述、响应头、响应正文完整的内容。