Most often we end up dealing with how to dynamically build our request.
Also how to fetch values received from HTTP request-1 & pass them as parameters to HTTTP request-2
We can achieve this by writing a simple script within JMeter. for ex:
Let's take a scenario of amazon where we have to add items to the shopping basket
where items are onsale (These items onsale vary each day)
Therefore we don't want to be updating our data scripts each day
though we are reading from external files.
Let's get started to handle such situation.
1.Within a Testplan add a Thread group
2.Add a HTTP request sampler - This is our request-1
2.a We have to retrieve the item/product id's from this request so we need to add a xpath extractor as a post processor event.
Have a look at the screen shot.
2.b
Add a Debug sampler so that you can verify if the xpath extractor does retrieve the value.
To add a debug sampler right click on the Thread Group > Add > Sampler > Debug Sampler
To view contents of sampler you will have to add Listener.
Right Click on the Thread Group > Add > listener > View results tree
3.Add a HTTP request sampler - This is our request-2
3.aNow that we have retrieved id's from our previous request we need those to send as a request, Hence we need to Pre Process before a request is made.
3.b After adding your HTTP request sampler-2
3.c Right Click on the HTTP Sampler > Add > Pre-Processors > Beanshell Pre processor Have a look at the figure
3.d Now let's take a closer look at the BeanShell PreProcessor
3.e Give a meaningful name for the PreProcessor just like i have given.
3.f Now add the script where you want to build your request.
int count = Integer.parseInt(vars.get("GET_EVENT_ID_matchNr"));
for(int i=1;i<=count;i++) {
String prefix = "eventInTopPackage[";
sampler.addArgument( prefix+vars.get("GET_EVENT_ID_" + i)+"]", vars.get("GET_EVENT_ID_" + i) );
}
Let's understand what we are achieving in the above script.
3.g Get count of the matched id's that were retrived from Xpath Extractor.
prefix - Is constant/static value
param - Will now have eventInTopPackage[
Have a look at the screen shot how request will look
No comments:
Post a Comment