python - 您可以在 Locust Python 中为 TaskSet(s) 设置任务比率吗
问题描述
class UserBehavior1(TaskSet):
@task
def task1:...
@task
def task2:...
class UserBehavior2(TaskSet):
@task
def task1:...
@task
def task2:...
class User(HttpUser):
wait_time = between(n,m)
host = 'https://example.com'
tasks = [UserBehavior1, UserBehavior2]
有没有办法在 Locust 中指定 TaskSet(s) 的比率?我知道@task 装饰器接受了一个额外的参数来增加权重,但我不确定它在这种情况下是否有效。我希望每个 TaskSet 中的任务的权重相等,但我希望 TaskSet(s) 以不同的比率执行(比如说 2:5)。
解决方案
TaskSet 也可以使用与@task
单个任务相同的装饰器进行加权,如TaskSet 文档中所述,您可以通过这种方式对它们进行加权。或者,文档还解释说tasks attribute
可以将其定义为字典而不是列表,并且您可以对它们赋予权重,即使对于任务集也是如此。应用于您的示例代码,它看起来像这样:
class User(HttpUser):
wait_time = between(n,m)
host = 'https://example.com'
tasks = {UserBehavior1: 2, UserBehavior2: 5}
每次生成用户时,这应该使您的任务集的权重为 2:5。然后,TaskSet 中的各个任务都有自己的权重。
推荐阅读
- android - FirestoreUI 在点击时填充 RecyclerView
- javascript - Chrome 中的音频时间戳不准确
- python - Cython 在函数定义上没有任何收获
- javascript - Javascript 中的简单关卡设计:如何在第 N 个问题后询问用户是否要继续游戏?
- docker - 构建的图像在之后立即启动并退出
- reactjs - 我收到解析错误:VS 代码中出现意外的令牌
- python - 修改多维数组(Python)
- javascript - 在 Enquirer CLI Prompt 中填写问题和答案字段
- c# - Firebase Unity:如何处理没有互联网连接的情况
- django - 在一个 Django 项目中拥有 DEV、TEST、PROD 环境的最佳方式