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

How do i implement a locustfile where each locust takes unique value from csv files for it's task?

    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文件结束后,locust不取唯一值,它对模拟的所有用户取相同的值。

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

self.data = list(self.bakdata)

这将为每个用户实例提供一个不同列表副本。

如果您将其更改为:

,它应该可以工作
ExampleTask.data = list(self.bakdata)

或者您可以使用 locust-plugins 的 CSVReader,请参阅此处的示例:

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