官方文档: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 服务 -
-u
user 的个数 -
-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
监听的端口