蝗虫 --no-web --client=1 --hatch-rate=1 --num-request=2 --host= http://localhost
我想在 HTTPLocust 类的 cmd 行中读取 --host 值。我知道我可以使用主机属性进行直接分配,但我不想要它。我想从 HTTPLocust 类中的 cmd 行读取值。我正在构建自定义日志并希望将该值传递给日志。我试过HTTPLocust.host但没有返回。
我还想从 python 代码中读取 --web-port 。
蝗虫 --no-web --client=1 --hatch-rate=1 --num-request=2 --host= http://localhost
我想在 HTTPLocust 类的 cmd 行中读取 --host 值。我知道我可以使用主机属性进行直接分配,但我不想要它。我想从 HTTPLocust 类中的 cmd 行读取值。我正在构建自定义日志并希望将该值传递给日志。我试过HTTPLocust.host但没有返回。
我还想从 python 代码中读取 --web-port 。
有一个比下面我最初的解决方案更直接的解决方案。每个TaskSet
都有一个locust
链接回其父Locust
locustinstance的属性,因此这样的事情将完全满足您的需要:
class UserBehaviour(TaskSet):
def __init__(self, parent):
super().__init__(parent)
print(self.locust.host)
查看 的代码HttpSession
,这似乎base_url
是您想要的。
所以像这样的东西应该给你当前的host
,无论是默认的还是在命令行上指定的:
class HostGetter(locust.TaskSet):
@locust.Task()
def get_host(self):
print(self.client.base_url)
这是我的代码:
import time,csv,argparse
class MySQLLocust(Locust):
parser = argparse.ArgumentParser()
parser.add_argument('--host', '--host')
args, unknown = parser.parse_known_args()
print("Host = " + args.host)
现在当我给:
locust -f mysql_locust.py --host=myhost-vm-101 --no-web --clients=2 --hatch-rate=10 --run-time=5m
我得到了预期的打印语句结果:
Host = myhost-vm-101
您可以host
通过类的实例访问该变量User()
。请参见下面的示例:
from locust import HttpLocust, TaskSet, task
import random, requests, time, os, inspect, json, sys
class UserBehaviour(TaskSet):
@task(1)
def test1(self):
user = User()
print(user.host)
self.client.get("/v3/User/ListOfCoupon/")
class User(HttpLocust):
task_set = UserBehaviour
min_wait = 1000
max_wait = 3000
查看日志:
~/P/m/p/general (master ⚡↑) locust -f app_couponlist.py --host=http://www.google.com
[2017-09-19 14:33:13,020] Mesuts-MacBook.local/INFO/locust.main: Starting web monitor at *:8089
[2017-09-19 14:33:13,021] Mesuts-MacBook.local/INFO/locust.main: Starting Locust 0.8a3
[2017-09-19 14:33:22,281] Mesuts-MacBook.local/INFO/locust.runners: Hatching and swarming 5 clients at the rate 1 clients/s...
[2017-09-19 14:33:22,282] Mesuts-MacBook.local/INFO/stdout: http://www.google.com
[2017-09-19 14:33:22,282] Mesuts-MacBook.local/INFO/stdout:
[2017-09-19 14:33:23,285] Mesuts-MacBook.local/INFO/stdout: http://www.google.com
[2017-09-19 14:33:23,285] Mesuts-MacBook.local/INFO/stdout:
[2017-09-19 14:33:24,226] Mesuts-MacBook.local/INFO/stdout: http://www.google.com
您可以通过以下方式访问它sys.argv
或通过解析选项argparse
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-H', '--host')
args, unknown = parser.parse_known_args()
print str(args.host)