When using JMeter for performance testing of RESTful services, you
may come across situations when you have to extract response from one
request and pass it on to another request. This can be accomplished
using regular expression extractor. You may like to watch JMeter training video on regular expression extractor if you have not already :-)
This
post illustrates an example of extracting parameter from json
expression without using any JMeter plugin. The drawback of using plugin
is that you would have to make it available on each JMeter installation
where you want to run the test.
Let's consider following JSON expression -
{
"access_token":"18b8b379- b875-467a-9f22-37b60024c1b9",
"uid":"test user",
"grant_type":"password",
"scope":[
"uid",
"cn"
],
"realm":"employees",
"cn":"",
"token_type":"Bearer",
"expires_in":3599
}
"access_token":"18b8b379-
"uid":"test user",
"grant_type":"password",
"scope":[
"uid",
"cn"
],
"realm":"employees",
"cn":"",
"token_type":"Bearer",
"expires_in":3599
}
Let's assume that we want to fetch value of access_token from this expression.
Then following regular expression can be used -
"access_token":"(.+?)"
Let's look at these special characters one by one -
1 opening and closing parenthesis () enclose the portion of matched string to be returned
2 . means match any character
3 + means one or more times
4 ? means stop when first match occurs
without ?, the .+ would continue beyond first quotation " until it finds last quotation " and indeed this is not what we want.
For this specific example it is more efficient to use following expression -
"access_token":"([^"]+)"
Herein [^"] means match everything except "
And matcher stops as soon as it finds first quotation "
Did
you know that you can also test regular expression from with in JMeter?
Run your test with 1 user and open results in ViewResultsInTree
listener. ViewResultsInTree listener has a drop down to show results in
different views. Select RegExpTester, paste your regular expression and
hit Test button :-)
You may also like to see JMeter guide on Regular expression
Comments
Post a Comment
No spam only genuine comments :)