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.
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",
"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 :-)
Comments
Post a Comment