通过在JMeter中检查响应正文来停止发送请求
问题内容:
我想继续调用REST API,直到响应正文包含100个元素。
这是示例:
要求: someurl/get/data
响应:第一次API调用:(包括2个元素)
{
"items" : [
{
"name": "abc",
"id" : "ajdiw123"
},
{
"name": "abc",
"id" : "ajdiw123345"
}
]
}
第二次API调用:(4个元素)
{
"items" : [
{
"name": "abc",
"id" : "ajdiw123"
},
{
"name": "def",
"id" : "ajdiw145"
},
{
"name": "afc",
"id" : "ajdiw113"
},
{
"name": "bbc",
"id" : "ajdiw199"
}
]
}
像这样,响应主体中包含的元素可以更改。在某个时候,它将在那里返回100个具有100个不同id的元素。我如何确定这一点
并停止使用JMeter将请求发送到端点。
问题答案:
根据您的测试计划,可以通过多种方式实现。
向您的请求添加JSON提取器和JSR223声明。
JSR223断言代码将类似于:
String totalIDs = vars.get("id_matchNr");
Integer result = Integer.valueOf(totalIDs);
if (result == 100){
AssertionResult.setFailure(true);
}
之后,只需 向该请求添加一个结果状态操作
处理