当我在蝗虫中使用“for”时,如何控制流量

时间:2017-04-19 09:11:37

标签: python-3.x locust

当我在蝗虫中“为”时,我不知道为什么“req / s”太高了。

class UserBehavior(TaskSet):

    @task(1)
    def start_congche(self):
        filename = 'D:\测试\项目\精励评分\从车评分/阳光压力测试数据.csv'
        with open(filename) as f:
            reader = csv.DictReader(f)
            for test in reader:
                self.client.post("/DataPreFillServer/DataPreFillProductService", first +test["vin"] + vincode +test["vehicle_code"] + vehicleCode + end)

class WebsiteUser(HttpLocust):
    task_set = UserBehavior
    host = "http://10.10.6.12:8080"
    min_wait = 1000
    max_wait = 1000

enter image description here

但如果我没有使用“for”,一切都还可以....

class UserBehavior(TaskSet):

         @task(1)
         def start_congche(self):
             self.client.post("/DataPreFillServer/DataPreFillProductService", first + vincode + vehicleCode + end)

enter image description here

2 个答案:

答案 0 :(得分:1)

使用队列类.. 每次从队列中取值。

a

答案 1 :(得分:0)

我相信你在第一种方法中看到20个请求/秒的原因是每次五个Locust用户中的一个攻击系统时,for循环正在执行多个发布请求。根据文件的大小,让我们说它的20次迭代,这意味着每个用户可能并行执行20次并且测试结束。

看看你的开始和结束时间,第一次测试在~8秒内完成,而另一次测试需要大约30秒。

在第二个测试中,五个蝗虫用户为每个用户执行一个帖子请求,并且必须返回并一次继续执行一个请求,直到满足100个请求。