Jmeter JSON Path Assertion

吃可爱长大的小学妹 提交于 2019-12-07 10:28:05

问题


Below is my JSON response data, I need to do assertion using the below response. I tried in many ways to write JSON path & Expected Value. Always assertion fails. What I want is please help to write the path and expected value for the below data

{
    "statusCode": 200,
    "statusMessage": "Success",
    "errorMessage": "",
    "responseData": {
        "id": 15,
        "userName": "partner@tarento.com",
        "firstName": "tarento",
        "lastName": "test1",
        "phoneNumber": "1234567812",
        "email": "partner@tarento.com",
        "password": "",
        "city": "",
        "agentList": [
            {
                "id": 37,
                "userName": "Rahul.antonyRaj@tarento.com",
                "firstName": "Sanjay",
                "lastName": "rahul",
                "phoneNumber": "7411269480",
                "email": "Rahul.antonyRaj@tarento.com",
                "password": "",
                "active": true
            },
            {
                "id": 68,
                "userName": "jinesh.sumedhan@tareto.com",
                "firstName": "jinesh",
                "lastName": "sumedhan",
                "phoneNumber": "9400993826",
                "email": "jinesh.sumedhan@tareto.com",
                "password": "",
                "active": true
            },
            {
                "id": 108,
                "userName": "a.sanjayrahul@gmail.com",
                "firstName": "Rahul",
                "lastName": "Antony",
                "phoneNumber": "9994590241",
                "email": "a.sanjayrahul@gmail.com",
                "password": "",
                "active": true
            },
            {
                "id": 304,
                "userName": "a.sanjayrajish@gmail.com",
                "firstName": "Agent",
                "lastName": "Agent",
                "phoneNumber": "9025699716",
                "email": "a.sanjayrajish@gmail.com",
                "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"
            }
        ]
    }
}

I received the following response


回答1:


I found the JSR223 Assertion with script language javascript to be the easiest. at least if you have knowledge in java and javascript. And no need to add any plugins.

My working code in detail:

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



回答2:


I personally prefer to use BSF PostProcessor in coupling with Groovy language. Example of how to parse JSON with Groovy you can find here how to parse json using groovy




回答3:


For start following JSONPath Assertion will test your statusCode

$.statusCode

put 200 to Expected Value of JSONPath Assertion.

This one is for userName

$.responseData.userName

Easy, isn't it? See Parsing JSON guide for more useful examples and how-tos.



来源:https://stackoverflow.com/questions/22006542/jmeter-json-path-assertion

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!