locust简单实例

Locust 是一款易于使用的分布式负载测试工具,完全基于事件,即一个 locust 节点也可以在一个进程中支持数千并发用户,不使用回调,通过 gevent 使用轻量级过程(即在自己的进程内运行)

1、安装,locust已经被封装python模块,所以可以直接用pip安装:pip3 intall locust

2、查看是否安装成功,locust -vlocust --help

3、新建一个demo.py脚本文件,输入如下代码:

# demo.py
import os 
from locust import HttpUser,TaskSet,task


class WebsiteTasks(TaskSet):
    def on_start(self):
        self.client.post("/login",{
            "username":"test",
            "password":"123456"
            })
    
    @task(2)
    def index(self):
        self.client.get("/")



    @task(1)
    def index(self):
        self.client.get("/about/")


class WebsiteUser(HttpUser):
    # task_set = WebsiteTasks
    tasks = [WebsiteTasks]
    task_create = WebsiteTasks
    host = "https://debugtalk.com"
    min_wait = 1000
    max_wait = 5000

    
if __name__ == '__main__':
    os.system(r'locust -f test.py')

4、cmd打开终端,cd命令进入到demo脚本所在目录。

5、启动locust:locust -f demo.py --host=https://debugtalk.com
demo.py 就是我们写的脚本,若脚本代码里已经指定有了host,
这里可以直接简化为:locust -f demo.py

6、网页输入:http://localhost:8089 即可进入Locust的Web管理页面,若是非本地locust,则输入对应机子IP即可。

image.png

image.png

7、参数
参数说明:
Type   :请求的类型,如GET/POST;
Name :请求的路径;
requests :已发出请求数量;
fails :请求失败的数量;
Median :响应时间的中间值(单位:毫秒);
Average :平均响应时间(单位:毫秒);
Min :请求的最小响应时间(单位:毫秒);
Max :请求的最大响应时间(单位:毫秒);
Average size (bytes) 包大小
Current RPS(current requests per second) 当前吞吐率
Current Failures/s 当前故障
Requests per second 吞吐率

tab参数说明:

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

locust官网: https://www.locust.io/
locust 的官方 Github 是:https://github.com/locustio/locust
官网帮助文档: https://docs.locust.io/en/latest/installation.html

参考文档:
https://www.cnblogs.com/imyalost/p/9758189.html
https://www.cnblogs.com/kaka00311/p/16120486.html
https://blog.csdn.net/Sunny_Future/article/details/108249617
https://blog.csdn.net/liucaixin2016/article/details/116212828

你可能感兴趣的:(locust简单实例)