如果你想运行一些设置代码作为测试的一部分,通常把它放在locustfile的模块级别就足够了,但有时你需要在运行中的特定时间做一些事情。对于这种需要,Locust提供了事件钩子。
1.测试开始与测试停止
如果你需要在负载测试的开始或停止时运行一些代码,你应该使用 test_start 和 test_stop 事件。
你可以在你的locustfile的模块级别上为这些事件设置监听器。
from locust import events
@events.test_start.add_listener
def on_test_start(environment, **kwargs):
print("A new test is starting")
@events.test_stop.add_listener
def on_test_stop(environment, **kwargs):
print("A new test is ending")
2.进程初始化
init事件是在每个Locust进程的开始时触发的。
这在分布式模式下特别有用,每个工作进程(而不是每个用户)都需要有机会做一些初始化。例如,假设你有一些全局状态,所有从这个进程产生的用户都需要。
from locust import events
from locust.runners import MasterRunner
@events.init.add_listener
def on_locust_init(environment, **kwargs):
if isinstance(environment.runner, MasterRunner):
print("I'm on master node")
else:
print("I'm on a worker or standalone node")
3.其他事件
参见使用事件钩子对其他事件进行扩展蝗虫,以及如何使用它们的更多例子
更多教程,更多实战案例,请阅读:https://edu.csdn.net/course/detail/38449
更多教程,更多实战案例,请阅读:https://edu.csdn.net/course/detail/38449