Jmeter JSON路径断言
下面是我的JSON响应数据,我需要使用下面的响应进行断言。我尝试了多种方法来编写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",
{
"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左右的括号