【问题标题】:How can I run a single only once request for with Locust (Python)如何使用 Locust (Python) 只运行一次请求
【发布时间】:2021-12-22 08:37:37
【问题描述】:

JMeter 上存在SetUp Thread GroupNumber of Threads (users) 可能性的概念,但是当使用Locust 时,on_start() 方法以相同数量的用户运行。

我的解决方法。

@events.test_start.add_listener
def _(environment, **kwargs):
    global token
    token = get_token(environment.host)

...

def get_token():
   r = requests.post(host+'/url/token', headers={}, ...)
   return r.text

说实话,我不太喜欢这种解决方法。

我只需要得到一个令牌once。我可以重复使用该令牌,而且这是一个非常繁重的调用(因为验证的数量),所以我不希望每次都为每个用户执行该调用。

有没有一种可能的方法来创建一个Only Once 请求来在测试开始时处理这个问题?

有什么想法吗????

已编辑:这与 Locust 库而不是 JMeter 有关。

【问题讨论】:

  • 这个问题是关于 Locust,而不是 JMeter。这不是重复任何其他问题。
  • 我已投票决定重新开放。我认为您的“解决方法”是正确的解决方案。你不喜欢它的哪一点?
  • 感谢@Cyber​​wiz 使用全局变量,因为我想改用environment 并添加一个新属性。但我不能将它与@events.request.add_listener 一起用于日志记录。
  • 我认为这里的全球性很好。如果您愿意,可以将自己的字段添加到环境中(在 User 实例中以 self.environment 的形式提供)
  • 感谢您的回答,我想我会将自定义字段添加到环境中并使用您提到的self.environment。再次感谢您的时间@Cyber​​wiz

标签: locust


【解决方案1】:

我认为您的“解决方法”是正确的解决方案。

但如果您出于某种原因真的不喜欢模块范围的变量和 global 关键字,您可以将自己的字段添加到 environment(在 User 实例中以 self.environment 的形式提供)。

【讨论】:

    猜你喜欢
    • 2019-07-29
    • 2017-01-01
    • 2021-10-26
    • 1970-01-01
    • 2017-08-10
    • 1970-01-01
    • 2018-12-14
    • 1970-01-01
    相关资源
    最近更新 更多