网上有很多使用教程,相关链接:
http://debugtalk.com/post/head-first-locust-user-guide/
https://www.jianshu.com/p/292c2001ff27
https://blog.youkuaiyun.com/JOJOY_tester/article/details/77926470
测试脚本
#locust_test.py
from locust import HttpLocust, 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 about(self):
self.client.get('/about/')
class WebsiteUser(HttpLocust):
task_set = WebsiteTasks
host = 'http://debugtalk.com'
min_wait = 1000
max_wait = 5000
说明:
WebsiteUser定义数据集,所有的client共用该组数据
WebsiteTasks定义了任务集,以及任务执行的比例
数据集中的
host
表示测试的网站
执行:
locust -f locust_test.py
访问:http://127.0.0.1:8089
注意windows访问该路径,无法打开下面的路径,必须访问:http://localhost:8089/
,具体原因可以参考:https://github.com/locustio/locust/issues/436
如图,设置:
Number of users to simulate:模拟的用户的数量
Hatch Rate:用户增加的数量(如果用户总数为100,每秒增加5,则需要20s增加到100个用户)
报告说明:
requests(Number of successful requests):成功的请求数
fail(Number of fail requests):失败的请求数
Median(Median response time):响应时间的中位数,不同于平均响应时间,中位数反映的是响应时间的“大体水平”,用来弥补平均数在偏态分布中不足之处的。例如响应时间为:
192,185,134,156,2000。则平均响应时间为:1067ms,中位数为:185ms。显然中位数时间更能反映响应时间的平均水平。Average(Median response time):平均响应时间
Min(Min response time):最短响应时间
Max(Max response time):最慢响应时间
Content Size(Average response size):平均响应大小
reqs/sec(Current number of requests per second):当前每秒请求数量