2015-02-16 2 views
0

Ответ заключается в следующем,Как применить условия для ответа JSON в Jmeter?

я должен извлечь все «deviceResponseStatus.id», где статус = «ОЖИДАНИЕ» , как реализовать его с помощью JSON Path или Regex в Jmeter?

{ 
    "apiResponseStatus": "SUCCESS", 
    "deviceResponseList": [ 
    { 
     "apiResponseStatus": "SUCCESS", 
     "id": 23, 
     "ownership": "CORPORATE", 
     "deviceName": "Demimbu", 
     "deviceType": "MOBILE", 
     "osType": "ANDROID", 
     "inTotalStorage": 0, 
     "inAvailableStorage": 0, 
     "exTotalStorage": 0, 
     "exAvailableStorage": 0, 
     "osVersion": "4.2", 
     "buildVersion": "1.01.08", 
     "status": "PENDING", 
     "isDeleted": false, 
     "policyIdNames": { 
     "id": 3, 
     "name": "Test Policy 3" 
     }, 
     "deviceGroupIdNames": { 
     "id": 1, 
     "name": "Default Group" 
     }, 
     "userIdName": { 
     "id": 1, 
     "name": "Randy Lewis" 
     }, 
     "lastConnected": 1423810405000, 
     "createdByIdName": { 
     "id": 1, 
     "name": "Randy Lewis" 
     }, 
     "locked": false, 
     "traceOn": false, 
     "userEmail": "[email protected]", 
     "enrollmentDate": 1423790255000, 
     "simNumbers": [ 
     "1236547896" 
     ], 
     "imeiCodes": [], 
     "mobileNumbers": [ 
     "4558585858858" 
     ], 
     "createDate": 1421927250000, 
     "lastModified": 1423810406000, 
     "rooted": false, 
     "roaming": false, 
     "compliant": false 
    }, 
    { 
     "apiResponseStatus": "SUCCESS", 
     "id": 24, 
     "ownership": "CORPORATE", 
     "deviceName": "Photobean", 
     "deviceType": "MOBILE", 
     "osType": "ANDROID", 
     "inTotalStorage": 20941258752, 
     "inAvailableStorage": 8024924160, 
     "exTotalStorage": 0, 
     "exAvailableStorage": 0, 
     "bluetoothMacAddress": "8C:3A:E3:BE:C2:04", 
     "wirelessMacAddress": "8c:3a:e3:51:bb:e3", 
     "model": "LG-D686", 
     "osVersion": "4.4.2", 
     "buildVersion": "1.01.09", 
     "status": "PENDING", 
     "isDeleted": false, 
     "policyIdNames": { 
     "id": 3, 
     "name": "Test Policy 3" 
     }, 
     "deviceGroupIdNames": { 
     "id": 1, 
     "name": "Default Group" 
     }, 
     "userIdName": { 
     "id": 1, 
     "name": "Randy Lewis" 
     }, 
     "make": "LGE", 
     "lastConnected": 1423648831000, 
     "createdByIdName": { 
     "id": 1, 
     "name": "Randy Lewis" 
     }, 
     "locked": false, 
     "traceOn": false, 
     "userEmail": "[email protected]", 
     "enrollmentDate": 1423628675000, 
     "simNumbers": [ 
     "404909008623970" 
     ], 
     "imeiCodes": [ 
     "359004053152889", 
     "359004053152871" 
     ], 
     "mobileNumbers": [ 
     "638847339387" 
     ], 
     "createDate": 1422435029000, 
     "lastModified": 1423648831000, 
     "rooted": true, 
     "roaming": false, 
     "compliant": false 
    }, 
    { 
     "apiResponseStatus": "SUCCESS", 
     "id": 25, 
     "ownership": "CORPORATE", 
     "deviceName": "Livetube", 
     "deviceType": "MOBILE", 
     "osType": "ANDROID", 
     "inTotalStorage": 0, 
     "inAvailableStorage": 0, 
     "exTotalStorage": 0, 
     "exAvailableStorage": 0, 
     "osVersion": "4.2", 
     "buildVersion": "1.01.08", 
     "status": "APPROVAL_PENDING", 
     "isDeleted": false, 
     "policyIdNames": { 
     "id": 3, 
     "name": "Test Policy 3" 
     }, 
     "deviceGroupIdNames": { 
     "id": 1, 
     "name": "Default Group" 
     }, 
     "userIdName": { 
     "id": 1, 
     "name": "Randy Lewis" 
     }, 
     "lastConnected": 1423810522000, 
     "createdByIdName": { 
     "id": 1, 
     "name": "Randy Lewis" 
     }, 
     "locked": false, 
     "traceOn": false, 
     "userEmail": "[email protected]", 
     "enrollmentDate": 1423790371000, 
     "simNumbers": [ 
     "1236547896" 
     ], 
     "imeiCodes": [], 
     "mobileNumbers": [ 
     "4558585858858" 
     ], 
     "createDate": 1422435030000, 
     "lastModified": 1423810522000, 
     "rooted": false, 
     "roaming": false, 
     "compliant": false 
    }, 
    { 
     "apiResponseStatus": "SUCCESS", 
     "id": 26, 
     "ownership": "CORPORATE", 
     "deviceName": "Riffwire", 
     "deviceType": "MOBILE", 
     "osType": "IOS", 
     "inTotalStorage": 0, 
     "inAvailableStorage": 0, 
     "exTotalStorage": 0, 
     "exAvailableStorage": 0, 
     "status": "PENDING", 
     "isDeleted": false, 
     "policyIdNames": { 
     "id": 3, 
     "name": "Test Policy 3" 
     }, 
     "deviceGroupIdNames": { 
     "id": 1, 
     "name": "Default Group" 
     }, 
     "userIdName": { 
     "id": 1, 
     "name": "Randy Lewis" 
     }, 
     "createdByIdName": { 
     "id": 1, 
     "name": "Randy Lewis" 
     }, 
     "locked": false, 
     "traceOn": false, 
     "userEmail": "[email protected]", 
     "simNumbers": [], 
     "imeiCodes": [], 
     "mobileNumbers": [], 
     "createDate": 1422435030000, 
     "lastModified": 1423216312000, 
     "rooted": false, 
     "roaming": false, 
     "compliant": false 
    }, 

Также, пожалуйста, предложите любой хороший вариант, если таковой имеется.

+0

Кто-то уже отредактировал это сообщение (в ожидании окончательного утверждения), но в будущем код должен быть рассчитан на вкладку или четыре пробела (вы можете нажать ** {} ** в редакторе wysiwyg для отступов блоков кода –

+0

Да, спасибо за помощь. Тем не менее я не понял, что можно сделать для достижения цели – abhishek

ответ

0

Вы задаете вопрос JMeter, но я считаю, что это на самом деле регулярное выражение Json Path. Например, в SoapUI это может быть сделано с

$.deviceResponseList[?(@.status=='PENDING')].id 

Вероятно, это может помочь в некотором роде

0

JMeter обеспечивает JSON Path Extractor с помощью JMeter плагинов Extras With Libs Set

Я считаю, что это лучший способ сделать ваш Цель.

См. Руководство Using the XPath Extractor in JMeter (прокрутите вниз до раздела «Разбор JSON») для инструкций по установке плагина и некоторых примеров запросов JSON Path.