locust的setup等相关函数的使用

先看例子:

from locust import TaskSet, HttpLocust, task
import os

class MyTaskSet(TaskSet):
"""
TaskSet类定义了每个用户的任务集合,测试任务开始后,每个 Locust 用户会从 TaskSet 中随机挑选一个任务执行,然后随机等待 HttpLocust 类中定义的 min_wait和 max_wait 之间的一段时间,执行下一个任务
"""
def setup(self): print("task set_up") def on_start(self):
     """虚拟用户启动task时运行"""
print("start") @task def one(self): print("one") @task(3) def two(self): print("two") def on_stop(self):
     """虚拟用户结束task时运行"""
print("stop") def teardown(self): print("task tear_down") class WebSiteUser(HttpLocust): task_set = MyTaskSet host = "http://www.baidu.com" min_wait = 10000 max_wait = 10000 print("aaa") def setup(self): print("locust set_up") def teardown(self): print("locust tear_down")

依次执行如下描述,观察运行结果

命令行执行命令 locust -f ssql.py(上述代码的文件名),运行结果为:

 浏览器访问http://localhost:8089/,设置并发用户为3个,点击Start swarming,运行结果为:

 点击web页面的stop,运行结果为:

命令行下,ctrl+c退出locust,运行结果为:

 

说明:

Locust类有setup和teardown,TaskSet类有setup、teardown、on_start、on_stop。

每次启动locust时运行setup方法,退出时运行teardown方法,locust执行TaskSet时运行TaskSet的setup方法,退出时运行teardown方法,每个虚拟用户执行操作时运行on_start方法,退出时执行on_stop方法,运行上面的脚本,执行顺序如下:

执行顺序:Locust setup → TaskSet setup → TaskSet on_start → TaskSet tasks → TaskSet on_stop → TaskSet teardown → Locust teardown

参考:https://www.cnblogs.com/monogem/p/10712764.html

原文地址:https://www.cnblogs.com/wang-mengmeng/p/11947193.html