有什么方法可以将主机值作为参数发送到蝗虫中吗?
Is there any way where I can send host value as a parameter in 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 运行 locust -f testsuite/playground/locust_create_ics_host_flow.py --master --no-web --clients=1 --hatch-rate=1 --host=https://10.247.123.172 --运行-时间=1m
我尝试了多种方法,但主机值未在 self.client.post 中传播和提取。
谁能帮我解决这个问题?
可以通过三个选项来完成您所询问的内容。第一个选项是通过删除等号来更改主机条目参数。
来自
--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
使用任一选项,但不能同时使用。这可能会在路上造成混乱。需要选项一和二的主机条目才能在 UI 测试时在 Web UI 上显示主机站点。不使用主机条目将在网络上产生 "None" 值 UI。没什么大不了的,除非在测试时与客户合作或在原始 post 中使用“--no-web”选项。
最后一个选项非常酷,在编写测试用例时提供了更大的灵活性。下面的 link 中提供了更多信息。
# 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
来自"The Zen of Python, by Tim Peters"
>>> import this
Explicit is better than implicit.
希望此信息对您有所帮助。
此致,
我可以使用脚本外部的主机参数将主机值发送到我的程序。
这是我通过 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 文件)中,它能够获取主机值并执行下面的 post 请求。
response = self.client.post("/api/v2/services", data=Singleton.json_body, headers=NcsoTest.REQ_HEADER, verify=False)
我之前的请求有效但失败了,因为我没有在 post 请求中指定 "verify=False" 这让我相信主机值没有传播。
您可以这样定义 config.py 文件:
class EnvSettings(object):
host_url = 'http://test.com/'
然后从你的蝗虫class,你可以导入
host = EnvSettings.host_url
我想知道是否有任何方法可以将主机值作为参数发送。我知道蝗虫提供了一个参数“--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 运行 locust -f testsuite/playground/locust_create_ics_host_flow.py --master --no-web --clients=1 --hatch-rate=1 --host=https://10.247.123.172 --运行-时间=1m
我尝试了多种方法,但主机值未在 self.client.post 中传播和提取。
谁能帮我解决这个问题?
可以通过三个选项来完成您所询问的内容。第一个选项是通过删除等号来更改主机条目参数。
来自
--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
使用任一选项,但不能同时使用。这可能会在路上造成混乱。需要选项一和二的主机条目才能在 UI 测试时在 Web UI 上显示主机站点。不使用主机条目将在网络上产生 "None" 值 UI。没什么大不了的,除非在测试时与客户合作或在原始 post 中使用“--no-web”选项。
最后一个选项非常酷,在编写测试用例时提供了更大的灵活性。下面的 link 中提供了更多信息。
# 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
来自"The Zen of Python, by Tim Peters"
>>> import this
Explicit is better than implicit.
希望此信息对您有所帮助。
此致,
我可以使用脚本外部的主机参数将主机值发送到我的程序。 这是我通过 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 文件)中,它能够获取主机值并执行下面的 post 请求。
response = self.client.post("/api/v2/services", data=Singleton.json_body, headers=NcsoTest.REQ_HEADER, verify=False)
我之前的请求有效但失败了,因为我没有在 post 请求中指定 "verify=False" 这让我相信主机值没有传播。
您可以这样定义 config.py 文件:
class EnvSettings(object):
host_url = 'http://test.com/'
然后从你的蝗虫class,你可以导入
host = EnvSettings.host_url