蝗虫。从python cod读取主机值

2024-09-30 16:28:35 发布

您现在位置:Python中文网/ 问答频道 /正文

蝗虫——无网——客户端=1——孵化率=1——数量请求=2——主机=http://localhost

我想阅读HttpOccast类中cmd行中提供的主机值。我知道我可以使用主机属性直接分配,但我不想要它。我想在httpoocast类中读取cmd行中的值。我正在构建自定义日志,并希望将该值传递给日志。我试过了httpoocast.host但这不会返回任何结果。在

我还想从python代码读取--webport。在


Tags: 代码cmdlocalhosthttphost客户端数量属性
3条回答

新答案

有一个比下面我最初的解决方案简单得多的解决方案。每个TaskSet都有一个locust属性,该属性链接回它们的父Locustlocustinstance,因此类似这样的操作将完全满足您的需要:

class UserBehaviour(TaskSet):
    def __init__(self, parent):
        super().__init__(parent)
        print(self.locust.host)

旧答案

看看code for ^{},似乎{}就是您想要的。在

因此,类似这样的代码应该给您当前的host,可以是默认值,也可以是在命令行中指定的:

^{pr2}$

您可以通过sys.argv访问它

或通过argparse解析选项

import argparse

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

print str(args.host)

您可以通过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

查看日志:

^{pr2}$

相关问题 更多 >