JMeter - Resume CSV driven execution while ignoring rows used
I'm running in parallel CSV driven test and sometimes stop test immediately using ./shutdown.sh
, and it works as expected,
The issue I want to resume execution excluding CSV records/rows that already used/read
Is there a way to read CSV and mark records as executed so it will be ignored on resume/re-run?
Is my option to create and update a different file with the row numbers used and check in script?
Well-behaved tests need to be repeatable and ideally should leave the system in the same state as the before test, JMeter provides setUp and tearDown thread groups for implementing pre and post test logic. So maybe it worth re-considering the way of how test data is being used and achieve test repeatability instead?
Coming back to your question: when you run JMeter every time it's a different separate Java process which doesn't know anything about previous executions.
The easiest solution would be switching to HTTP Simple Table Server which has KEEP=FALSE
parameter so you will use the data only once or to Redis DataSet Config where you can also remove data which has been read.
A vanilla JMeter solution would be writing the data which has been used during the previous test into .jtl results file using Sample Variables or into a separate file using Flexible File Writer so this data could be removed from the original CSV file before next execution.