问题
I want to make a test plan in JMeter
as follows:
I have a specific flow with a web server:
Req1
Reply for Req1
Req2
Reply for Req2
Req2
Reply for Req2
etc
I need to have these run as a single flow i.e. each thread executes this from start to finish (not Req1
and Req2
send by different threads).
I also need to send different parameters in each iteration so I used CSV data set
.
Problem:
I need to send the same row from CSV for all the requests per thread.
For example:
If I have the following CSV:
john,A1111,engineer
bill,A2111,manager
mary,C1111,secretary
I need the first row to be send in all the flow from Req1
to the last request by thread 1 and the second row by thread 2 in all requests etc.
Is this possible? I tried adding the same CSV file to all my controllers but still does not work as expected.
Update:
What I am interested in is having each thread consume 1 row from the CSV file and "cache" that row for all requests in my flow.
回答1:
The simplest way to implement your scenario is like the following:
Test Group
Number of Threads = N
CSV Data Set Config
Filename: ... (your csv-file here)
Variable Names: name,id,position // (as per your csv sample above)
Delimiter: ,
Recycle on EOF = True
Stop Thread on EOF = False
Sharing Mode = All threads
Simple Controller // that's optional: simply to group your requests flow
Sampler 01 // use ${name}, ${id}, ${position} variables to refer extracted values
Sampler 02
...
Sampler X
Number of Threads = N
will start N threads;Sharing Mode = All threads
orSharing Mode = Current thread group
will enforce each thread to read separate row from csv and then use extracted values in all the subsequent samplers;Recycle on EOF = True
will recycle your csv if number of threads N > number of entries in csv.
来源:https://stackoverflow.com/questions/13470441/use-same-row-per-thread-from-a-csv-data-set-in-jmeter