2017-08-17 40 views
0

刺槐--no幅--client = 1 --hatch率= 1 --num请求= 2主机= http://localhost蝗虫。从Python代码读取--host值

我想读 - 主机值在我的HTTPLocust类的cmd行中提供。我知道我可以使用主机属性直接分配,但我不希望它。我想在HTTPLocust类中从cmd行读取值。我正在构建自定义日志,并希望将该值传递给日志。我试过HTTPLocust.host,但是它没有返回。

另外我想读取-web-port从python代码。

回答

0

您可以通过sys.argv

访问它,或者通过​​

import argparse 

parser = argparse.ArgumentParser() 
parser.add_argument('-H', '--host') 
args, unknown = parser.parse_known_args() 

print str(args.host) 
0

解析选项可以通过User()类的实例访问host变量。看下面的例子:

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