0
    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

Following my csv file:

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

Here after csv file end , locust does not takes unique value, it takes same value for all the users which is simulated.

Dibas Das
  • 3
  • 1

1 Answers1

1

I'm not 100% sure, but I think your problem is this line:

self.data = list(self.bakdata)

This will give each User instance a different copy of the list.

It should work if you change it to:

ExampleTask.data = list(self.bakdata)

Or you can use locust-plugins's CSVReader, see the example here:

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

Cyberwiz
  • 11,027
  • 3
  • 20
  • 40