官方文档:https://docs.locust.io/en/stable/writing-a-locustfile.html#client-attribute-httpsession
1. 一个简单的例子
文件:locustfile.py
from locust import HttpUser, task
class HelloWorldUser(HttpUser):
@task
def hello_world(self):
self.client.get("/hello")
self.client.get("/world")
要点:
-
self.client是requests的Session类,其实可以直接当成requests来用 -
@task可以增加多个@task的函数,每次请求时,每个函数都会按照权重被随机调用。例如可以写@task(3),这样这个函数的权重就是3,默认权重是 1
2. 启动命令行版本
locust -f locustfile.py --headless -u 10 --run-time 20 -H "http://server:58003" --csv tusou-flags -r 10
-
-f指定要用的测试代码 -
--headless不启动 WebUI 服务 -
-uuser 的个数 -
-r每个 user 每秒钟发送的请求个数 -
--run-time测试时间,默认单位是秒,也可以写1m30s= 1分钟20秒 -
-H指定要测试的服务 -
--csv结果需要输出到文件,同时也会输出到stderr
3. 启动 WebUI 界面
locust --web-host 0.0.0.0 --web-port 80
-
--web-host监听的网卡 -
--web-port监听的端口