我希望能够有一个以指定间隔运行的任务。例如,假设我要测试3个端点,但是每30秒我要ping /status/
端点
class SomeTasks(TaskSet):
@task
self.get("/home/")
@task
self.get("/info/")
@task
self.get("/products/")
@task
self.get("/status/")
class SomeUser(FastHttpUser):
tasks = [SomeTasks]
wait_time = between(0, 0)
不确定如何运行,以便像往常一样随机选择/home/
,/info/
,/products/
,但每30秒检查一次状态。也许可以将其放在SomeUser
类中?
答案 0 :(得分:0)
听起来您希望default-src 'self';script-src 'self' 'report-sample' www.google-analytics.com
的ping与您的其他用户工作分开。您希望Locust生成许多用户,使其在测试中反复命中/status/
,/home/
,/info/
,但是您希望一个“用户”每次ping /products/
30秒?如果是这样,这是可能的,但不是很简单。我会在正常的/status/
之外制作一个单独的函数,该函数在自己的计时器上重复运行,但仍向Locust报告。
有多种方法可以执行此操作,但我倾向于使用@task
之类的Locust events使Locust在测试开始时调用一个函数。在该函数中,创建一个每30秒在循环中ping @events.test_start.add_listener
端点的greenlet,并向Locust报告。下面的基本文件以及使循环取决于测试状态的条件是可选的,摘自Locust examples。
/status/