笔者身边有朋友经常会不明白为什么同样的参数下WebBench与Loadrunner压测的结果差别很大,其实我们要了解其中的原理就会大概明白为什么了。
WebBench简介
WebBench作为Linux上一款优秀的web性能压力测试工具,用C语言编写,非常小巧,目前版本为v1.5,下载源码后直接编译即可使用,在系统上线前用WebBench进行并发测试可以先自行了解系统的承载能力。
Loadrunner简介
LoadRunner是一种预测系统行为和性能的负载测试工具,通过模拟上千万用户实施并发负载,实时的对性能监测来确认和查找问题。
HTTP响应的过程
客户端的HTTP请求发给服务端,服务端收到客户端的HTTP请求后并接受请求后,此时的HTTP响应的阶段分为三个部分:请求、状态码、响应信息(包含响应头和响应正文),常见的HTTP状态码有200成功、301重定向、400错误的请求、404找不到文件、500服务器内部错误等。
WebBench与Loadrunner的压测差异
正常情况请求一般是200成功(见上图),服务端口先给客户端返回一个成功状态码200,然后再发送给客户端响应的正文,例如html页面,css文件、图片、视频等。
对于WebBench只计算客户端收到到状态码的时间,而不计算随后具体的响应信息(响应头、响应正文)的传输时间。
对于Loadrunner是模拟了客户端现实场景的某个完整操作,响应时间包含请求、状态码、响应信息(响应头、响应正文)完整的时间。