Locustt完成性能测试之持续测试!
在性能测试过程中,运行界面的顶部除显示Locust的Logo之外,还显示被测系统的根地址、虚拟用户的运行状态、RPS(每秒请求数)和实时的失败率。右上角的两个按钮分别用于停止测试和重置统计数据,如图3-7所示。
图3-7运行界面中右上角的两个按钮
我们既可以查看当前所有虚拟用户的运行状态,也可以通过单击虚拟用户运行状态下方的Edit来实时修改虚拟用户的数量及每秒启动的虚拟用户数。要停止测试,单击STOP按钮。若单击Reset Stats按钮,则
会重置下方实时显示的列表,如图3-8所示。
图3-8实时显示的列表
在图3-8所示的列表中,部分字段的含义如下。
Type:请求的类型,如GET或POST。
Name:请求的路径(主要相对于主机而言)。
# Requests:当前请求的数量。
# Fails:当前请求失败的数量。
Median(ms):中间值,单位是毫秒。通常情况下,50%的服务器响应时间短于中间值,而剩下50%的服务器响应时间长于中间值。
Average(ms):平均值,单位是毫秒,表示所有请求的平均响应时间。
Min(ms):请求的最短服务器响应时间,单位是毫秒。
Max(ms):请求的最长服务器响应时间,单位是毫秒。
Average size(bytes):平均请求的大小,单位是字节。
Current RPS:当前的每秒请求数。
Current Failures/s:当前的请求失败数。
Charts标签页显示了各种实时统计的曲线,如图3-9所示。每次刷新后,历史数据并不会保留,而根据实时数据重新绘制不同的曲线,涵盖的信息包括每秒请求数、响应时间(如响应时间的中位数和95分
位数)与虚拟用户数。
Failures标签页显示了在测试过程中出现的所有错误和失败数据的统计信息。Exceptions标签页实时显示了抛出的异常。Tasks标签页显示了性能测试过程中任务的全部信息。通过Download Data标签
页,下载收集的数据,包括请求数据、响应数据及使用脚本捕获的异常等。
图3-9实时统计曲线
除上述UI交互的场景设置和运行方式之外,Locust还提供了一种无UI的性能场景启动方式,通过这种方式我们可以实现Locust与CI的无缝衔接。无UI的场景设置是通过命令完成的,如代码清单3-6所示。
代码清单3-6
选项的作用如下。
-f:用于指定测试脚本。
--host:用于指定被测应用的URL。
--headless:表示使用无UI启动方式。
-u:等同于UI启动方式下的Number of users(peak concurrency),用于设置想要模拟的用户数。
-r:等同于UI启动方式下的Spawn rate(users started/second),用于设置每秒启动的虚拟用户数。
--run-time:用于设置测试运行的时长,也就是LoadRunner中的压力持续时间。
配置好场景设置参数后,按Enter键,就会出现图3-10所示的内容。
图3-10无UI的控制台中的内容
每秒都会有一张实时快照输出到控制台,所有测试都执行完之后,控制台将会显示整体的测试结果,如图3-11所示。
图3-11整体的测试结果
这里会显示和UI启动方式下一样的结果,不仅会统计50分位数、66分位数、75分位数、80分位数、90分位数、95分位数、98分位数、99分位数、99.9分位数、99.99分位数和100分位数的响应时间,还会
显示一共发出多少个请求。部分分位数的含义如表3-3所示。
表3-3部分分位数的含义
虽然Locust支持UI和无UI两种模式,但Locust提供的部分参数却不完全支持这两种模式。例如,有些参数只对UI模式起作用,而有些参数只对无UI模式起作用。
只对UI模式起作用的参数包括用于指定UI控制台访问地址的--web-host,以及用于指定UI控制台访问端口的-P、--web-port等,这些参数严格区分大小写,如代码清单3-7所示。
代码清单3-7
按Enter键启动成功后,便可通过在浏览器中输入192.168.1.2:8888访问控制台。
只对无UI模式起作用的参数包括用于设置并发用户数的-u、用于设置每秒启动人数的-r,以及用于设置测试运行时间的--run-time(时间单位m表示分钟,h表示小时,s表示秒),如代码清单3-8所示。
代码清单3-8
无论是对UI模式还是无UI模式,都起作用的参数如下。
用于保存测试结果的参数--csv,最终的测试结果都会自动保存到指定的CSV文件中,读者可以从当前目录下或指定的其他目录下查看。
用于设置日志级别的参数--loglevel,日志级别包括DEBUG、INFO、WARNING、ERROR和CRITICAL,默认的日志级别是INFO。
用于设置日志文件路径的参数--logfile,如果不进行设置,Locust默认会将日志输出到交互窗口中。
注意,在DEBUG日志级别下,Locust将会输出大量的信息,通常只有出现问题后才会使用DEBUG日志级别;在INFO日志级别下,一切都将按预期进行,输出的信息要比DEBUG日志级别稍微少一些;在
WARNING日志级别下,只有当一些意想不到的事情发生时才会输出信息;在ERROR日志级别下,只有当发生错误且未能使用一些预期的功能时才会输出信息;在CRITICAL日志级别下,仅当发生严重的错误
且无法运行时才会输出信息。
Locust支持分布式架构,可通过master和slave方式完成性能测试。其中,master配置如代码清单3-9所示。
代码清单3-9
页:
[1]