Locust测试本质上是一个Python程序。这使得它非常灵活,尤其擅长实现复杂的用户流。所以如果想要流畅的运用Locust,必须熟悉Python语言编写脚本。
因此,Locust的简单测试过程,就从这里开始:
一、编写locustfile脚本文件
from locust import HttpUser, task
class HelloWorldUser(HttpUser):
@task
def hello_world(self):
self.client.get("/hello")
self.client.get("/world")
这将模拟用户一次又一次地向/hello和/world发出HTTP请求。
把上面的代码放到一个.py 的Python文件中。然后再该文件所属的目录中运行locust命令:
二、启动Locust
Locust的web界面
启动Locust之后,打开浏览器并将其指向http://localhost:8089.会看到这样的页面:
首先设置用户数量;
其次设置用户加载和退出的速率;
最后,将测试指向自己的web服务器并启动它!
下面的屏幕截图显示了在以0.5用户/s的速度运行这个针对40个并发用户的测试时,将它指向一个响应/hello和/world的服务器。
1、Charts模块
Locust还可以将结果可视化为图表,通过Charts模块,可以查看每秒钟请求数(RPS)、响应时间(RT)、用户量(NU)等。
每秒请求数(RPS):
响应时间(毫秒):
虚拟用户数量:
注意:
解释性能测试结果是相当复杂的,而且需要专门的业务知识和性能指标参数的了解,但是如果运行的图开始看起来像上面这样,最有可能的原因是目标服务/系统无法处理遇到的负载(它超载或“饱和”)
最明显的迹象是,当达到9个用户时,响应时间开始快速增长,以至于每秒的请求曲线趋于平缓,尽管仍有新用户加入。
如果无法生成足够的负载使系统饱和,或者需要一些关于如何开始深入研究服务器端问题的指针,请继续关注系列文章的更新。
2、Failure模块
该模块会显示出测试脚本运行中失败的内容、原因等信息。
这里出现的失败是因为请求没有收到返回的内容也不支持这个请求地址。
3、Exceptions模块
该模块可以显示运行中出现的脚本异常等信息。目前看来是没有异常的,说明脚本运行没有问题。
4、Tasks模块
该模块显示运行中的脚本和任务:
包括运行的测试脚本的信息;
每个类别(请求的)的用户比例;
总比例。
5、Download Data模块
数据下载模块可以提供请求统计、失败情况、异常情况、测试报告等信息的下载。
三、控制测试脚本的运行
1、编辑和设计测试脚本
通过点击Locust运行状态【status】模块中的【edit】,打开设置,可以设置用户数量和加载速度。
2、结束测试脚本运行
可以点击【stop】按钮结束测试场景运行。
3、重置运行统计数据
可以点击【Reset stats】按钮重置统计数据。
四、直接使用命令行/无头
使用Locust的web UI是完全可选的。可以在命令行上提供加载参数,并以文本形式获得结果报告:
要在多个Python进程或机器上运行Locust,可以使用——master命令行参数启动单个Locust主进程,然后使用——worker命令行参数启动任意数量的Locust工作进程。
更多关于软件测试培训的问题,欢迎咨询千锋教育在线名师,如果想要了解我们的师资、课程、项目实操的话可以点击咨询课程顾问,获取试听资格来试听我们的课程,在线零距离接触千锋教育大咖名师,让你轻松从入门到精通。