Locust介绍
Locust是基于python的性能测试工具,优点是并发高,资源占用小,缺点是报告简陋,不支持资源监控。
Writing a locustfile
locustfile是一个普通的python文件。里面必须含有一个User类。
User
一个User类,代表一个用户或者一个locust集群。locust会为每个用户生成一个实例,User类里面可以添加自定义函数。
wait_time
User类中包含一个可选项 wait_time ,用于设置在每个task运行之后的等待时间,如果不设置wait_time,会马上执行下一个task。
它有三个内置参数:
constant :固定时长
between:在区间内随机取值
constant_pacing:每x秒运行一次
例如,在每个任务间隙。等待0.5-10秒钟:
from locust import User, task, between
class MyUser(User):
@task
def my_task(self):
print("executing my_task")
wait_time = between(0.5, 10)
也可以在user类中自定义时间函数,例如,每次运行后将休眠1秒、2秒、3秒……
class MyUser(User):
last_wait_time = 0
def wait_time(self):
self.last_wait_time += 1
return self.last_wait_time
weight
如果locustfile文件中有多个user类,可以在命令行中指定所使用的user,如果不指定,locust将为每个user分配相同的优先级
$ locust -f locust_file.py WebUser MobileUser
想要模拟多个用户,可以通过设置weight来实现优先级的设置
下面的例字中,web用户执行的概率是移动用户的三倍
class WebUser(User):
weight = 3
...
class MobileUser(User):
weight = 1
...

Locust是一款Python性能测试工具,以其高并发和低资源占用为特点。本文详细介绍了Locust的使用,包括User类、wait_time、weight、host、tasks、on_start/on_stop、tasks比率、HttpUser类以及事件监听。通过示例展示了如何编写locustfile,如设置任务权重、响应验证以及使用HttpSession进行HTTP请求。同时,提到了任务的tag装饰器,用于选择性执行特定任务。

6440

被折叠的 条评论
为什么被折叠?



