JMeter中的多个条件是JSON断言
对于我的http请求调用,我得到以下JSON响应JMeter中的多个条件是JSON断言,jmeter,Jmeter,对于我的http请求调用,我得到以下JSON响应 { "id": "29133", "status": { "overall": "IN_PROGRESS", "subStatus": "BATCH_GENERATION_STARTED", "failureDetails":
{
"id": "29133",
"status": {
"overall": "IN_PROGRESS",
"subStatus": "BATCH_GENERATION_STARTED",
"failureDetails": null,
"statusHistory": [
{
"overall": "OPENED",
"subStatus": null,
"startTimestamp": "2021-05-24T06:54:39.2391116",
"endTimestamp": null
},
{
"overall": "UPLOAD_COMPLETE",
"subStatus": null,
"startTimestamp": "2021-05-24T06:54:39.2391116",
"endTimestamp": null
},
{
"overall": "IN_PROGRESS",
"subStatus": "CSV_VALIDATION_STARTED",
"startTimestamp": "2021-05-24T06:54:39.2391116",
"endTimestamp": null
},
{
"overall": "IN_PROGRESS",
"subStatus": "CSV_VALIDATION_COMPLETE",
"startTimestamp": "2021-05-24T06:54:39.2391116",
"endTimestamp": null
}
]
},
"initiatedBy": "bulk_admin_user",
"product": "TEST",
"entity": "STE",
"operation": "ADDJ_JOB",
"startTimestamp": "2021-05-24T06:54:39.2391116",
"endTimestamp": null,
"file": {
"totalRecords": 0,
"totalFailedRecords": 0,
"totalSuccessRecords": 0,
"totalInProgressRecords": 0,
"numBatches": 0,
"maxBatchSize": 1000,
"batches": []
},
"results": {
"successFileAvailable": false,
"failureFileAvailable": false
},
"actionsAvailable": {
"dataUploadAllowed": false,
"abortJob": false,
"restartJob": false,
"actionHistory": [
{
"initatedTimestamp": "2021-05-24T06:54:41.9525781",
"actionType": "UPLOAD_COMPLETE",
"initiatedBy": "bulk_admin_user"
}
]
}
}
在状态部分中,我想验证总体
部分,我希望有两个值“进行中”和“上传完成”
我想在JMeter中使用JSON断言进行验证,我使用了以下内容:,
不知何故,上面的条件不起作用,我在这里遗漏了什么?为什么您是
JSON
断言,为什么不使用以下脚本创建JSR223断言
import groovy.json.JsonSlurper;
def failureMessage = "";
def jsonResponse = null;
JsonSlurper JSON = new JsonSlurper ();
try {
jsonResponse = JSON.parseText(prev.getResponseDataAsString());
status = jsonResponse.status.overall
}
catch (Exception e) {
failureMessage += "Invalid JSON.\n"
}
if (status.contains('IN_PROGRESS') || status.contains('UPLOAD_COMPLETE')){
AssertionResult.setFailure(false);
}
else {
AssertionResult.setFailure(true);
AssertionResult.setFailureMessage(failureMessage);
}
这将涵盖您的提问?为什么使用JSON断言,为什么不使用以下脚本使用JSR223断言
import groovy.json.JsonSlurper;
def failureMessage = "";
def jsonResponse = null;
JsonSlurper JSON = new JsonSlurper ();
try {
jsonResponse = JSON.parseText(prev.getResponseDataAsString());
status = jsonResponse.status.overall
}
catch (Exception e) {
failureMessage += "Invalid JSON.\n"
}
if (status.contains('IN_PROGRESS') || status.contains('UPLOAD_COMPLETE')){
AssertionResult.setFailure(false);
}
else {
AssertionResult.setFailure(true);
AssertionResult.setFailureMessage(failureMessage);
}
这能满足你的要求吗
状态
属性值
$.status..overall
正在进行中
和上载完成
,则应将其修改为以下内容:
.*IN_PROGRESS.*UPLOAD_COMPLETE.*
状态
属性值
$.status..overall
正在进行中
和上载完成
,则应将其修改为以下内容:
.*IN_PROGRESS.*UPLOAD_COMPLETE.*
更多信息:像这样,又脆又小像这样,又脆又小