Jmeter在 SOAP / xml请求中删除空字符串
我正在使用“带有CSV和SOAP / xml请求的Jmeter”。我的测试在80个数据集中运行,并且CSV中的某些字段对于测试问题必须为空。
我的JMeter构建:-ThreadGroup -CSV数据-SOAP / XML -XPathExtractor-结果
CSV,例如矩阵表,多行和多列。
SOAP / XML
...<attribute xsi:type="ns2:stringType" name = "freeText2">
<value>${freeText2}</value>
</attribute>
<attribute xsi:type="ns2:longType" name = "amount">
<value>${amount}</value>
</attribute>
...
我的问题:当Jmeter替换了变量时:
<attribute xsi:type="ns2:stringType" name = "freeText2"><value>This is my free Text</value>
</attribute>
<attribute xsi:type="ns2:longType" name = "amount">
<value>455667</value>
</attribute>
当某些为空时一切都很好
<attribute xsi:type="ns2:stringType" name = "freeText2"><value></value> ==>interpreted as STRING
</attribute>
<attribute xsi:type="ns2:longType" name = "amount">
<value></value> ==>interpreted as STRING
</attribute>
系统告诉我“不可能有大量的“”,而且我也不想在我的系统中有一个带有“”空字符串的freeText2。
现在我的问题是:有什么办法可以使适配器/处理程序/提取程序…能将请求的空字符串转换成什么都没有(不是Null,因为它会抛出NullPointerException),就像==>
<attribute xsi:type="ns2:longType" name = "amount"><value></value>
</attribute>
转换成
<attribute xsi:type="ns2:longType" name = "amount"></attribute>
回答:
如果我正确地回答了您的问题,并且您需要消除空值的出现(例如删除所有<value></value>
元素),则可以使用Beanshell轻松完成。
将Beanshell
预处理器 添加为有问题的SOAP / XML-RPC
请求的子级
将以下代码插入“脚本”区域:
String data = sampler.getXmlData();data = data.replaceAll("<value></value>","");
sampler.setXmlData(data);
运行测试
Beanshell预处理程序在请求之前执行,因此它将
您可以参考如何使用BeanShell:JMeter最喜欢的内置组件指南,以获取有关将Beanshell与Apache JMeter一起使用的扩展信息。
以上是 Jmeter在 SOAP / xml请求中删除空字符串 的全部内容, 来源链接: utcz.com/qa/415319.html