我在我的蝗虫测试中使用事件:@events.test_stop.add_listener 和@events.test_start.add_listener
问题: @events.test_stop.add_listener 不执行数据库请求。
测试结构:
试运行参数:
示例:@events.test_stop.add_listener和@events.test_start.add_listener
的相同代码@events.test_start.add_listener
def on_test_start(environment, **kwargs):
logging.info('Test start. Trying to query the database.')
response_db = get_count_port_msg()
logging.info(f'DB response: {response_db}')
@events.test_stop.add_listener
def on_test_stop(environment, **kwargs):
logging.info('Test stop. Trying to query the database.')
response_db = get_count_port_msg()
logging.info(f'DB response: {response_db}')
命令行响应:
[2023-04-26 14:39:06,054] VDI/INFO/locust.main: Starting Locust 2.14.2
[2023-04-26 14:39:17,754] VDI/INFO/root: Test start. Trying to query the database.
[2023-04-26 14:39:17,754] VDI/INFO/root: Execute the request...
[2023-04-26 14:39:17,953] VDI/INFO/root: DB response: 52
[2023-04-26 14:39:17,953] VDI/INFO/locust.runners: Ramping to 1 users at a rate of 1.00 per second
[2023-04-26 14:39:17,953] VDI/INFO/locust.runners: All users spawned: {"LoadTests": 1} (1 total users)
...
[2023-04-26 14:39:23,286] VDI/INFO/root: Iteration limit reached (2), stopping Users at the start of their next task run
[2023-04-26 14:39:23,286] VDI/INFO/root: Last user stopped, quitting runner
[2023-04-26 14:39:23,286] VDI/INFO/root: Test stop. Trying to query the database.
[2023-04-26 14:39:23,286] VDI/INFO/root: Execute the request...
按 CTRL+C 退出并查看报告。
问题: 为什么我没有和 on_test_start 一样的 on_test_stop 响应?谢谢。
Locust 文档描述了每个 Event 的用途以及它们何时被解雇。
test_stop
是Fired on each node when a load test is stopped
。但是您并没有停止测试,而是使用 Ctrl-C 中断了进程。您可以尝试 quitting
事件,因为它是 Fired when the locust process is exiting
.