Locust的第一个程序及运行

为了实际加载测试系统,我们需要发出HTTP请求。我们可以通过HttpLocust来完成Http相关的请求。例如上一课演示的代码:

from locust import HttpLocust, TaskSet, task

class MyTaskSet(TaskSet):
    @task(2)
    def index(self):
        self.client.get("***1")

    @task(1)
    def about(self):
        self.client.get("***2")

class MyLocust(HttpLocust):
    task_set = MyTaskSet
    min_wait = 5000
    max_wait = 15000


task_set:指向定义了用户行为的类
min_wait:模拟负载的任务之间执行时的最小等待时间,单位为毫秒
max_wait:模拟负载的任务之间执行时的最大等待时间,单位为毫秒
PS:默认情况下,时间是在min_wait和max_wait之间随机选择,但是可以通过将wait_function设置为任意函数来使用任何用户定义的时间分布。

启动Locust
  1. 如果启动的locust文件名为locustfile.py并位于当前工作目录中,可以在编译器中直接运行该文件,或者通过cmd,执行如下命令:
 locust --host=URL

2.如果Locust文件位于子目录下且名称不是locustfile.py,可以使用-f命令启动上面的示例locust文件:

 locust -f testscript/locusttest.py --host=URL

3.如果要运行分布在多个进程中的Locust,通过指定-master以下内容来启动主进程 :

 locust -f testscript/locusttest.py --master --host=URL

4.如果要启动任意数量的从属进程,可以通过-salve命令来启动locust文件:

 locust -f testscript/locusttest.py --salve --host=URL

5.如果要运行分布式Locust,必须在启动从机时指定主机(运行分布在单台机器上的Locust时不需要这样做,因为主机默认为127.0.0.1):

 locust -f testscript/locusttest.py --slave --master-host=localhost

6.启动locust文件成功后,编译器控制台会显示如下信息:

 [2019-5-28 11:01:44,727] IMYalost/INFO/locust.main: Starting web monitor at *:8089

[2019-5-28 11:01:44,729] IMYalost/INFO/locust.main: Starting Locust 0.8 

PS:8089是该服务启动的端口号,如果是本地启动,可以直接在浏览器输入http://localhost:8089打开UI界面,如果是其他机器搭建locust服务,则输入该机器的IP+端口即可;

Locust运行

启动页

Locust的第一个程序及运行_第1张图片
image.png

Number of users to simulate:设置模拟的用户总数
Hatch rate (users spawned/second):每秒启动的虚拟用户数
Start swarming:执行locust脚本
HOST:当前测试的host

测试结果页

Locust的第一个程序及运行_第2张图片
image.png

STOP:点击可以停止locust脚本运行;
Type:请求类型,即接口的请求方法;
Name:请求路径;
requests:当前已完成的请求数量;
fails:当前失败的数量;
Median:响应时间的中间值,即50%的响应时间在这个数值范围内,单位为毫秒;
Average:平均响应时间,单位为毫秒;
Min:最小响应时间,单位为毫秒;
Max:最大响应时间,单位为毫秒;
Content Size:所有请求的数据量,单位为字节;
reqs/sec:每秒钟处理请求的数量,即QPS;

模块说明

Locust的第一个程序及运行_第3张图片
image.png

New test:点击该按钮可对模拟的总虚拟用户数和每秒启动的虚拟用户数进行编辑;
Statistics:类似于jmeter中Listen的聚合报告;
Charts:测试结果变化趋势的曲线展示图,分别为每秒完成的请求数(RPS)、响应时间、不同时间的虚拟用户数;
Failures:失败请求的展示界面;
Exceptions:异常请求的展示界面;
Download Data:测试数据下载模块, 提供三种类型的CSV格式的下载,分别是:Statistics、responsetime、exceptions;

无web界面的Locust运行

image.png

host:非必填,测试host
no-web:无web界面
c:并发用户数量
r:每秒启动用户数量
t:持续时间(1h、10m、200s)
csv:输出csv数据的路径

直接会输出结果:


Locust的第一个程序及运行_第4张图片
image.png

你可能感兴趣的:(Locust的第一个程序及运行)