I want to perform a load test with JMeter on our API using HTTP requests. I have 40 endpoints in a CSV file and there will be much more requests than just 40 (during 5 minute run it can be 100 000 requests).
My CSV file looks like this:
channels,/channels
pages,/pages
sites,/sites
.
36 more endpoints
.
seos,/seos
Is it possible to force JMeter to select the path from CSV file randomly?
Example
request ... pick endpoint /pages and send GET request
request ... pick endpoint /seos and send GET request
request ... pick endpoint /sites and send GET request
request ... pick endpoint /pages (AGAIN) and send GET request
etc. for more than 100 000 times in 5 minutes.
Thanks.
I don't think you should be doing this as well-behaved test should be repeatable, however if you're absolutely sure that you need this functionality you can go for one of the following plugins:
Random CSV Data Set Config
HTTP Simple Table Server
Both can be installed using JMeter Plugins Manager
Related
How to hit same request 5 times with different headers each time in Jmeter API performance testing
To run request 5 times put it under the Loop Controller and set "Loop Count" to 5
The headers can be added/modified using HTTP Header Manager
Header values can be parameterized using JMeter Functions or Variables
Demo:
The most frequently used parameterization approach is storing the test data in the .csv file and using CSV Data Set Config
I am using JMeter for image load testing.
I have an array of the image name and looping over that array, I am getting all the image via HTTP request.
-> loop_over_image - for loop controller
-> http_request sampler
for now, it will loop and fetch images via HTTP sampler one by one.
It is possible to make these request parallel.
I am looping over 300 images - means 300 HTTP request, it is taking more than 5 minutes, but in chrome, it is taking 30 seconds because chrome API requests are ASYNC - means kind of parallel.
Is there any way to make these 300 request parallel. I don't think it is possible, because the loop will go to each image one by one.
I am looking for the same solution.
I am extracting from an HTTP response a list of urls and assigning them into a variable (as array).
Parallel controller will not work in this case, since it does not accept an array as an input.
I think that there is not simple way to do it (possible using Java and JSR223Sampler).
JMeter dev community should add this feature to JMeter.
I've opened an enhancement request https://bz.apache.org/bugzilla/show_bug.cgi?id=63526
Please vote up on it, so it will be implemented.
Try with parallel controller or sampler.
Kindly check the below link:-
https://github.com/Blazemeter/jmeter-bzm-plugins/blob/master/parallel/Parallel.md
Hope this helps.
I need some possibility to conduct load testing of our REST API with traffic counting.
For example to run 20 concurrent user for 1 hour. As a result I want to get information about responses (avg time, delays, etc) and overall traffic that has been produced.
I overlooked JMeter and Gatling, but found no possibilities to count bytes.
I don't really need big amount of concurrent users (100 would be enough) and high throughput (more than 10 requests per second from single user).
My goal is just to produce some load on our system and to check that it shows correct statistic data.
JMeter (checked with latest 3.3) already save sent/received bytes by default, you can see in Listener's Configure button:
Save sent bytes count
Save received bytes count
You will get in jtl file saved columns ..,bytes,sentBytes..
By default JMeter should be saving sent and received bytes in .jtl results file
If it doesn't - add the next lines to user.properties file (lives in "bin" folder of your JMeter installation)
jmeter.save.saveservice.bytes=true
jmeter.save.saveservice.sent_bytes=true
Also make sure you have HttpClient4 implementation selected on the "Advanced" tab of HTTP Request sampler (or HTTP Request Defaults)
I want to fire multiple soap requests with different data through jmeter and I want all the soap requests to hit the application concurrently. Also I would like to know if I can do the same thing with soap ui? If possible do describe the steps in detail. Thanks in advance.
For JMeter:
Add HTTP Request sampler to your test plan
Add Switch to "Body Data" tab and put your XML payload skeleton there
Substitute the parts of the body you want to parameterise with JMeter Variables or Functions, the most commonly used for parameterisation test elements are:
CSV Data Set Config
__StringFromFile()
__FileToString()
__CSVRead()
For "concurrency" you also have different options:
If you want X threads to execute requests as fast as they can - just specify them in Thread Group
If you want X requests per second - go for Constant Throughput Timer
If you want all requests at exactly the same time - Synchronizing Timer
For SoapUI check out Simulating Different Types of Load article
Need some help on Jmeter for the following scenario please I need to simulate these steps in order to load our application.
a) make a request to a web-service.(done)
b) verify the response for some variables and extract a URL address from the response.(done)
c) Now using the extracted URL need to make another request.(extraction done)
d) in response a media file will be sent.
My Plan consists of "stepping thread group-->(Sampler 1)HTTP Request +couple of listeners for data gathering--> (Sampler 2)HTTP Request +couple of listeners for data gathering. the issue is that when i ran the plan the first sampler generated 4 requests but the second one generated only 2 can you tell me why is it so.
In general how can i simulate all 4 steps in one go for a single thread. I hope that i have cleared myself.
In JMeter each thread runs requests sequentially already.
So in order to do what you expect you'll need to use:
Post Processors called extractors to extract data into variables
Variables to inject in the requests
Read:
https://jmeter.apache.org/usermanual/test_plan.html#postprocessors
https://jmeter.apache.org/usermanual/functions.html#functions