如何以编程方式调用蝗虫测试?

时间:2017-09-25 04:21:29

标签: python python-2.7 locust

在我的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的代码位于this post

2 个答案:

答案 0 :(得分: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()

答案 1 :(得分:0)

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

  1. (不是首选但工作正常)您可以使用CLI运行Locust( - no-web,-c,-r) 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

  4. 第一种选择,即使不是最“pythonic”也是最容易做到的。我还在尝试第二种选择。