3.1.2 Locust和LoadRunner
LoadRunner是性能测试领域的标志性工具。LoadRunner以模拟上千万用户实施并发负载并进行实时性能监测的方式确认和查找问题,因而能够对整个软件架构进行测试。LoadRunner还能最大限度地缩短测试时间、优化性能并缩短应用系统的发布周期。LoadRunner适用于各种架构的自动负载测试,能预测系统行为并评估系统性能。LoadRunner的免费版本仅支持50个并发用户,这对于自学确实够用了,但对于工程应用远远不够。下面将通过建立模拟性能测试场景来对比Locust和LoadRunner。
1.场景设置
按照表3-1所示的性能测试场景,分别进行LoadRunner和Locust的场景设置。
表3-1 性能测试场景
图3-2显示了LoadRunner的场景设置。
图3-2 LoadRunner的场景设置
Locust的场景设置方法及对应的参数如代码清单3-1所示。
代码清单3-1
参数的作用如下。
--no-web表示不使用Web界面运行测试。
-u用于设置虚拟用户数。
-r用于设置每秒启动的虚拟用户数。
-t用于设置运行时间。
--host用于指定被测应用的URL。
2.结果对比
LoadRunner中的测试结果如图3-3所示。
图3-3 LoadRunner中的测试结果
从测试结果可以看出,LoadRunner共运行5分32秒,发送请求26 599次,最短响应时间为0.024s,平均响应时间为0.36s,最长响应时间为18.05s,90分位数为0.287s,无访问失败的情况发生。
Locust中的测试结果如图3-4所示。
图3-4 Locust中的测试结果
从测试结果可以看出,Locust发送请求42 099次,最短响应时间为29ms,最长响应时间为17 028ms,平均响应时间为1394ms,90分位数为1500ms,无访问失败的情况发生。
3.对比分析
表3-2对LoadRunner和Locust的测试结果做了对比分析。
表3-2 对比分析LoadRunner和Locust的测试结果
从表3-2可以看出,LoadRunner与Locust的最长响应时间和最短响应时间差不多,但是Locust发送请求的效率比LoadRunner高,这会导致更多的请求要在服务器端进行处理。LoadRunner的平均响应时间短于Locust,并且90分位数也小于Locust,原因可能是Locust发送请求的速度更快,单位时间内发送的请求更多,这会导致要在服务器端处理的请求增多,响应时间受到影响。但是,性能测试无论使用哪种工具,得到的都是相对结果,因此只需要保证在测试及优化过程中使用相同的工具和网络环境进行测试,就可以达到性能测试和优化原始工作流程的预期。