我如何实现一个蝗虫文件,其中每个蝗虫都从csv文件获取其任务的唯一值?

时间:2020-06-07 15:01:33

标签: locust

    enter code here
from locust import HttpLocust, TaskSet, task


class ExampleTask(TaskSet):
    csvfile = open('failed.csv', 'r')
    data = csvfile.readlines()
    bakdata = list(data)

    @task
    def fun(self):
        try:
            value = self.data.pop().split(',')
            print('------This is the value {}'.format(value[0]))
        except IndexError:
            self.data = list(self.bakdata)



class ExampleUser(HttpLocust):
    host = 'https://www.google.com'
    task_set = ExampleTask

跟随我的csv文件:

516,正确,成功 517,成功 518,成功 519,成功 520,真成功 521,成功 522,成功 523,成功 524,成功 525,成功 526,成功 527,成功 528,真成功 529,真成功 530,成功 531,成功 532,真成功 533,成功 534,成功 535,成功 536,成功 537,成功 538,真成功 539,成功 540,成功 541,真成功 542,真成功 543,真成功 544,真成功 545,成功 546,真成功 547,真成功 548,真成功 549,成功 550,成功 551,成功 552,成功 553,真成功 554,成功 555,成功 556,真成功 557,成功 558,真成功 559,真实成功

在csv文件结束之后,蝗虫没有唯一的值,它对所有模拟的用户都具有相同的值。

1 个答案:

答案 0 :(得分:0)

我不确定100%,但是我认为您的问题是这一行:

self.data = list(self.bakdata)

这将为每个User实例提供列表的不同副本。

如果将其更改为:,它应该可以工作

ExampleTask.data = list(self.bakdata)

或者您可以使用蝗虫插件的CSVReader,请参见此处的示例:

https://github.com/SvenskaSpel/locust-plugins/blob/master/examples/csvreader_ex.py