2014-02-25 122 views
4

下面是我的JSON響應數據,我需要使用下面的響應進行斷言。我嘗試了很多方法來編寫JSON路徑&預期值。總是斷言失敗。我想要的是請大家幫忙寫了下面的數據Jmeter JSON路徑聲明

{ 
    "statusCode": 200, 
    "statusMessage": "Success", 
    "errorMessage": "", 
    "responseData": { 
     "id": 15, 
     "userName": "[email protected]", 
     "firstName": "tarento", 
     "lastName": "test1", 
     "phoneNumber": "1234567812", 
     "email": "[email protected]", 
     "password": "", 
     "city": "", 
     "agentList": [ 
      { 
       "id": 37, 
       "userName": "[email protected]", 
       "firstName": "Sanjay", 
       "lastName": "rahul", 
       "phoneNumber": "7411269480", 
       "email": "[email protected]", 
       "password": "", 
       "active": true 
      }, 
      { 
       "id": 68, 
       "userName": "[email protected]", 
       "firstName": "jinesh", 
       "lastName": "sumedhan", 
       "phoneNumber": "9400993826", 
       "email": "[email protected]", 
       "password": "", 
       "active": true 
      }, 
      { 
       "id": 108, 
       "userName": "[email protected]", 
       "firstName": "Rahul", 
       "lastName": "Antony", 
       "phoneNumber": "9994590241", 
       "email": "[email protected]", 
       "password": "", 
       "active": true 
      }, 
      { 
       "id": 304, 
       "userName": "[email protected]", 
       "firstName": "Agent", 
       "lastName": "Agent", 
       "phoneNumber": "9025699716", 
       "email": "[email protected]", 
       "password": "", 
       "active": true 
      } 
     ], 
     "roleName": "admin", 
     "sessionKey": "435tnerLt9813942160478oDse46345635#1", 
     "partner": { 
      "id": 1, 
      "name": "Tarento", 
      "cityList": [ 
       "bangalore", 
       "mumbai" 
      ], 
      "phone": "1234567812", 
      "url": "" 
     }, 
     "isActive": true, 
     "isDeleted": false, 
     "roleId": 1, 
     "countryCode": "", 
     "tags": [ 
      { 
       "tagId": 1, 
       "name": "all", 
       "description": "this is default tag of all driver." 
      }, 
      { 
       "tagId": 2, 
       "name": "airport", 
       "description": "" 
      }, 
      { 
       "tagId": 3, 
       "name": "street", 
       "description": "any text message" 
      }, 
      { 
       "tagId": 255, 
       "name": "night", 
       "description": "night" 
      } 
     ] 
    } 
} 

我收到以下響應

+0

提供像什麼是你寫的JSON路徑更多的細節?你的例子中的期望值是多少? – hemanth

+0

請檢查下面的圖片,我的測試計劃及其回答 – Sreenivas

+2

您是否嘗試刪除方括號? – olyv

回答

3

我個人更喜歡使用BSF PostProcessor中的路徑和預期值與Groovy語言結合使用。如何分析使用Groovy JSON例如,你可以在這裏找到how to parse json using groovy

+0

嗨謝謝你迴應我,我是新的Jmeter和即時通訊不太舒服與後處理器你可以分步如何檢查如何檢查json數據斷言 – Sreenivas

+0

嗨,我會很樂意幫助你,但你能否展示你到目前爲止所嘗試過的? – olyv

+0

請檢查上面的圖片,我的測試計劃及其回覆 – Sreenivas

1

對於啓動以下JSONPath斷言將考驗你的statusCode

$.statusCode 

200到JSONPath斷言的期望值。

這一個是userName

$.responseData.userName 

簡單,不是嗎?請參閱Parsing JSON指南瞭解更多有用的示例和操作方法。

+0

請檢查下面的圖像,我的測試計劃&及其響應 – Sreenivas

+0

將您的'JSONPath'聲明**作爲HTTP請求的子**添加並刪除括號200 –

+0

謝謝@Dmitri T – Sreenivas

4

我發現JSR223斷言與腳本語言javascript是最容易的。至少如果你有在Java和JavaScript的知識。並且不需要添加任何插件。詳細

我的工作代碼:

var json = JSON.parse(SampleResult.getResponseDataAsString()); 
if (json.statusCode != 200) { 
    AssertionResult.setFailureMessage("" 
     + json.statusCode 
     + " " + json.statusMessage 
     + " " + json.errorMessage); 
    AssertionResult.setFailure(true); 
}