有什么方法可以将蝗虫的寄主值作为参数发送给我?

时间:2019-11-28 09:22:29

标签: locust

我想知道是否可以通过任何方式发送主机值作为参数。我知道蝗虫提供了一个参数“ --host”,在这里可以提供帮助,但对我不起作用。 这是我的代码实现-

class NcsoTest(TaskSet):

    REQ_HEADER = {
        "Accept": "application/json",
        "Accept-Encoding": "gzip, deflate",
        "Connection": "keep-alive",
        "Content-Length": "860",
        "Content-Type": "application/json",
        "User-Agent": "python-requests/2.21.0",
     }

    @task(1)
    def send_post_request(self):
        response = self.client.post("/api/v2/services", data=Singleton.json_body, headers=NcsoTest.REQ_HEADER)
        print response


class NcsoLoad(HttpLocust):

    max_wait = 300
    min_wait = 300
    sleep_time = 10

    task_set = NcsoTest

我正在使用此命令来运行蝗虫。 pipenv运行蝗虫-f testsuite / playground / locust_create_ics_host_flow.py --master --no-web --clients = 1 --hatch-rate = 1 --host = {https://10.247.123.172 --run-time = 1m

我尝试了多种方法,但是主机值并未传播,而是在self.client.post中获取。

有人可以帮我吗?

2 个答案:

答案 0 :(得分:0)

有三种方法可以完成您要问的问题。第一种选择是通过删除等号来更改主机条目参数。

来自

--host=https://10.247.123.172  

--host https://10.247.123.172  

在第二个选项中,编辑测试文件并添加一个主机条目,如下所示。

testsuite/playground/locust_create_ics_host_flow.py  

class NcsoLoad(HttpLocust):  
    host = "https://10.247.123.172"  
    max_wait = 300  
    min_wait = 300  
    sleep_time = 10 
    task_set = NcsoTest  

使用任何一个选项,但不能同时使用。这可能会引起混乱。在运行测试时,选项一和选项二的主机条目需要显示在Web UI上的主机站点。不使用主机条目将在Web UI上产生“无”值。除非在测试过程中与客户合作或使用原始帖子中的“ --no-web”选项,否则没什么大不了的。

最后一个选项确实很酷,并且在编写测试用例时提供了更大的灵活性。以下链接提供了更多信息。

# Support for tests that use multiple hosts  
https://github.com/locustio/locust/issues/150

还要考虑的一件事。删除所有“ =”,因为每个参数均不需要它们。

来自

locust -f testsuite/playground/locust_create_ics_host_flow.py --master --no-web --clients=1 --hatch-rate=1 --host=https://10.247.123.172 --run-time=1m

locust --locustfile testsuite/playground/locust_create_ics_host_flow.py --master --no-web --clients 1 --hatch-rate 1 --host https://10.247.123.172 --run-time 1m  

来自“蒂姆·彼得斯(Tim Peters)的《 Python的禅宗》”

>>> import this  
Explicit is better than implicit.  

希望此信息会有所帮助。

关于

答案 1 :(得分:0)

我可以通过使用脚本外部的host参数将主机值发送给我的程序。 这是我在shell脚本中使用的两个命令,以及为传递的值:

./run_locust_host.sh --locust_file testsuite/host/locust_host_flow_task.py --host https://10.123.123.123 --min_wait_time 300 --max_wait_time 300 --num_clients 1 --hatch_rate 1 --test_time 2m

此脚本解析所有详细信息,并将值分配给相应的蝗虫参数。

在脚本(py文件)中,它能够获取主机值并在发布请求后执行。

response = self.client.post("/api/v2/services", data=Singleton.json_body, headers=NcsoTest.REQ_HEADER, verify=False)

我先前的请求正在运行,但是失败了,因为我没有在发布请求中指定“ verify = False”,这使我相信主机值不会传播。