In my project I am using Jmeter for load testing.
I have created a test plan as follows:
- Login to the application using a csv file which has 10 unique username and password (successfully done)
- A regular expression extractor will get the session id from the response which will be used in the next sampler for submitting a request. (sessionId extracted successfully)
The next sampler will submit a request. This sampler accepts two parameters: sessionId & licenseRequest. A little details for the java-script is as follows:
url: "groovy/enqueue",
type: "POST",
global: false,
data: {sessionId: uSessionId, licenseRequest: JSON.stringify(requestJSON) },
dataType: "text",
For submitting the request I have created a csv file.
The csv is similar like this:
Entry 1:
{"activations":["<activation-code>","<activation-code>"],"email":"<emailIdofUser>","csvEntries":[{"model":"<modelname>","serial":"<serialNo>"}],"comment":"testing jmeter"}
What I have found out that while submitting the request in th second sampler the post request is malformed:
POST data:
sessionId=vZNjFjW38cid&licenseRequest=%3CEOF%3E
As you can see the licenseRequest's value is not correct. It is sending the EOF, which is not desired.
Ensure that you have the CSV Data Set Recycle on EOF
and Stop Thread on EOF
values correctly:
- if you plan to iterate over the file more than once you must set
Recycle on EOF = True
(i.e. instruct jmeter to move back to the top of the CSV file);
- set
Stop Thread on EOF = False
if you are using a loop controller, Stop Thread on EOF = True
if you are using a while controller and want to stop after reading the whole csv dataset;
- in case if you need that each of N threads reads and uses single and unique line from csv-file you have to set
Sharing mode: Current thread group
for CSV Data Set Config (number of csv-entries should be in this case the same as threads number, or Recycle on EOF? False
should be set otherwise);
- in case if you need that each of N threads reads and uses all lines from csv-file you have to set
Sharing mode: Current thread
for CSV Data Set Config.
Don't forget to look into jmeter.log or use Log Viewer to detect any issues with csv usage.
The simplest case is like the following:
Test Group
Number of Threads = 10
CSV Data Set Config (User Logins)
Filename: ... (your csv-file should have 10 entries)
Recycle on EOF = False
Stop Thread on EOF = True
Sharing Mode = All threads
CSV Data Set Config (License Request)
Filename: ... (your csv-file should have 10 entries)
Recycle on EOF = False
Stop Thread on EOF = True
Sharing Mode = All threads
Login Sampler
License request Sampler
This will produce 10 threads each with separate login-entry and license-request-entry from csv's.