Jmeter-Regular expression extraction-how to get the value of attribute name - jmeter

I have the below response from Rest service. I need do capture the value of dSecurityGroup which is "TEST" and pass it to next request. Can yu help on this
"GenericResponse": {
"Service": {
"IdcService": "CHECKIN_UNIVERSAL",
"Document": {
"Field": [
{
"name": "xIPM_APP_1_9:isSetDefault",
"value": "1"
},
{
"name": "IdcService",
"value": "CHECKIN_UNIVERSAL"
},
{
"name": "dSecurityGroup",
"value": "TEST"
},
{
"name": "xIPM_APP_1_6:rule",
"value": "IpmApp_1_Fields_Hide"
},
{
"name": "dpTriggerField",
"value": "xIdcProfile"
},
]
}
}
}

Your JSON response is invalid. check with https://jsonformatter.curiousconcept.com/ and update the correct JSON

Your response is JSON therefore it doesn't make sense to use Regular Expression Extractor.
Consider using JSON Extractor instead, it allows using JsonPath queries which provide handy way to extract the "interesting" values from JSON responses.
In your case the relevant query would be something like:
$..[?(#.name == 'dSecurityGroup')].value
Demo:
More information: API Testing With JMeter and the JSON Extractor

Related

json extractor expression to extract field outside array

How can I grab productId from the outside array after checking for the condition. I have tried $..items[?(#.stock.available==true)].productId
{
"listings": [
{
"productId": "100-dark-hot-chocolate",
"items": [
{
"stock": {
"available": true
}
}
],
"test": null
}
]
}
This one should give you what you're looking for:
$.listings[*][?(#.items[0].stock.available == true)].productId
Demo:
More information:
JsonPath - Filter Operators
JMeter's JSON Path Extractor Plugin - Advanced Usage Scenarios

Extracting only relevant item from json blob in jmeter

I am quite new on JSR223 which I have been trying out. I have a use case when an item which are available=true only I want to grab id and ignoring out of stock item from below JSON blob. Can someone please advise?
"items": {
"104": {
"id": "104",
"stock": {
"available": true,
"lowOnStock": false,
"quantity": 11
},
},
"105": {
"id": "105",
"stock": {
"available": false,
"lowOnStock": true,
"quantity": 0
},
}
Thanks in advance.
It's recommended to avoid scripting where possible so you can go for JSON Extractor and the following JSONPath query:
$..[?(#.stock.available==true)].id
Demo:
More information: JMeter's JSON Path Extractor Plugin - Advanced Usage Scenarios

How to extract multiple json values from a Json response

I am trying to extract multiple values from a JSON response on my jmeter script. Below is sample of my response:
{
"startDate": "2018-12-10T15:36:34.400+0000",
"userId": "7211111-2fa90",
"createdBy": "TEST",
"note": {
"content": "Application Submitted "
},
"Type": "SUBMITTED"
},
"currentEventState": "CLOSED",
{
"Xxxx": "test",
"Loc": null,
"Zipcode": [],
"Locality": 82,
"Address": {
"Add": 12302,
"Add2": "place",
"Zip": {
"Phone": "home",
"Email": "test#test.com"
}
},
"state": "MD",
"Cost": "E "
},
"AppID": "cd8d98e6-c2a79",
"Status": "CLOSED",
}
I am trying to extract userid and AppID for the case if the TYPE is Submitted and Status is Closed.I tried using the Json extractor with $.[?(#.Type=="SUBMITTED")].[*].?(#.Status=="CLOSED").userid,APPID, but couldn't get the expected result. Could anyone guide me on this.
You need to use an inline predicate to combine 2 clausees and a semicolon in order to store results into 2 separate JMeter Variables.
Add JSON Extractor as a child of the request which returns above JSON
Configure it as follows:
Names of created variables: userid;appid
JSON Path Expressions: $..[?(#.Type=='SUBMITTED' && #.Status == 'CLOSED')].userId; $..[?(#.Type=='SUBMITTED' && #.Status == 'CLOSED')].AppID
Default values: NA;NA
Here is the demo of single expression working fine:
And here are extracted values reported by the Debug Sampler:

JMeter Regular Expression to retrieve multi-line records

{
"GROUP1": {
"USER1": {
"name": {
"title": "Mr",
"surname": "David",
"firstname": "Morgan",
"othernames": "Joseph"
},
"dateofbirth": {
"year": "1934",
"month": "12",
"day": "28"
}
}
}
}
Can anyone share what the JMeter Regular Expression is to retrieve everthing between {} after "name": please? Thanks
Use instead JSON path extractor or JSR223 PostProcessor (or more) see example
Parsing JSON using Regular Expressions is not the best idea, starting from JMeter version 3.0 you have JSON Extractor which allows executing arbitrary JSON Path queries against JSON responses.
In particular your case the relevant JSON Path query should look like:
$..name
Demo:

Jmeter : How to extract first element from json array

I am trying to extract first element from a json array. Below mentioned is json array
[
{
"cohortDefinition": {
"Key": 1151,
"id": 1798,
"srcId": "3526",
"pcKey": -1,
"userName": "CHROME_USER",
"name": "JMeter2017-01-06-1483749546167",
"Type": "SUBJECT",
"tool": "CB",
"count": 32757,
"extractionStatus": "",
"dateCreated": "2017-05-10T17:48:45Z"
},
"datasource": {
"id": 2,
"name": "health",
"subjectCount": 116352
},
"project": {
"id": 747,
"name": "Jmeter Project"
}
},
{
"cohortDefinition": {
"Key": 1150,
"id": 1796,
"srcId": "3525",
"pcKey": -1,
"userName": "CHROME_USER",
"name": "JMeter2016-10-27-1477620919644",
"Type": "SUBJECT",
"tool": "CB",
"count": 32757,
"extractionStatus": "",
"dateCreated": "2017-05-10T16:57:11Z"
},
"datasource": {
"id": 2,
"name": "health",
"subjectCount": 116352
},
"project": {
"id": 747,
"name": "Jmeter Project"
}
}
]
From above json i would like to extract first value ie. srcId": "3526".
I tried doing following expression in Jmeter extractor
$..cohortDefinition.srcId[1]
However it is not working. If anyone know how to do this please do let me know.
After JMeter 3.0, you can use JSON Extractor, see:
https://stackoverflow.com/a/47043204/460802
Before JMeter 3.0:
Please follow the below steps to retrieve srcId.
Add a JSON Path Extractor to your request and configure below values.
Destination Variable Name - myVar
JSON Path Expression - $..cohortDefinition.srcId - this will extract all the srcIDs from the JSON.
Default Value - Not Found or Err
Add a Debug Sampler and View Results Tree to your test plan.
Save it and execute.
In Debug Sampler, you can view all the srcId as shown below.
You can now use myVar_1 and myVar_2 in your test plan
using ${myVar_1} ${myVar_2}
No need for Plugin, JMeter has a JSON Extractor that will provide this feature:
Notice:
JSON Path Expression is: $..cohortDefinition.srcId
Match No : 1

Resources