locsut

负载测试工具,用 python 语言定义用户行为,可以给系统施加百万级的虚拟用户的压力

现在举个例子,代码示例如下:

from locust import HttpLocust, TaskSet, task
class WebsiteTasks(TaskSet):
    def on_start(self):
        self.client.get("/login")

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

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


class WebsiteUser(HttpLocust):
    task_set = WebsiteTasks
    host = "***"
    min_wait = 1000
    max_wait = 5000

以上代码实现场景:
1.用户先请求登陆接口,执行onstart一次,作为初始化
2.随机选择 self 接口或 index 接口请求,按照 2:1 的权重进行执行
3.两次请求的等待时间为 1s 到 5s 的随机值
4.重复 2.3 执行,直到测试结束

脚本执行

执行命令:locust -f locustfile.py --no-web -c 1 -n 1
-c, --clients:指定并发用户数;
-n, --num-request:指定总执行测试;
-r, --hatch-rate:指定并发加压速率,默认值位 1;
-H, --host:被测系统的 host,若在终端命令中不进行指定,就需要在 Locust 子类中通过 host 参数进行指定;
-f, --locustfile:指定执行的 Locust 脚本文件;

执行命令:locust -f locsutfile.py

-P, --port:指定 web 端口,默认为 8089

浏览器进入http://localhost:8089即可进入 Locust 的 Web 管理页面,输入参数,开启测试
输入框 1 表示并发数,输入框 2 表示每秒新增用户进行开启。

分布式运行

启动 master:
locust -f locustfile.py --master

单机开机 slave,无需指定 master 机器,默认为本机:
locust -f locustfile.py --slave

多机开启 slave,需要指定 master 机器的 host:
locust -f locustfile.py --slave --master-host=**


↙↙↙阅读原文可查看相关链接,并与作者交流