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

回到顶部