我如何才能 运行 使用 Locust (Python) 进行一次请求
How can I run a single only once request for with Locust (Python)
SetUp Thread Group
的概念在 JMeter
上有 Number 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
老实说,我不太喜欢这种解决方法。
我只需要获得一个Tokenonce
。我可以重用该令牌,而且这是一个非常繁重的调用(因为验证量),所以我不希望每次为每个用户执行该调用。
是否有可能创建一个 Only Once
请求来在测试开始时处理此问题?
任何想法
已编辑:这与 Locust 库相关,而非 JMeter。
我认为您的“解决方法”是正确的解决方案。
但是如果您出于某种原因真的不喜欢模块范围的变量和 global
关键字,您可以将自己的字段添加到 environment
(在用户实例)。
SetUp Thread Group
的概念在 JMeter
上有 Number 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
老实说,我不太喜欢这种解决方法。
我只需要获得一个Tokenonce
。我可以重用该令牌,而且这是一个非常繁重的调用(因为验证量),所以我不希望每次为每个用户执行该调用。
是否有可能创建一个 Only Once
请求来在测试开始时处理此问题?
任何想法
已编辑:这与 Locust 库相关,而非 JMeter。
我认为您的“解决方法”是正确的解决方案。
但是如果您出于某种原因真的不喜欢模块范围的变量和 global
关键字,您可以将自己的字段添加到 environment
(在用户实例)。