Question: I'm trying to run around 15000 soap requests through JMeter. I have 15000 individual soap files in a folder.

I know that the [WebService(SOAP) Request](http://jmeter.apache.org/usermanual/component_reference.html#WebService%28SOAP%29_Request) component has the option to point to a folder.

But, the problem is that the files in the folder will get picked up and run randomly and a file can get run multiple times.

This is not ideal because each request has a unique correlation id and if a file get's run twice, the second run will fail due to a duplicated correlation id.

Is there anyway, I could tell jmeter to run the files only once?

Also, as certain soap requests are dependent upon other request having already run, the ability to run these in a specified order would be desirable. Is this possible?

These seem like common problems that should have already been solved. But, I can't find much on google.

Do you guys have any ideas?

Answer: 
I would use [the JSR223 Sampler](http://jmeter.apache.org/usermanual/component_reference.html#JSR223_Sampler) to run a script (e.g. Groovy) to iterate through the files in the directory and store the text of each file in a String.

See, for example, [this other answer](https://stackoverflow.com/a/9733568/62667) about using a Groovy script to iterate a list of values.
You could put the data into a csv file and read it in using a CSV Data Set Config. If you need unique values over multiple threads then you have to create multiple files, one per thread.

You could also put the data in a database and use a JDBC Config/Sampler to access it, making sure to either a: delete the data after it is read, or b: mark it as 'read' using a flag. Both methods would prevent the same record being read twice by different threads.

If you need to run requests in order you should structure the test plan as such, requests will be made sequentially, top to bottom.