我已陷入某种情况,我需要验证上一个采样器对其中一个值的响应,如果该值为[],那么我需要触发以下请求或者然后切换到另一个采样器。
Flow:
Check Response of Sampler for One of the attribute
IF(attribute value==[])
Execute the Sampler under IF Conditions.
ELSE
New Sampler
示例回应: { “ID”:8中, “MERCHANT_ID”: “39”, “标题”: “衬衫-XtraLarge”, “副标题”:NULL, “价格”:110, “说明”:NULL, “图像”: “image_thumbs” :[[]], “选项”:[], “options_available”:[], “custom_options”:[]}
我需要检查属性custom_options是否为空!如果为空执行某些操作,如果不为空则执行其他操作!
需要条件来模拟这个!
帮助很有用!
答案 0 :(得分:2)
在JMeter中有一个很好的功能就是Else声明,但在那之前你将不得不使用2 If Controllers
如果Controller允许用户控制其下方的测试元素(其子元素)是否运行。
假设你使用regex / json / css /其他后处理器提取器保存你的属性值,添加两个条件,首先是正数,然后是Sampler:
${__groovy("${attributeValue}" == "[]")}
第二个是否定的,并在其下添加新的采样器
${__groovy("${attributeValue}" != "[]")}
鼓励{p> __groovy使用默认Javascript
检查此项并在条件中使用__jexl3或__groovy函数建议演出
答案 1 :(得分:1)
将以下代码放入"脚本"面积:
def size = com.jayway.jsonpath.JsonPath.read(prev.getResponseDataAsString(), '$..custom_options')[0].size()
if (size == 0) {
vars.put('size', 'empty')
} else {
vars.put('size', 'notempty')
}
将Switch Controller添加到您的测试计划中并使用${size}
作为"切换值"
empty
个名称。提出与空" custom_options"相关的请求在empty
简单控制器添加另一个简单控制器作为Switch Controller的子级,并为其指定notempty
名称。提出与非空的相关的请求" custom_options"在notempty
简单控制器下。