【问题标题】:How to invoke Locust tests programmatically?如何以编程方式调用蝗虫测试?
【发布时间】:2017-09-25 04:21:29
【问题描述】:

在我的本地主机 (127.0.0.1:8089) 上使用 Locust 进行了尝试,但它给出了 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 的代码可在 this post 获得。

【问题讨论】:

    标签: python python-2.7 locust


    【解决方案1】:

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

    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[&lt;variable_name&gt;]设置所需的环境变量,其次,我们运行locust的主函数main()

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

    【讨论】:

    • 请尝试解释答案,这将有助于社区将来参考
    • 请多解释
    • @blkpingu 感谢您的推动 :) 现在完成了。希望它会有所帮助。
    【解决方案2】:

    如果您想从您的代码中启动 locust,那么您有 3 个选项:

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

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

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

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

    【讨论】:

    • 感谢 Abhimanyu 的回复。我将尝试选项 #1 开始。
    猜你喜欢
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 2014-10-13
    • 1970-01-01
    • 1970-01-01
    • 2011-10-16
    • 1970-01-01
    相关资源
    最近更新 更多