Jmeter JSON路径断言

Jmeter JSON路径断言,json,performance,jmeter,jmeter-plugins,Json,Performance,Jmeter,Jmeter Plugins,下面是我的JSON响应数据,我需要使用下面的响应进行断言。我尝试了多种方法来编写JSON路径和期望值。断言总是失败。我想要的是,请帮我写下下面数据的路径和期望值 { "statusCode": 200, "statusMessage": "Success", "errorMessage": "", "responseData": { "id": 15, "userName": "partner@tarento.com",

下面是我的JSON响应数据,我需要使用下面的响应进行断言。我尝试了多种方法来编写JSON路径和期望值。断言总是失败。我想要的是,请帮我写下下面数据的路径和期望值

{
    "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"
            }
        ]
    }
}
我收到了以下答复


我个人更喜欢将BSF后处理器与Groovy语言结合使用。关于如何使用Groovy解析JSON的示例,您可以在这里找到

,因为开始之后的JSONPath断言将测试您的
statusCode

$.statusCode
200
设置为JSONPath断言的预期值

这是为
userName

$.responseData.userName

很简单,不是吗?有关更多有用的示例和操作方法,请参见指南

我发现使用脚本语言
javascript
JSR223断言是最简单的。至少如果你有java和javascript方面的知识。而且不需要添加任何插件

我的详细工作代码:

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

您好,谢谢您回复我,我是Jmeter的新手,我对后处理器不太熟悉。您能一步一步地分享如何检查json数据的断言吗?您好,我很乐意帮助您,但您能展示您迄今为止所做的尝试吗?请检查上面的图片、我的测试计划及其响应。为什么编辑我的答案??你确定你想回答我而不是@Dmitry T?回复到原来的帖子,为什么不更新你的问题@Sreenivas?提供更多细节,比如你写的json路径是什么?您的示例中的预期值是多少?请检查下面的图片、我的测试计划及其响应。您是否尝试删除方括号?请在预期值中将
[200]
更改为
200
。删除方括号有效,但我如何知道JSON路径断言已通过?请检查下面的图片,我的测试计划及其响应将您的
JSONPath
断言作为HTTP请求的子项,并删除200左右的括号