1

在我的 localhost (127.0.0.1:8089) 上使用 Locust up 进行了尝试,但它给出了 400 错误请求错误:

import requests

response = requests.post('http://127.0.0.1:8089/swarm', params={"locust_count":10, "hatch_rate":5})
print response.text

回复:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>400 Bad Request</title>
<h1>Bad Request</h1>
<p>The browser (or proxy) sent a request that this server could not understand.</p>

我已经通过从浏览器浏览它来验证http://127.0.0.1:8089/确实已启动。的代码locustfile.py可在这篇文章中找到。

4

2 回答 2

3

我发现这个解决方案最简单:

import os
from locust.main import main


def run_locust(**kwargs):
    os.environ['LOCUST_HOST'] = kwargs.get('LOCUST_HOST')
    os.environ['LOCUST_RUN_TIME'] = kwargs.get('LOCUST_RUN_TIME', '1m')
    os.environ['LOCUST_NO_WEB'] = str(kwargs.get('LOCUST_NO_WEB', True))
    os.environ['LOCUST_LOCUSTFILE'] = kwargs.get('LOCUST_LOCUSTFILE')
    os.environ['LOCUST_CLIENTS'] = str(kwargs.get('LOCUST_CLIENTS'))
    os.environ['LOCUST_HATCH_RATE'] = str(kwargs.get('LOCUST_HATCH_RATE'))
    main()

根据 Locust 文档,配置参数也可以作为环境变量传递。因此,我们可以使用它们,如我在上面的示例中所示。

首先,我们使用设置所需的环境变量os.environ[<variable_name>],其次,我们运行 locust 的主函数main()

文档:https ://docs.locust.io/en/stable/configuration.html#all-available-configuration-options

于 2020-03-05T11:25:37.513 回答
2

如果您想从您的代码开始 locust,那么您有 3 个选项:

  1. (不是首选,但可以工作)您可以使用 CLI(--no-web、-c、-r)运行 Locust https://docs.locust.io/en/latest/running-locust-without-web- ui.html

  2. 自己实现蝗虫加载逻辑: https ://github.com/locustio/locust/issues/222 (使用消息线程中提供的代码)

  3. 使用 Invokust: https ://github.com/FutureSharks/invokust

第一个选项,即使不是最“pythonic”,也是最容易做到的。我仍在尝试第二个选项的运气。

于 2017-11-08T07:42:24.153 回答