当前位置: 首页 > 面试题库 >

Jmeter在 SOAP / xml请求中删除空字符串

夏奕
2023-03-14
问题内容

我正在使用“带有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,我对它非常陌生,并且有最低的编程背景。我目前使用2个采样器:a)soap请求b)soap xml rpc请求。 通过使用soap请求采样器,我可以轻松地加载wsdl文件并继续测试。由于EndpointDispatcher中的ContractFilter不匹配,接收方无法处理带有Action“”的消息。这可能是由于合同不匹配(发送方和接收方之间的操作不匹配)或发送方和接收方之

  • 问题内容: 我已经导入了WSDL并使用它发送SOAP请求。看起来像这样: 问题出在Calculate元素中。Web服务无法接受。Web服务不喜欢这样的名称空间… 使用SoapUI,我发现此请求可以正常工作: 那么,如何将请求从第一个版本更改为第二个版本?(不使用肮脏的把戏!) (如果会导致正确的请求格式,则重新导入不是问题。) 再说一遍:不允许使用任何肮脏的技巧,例如入侵请求流以对其进行修改! 尽

  • 我正在尝试测试我的项目的 Web 服务。Web 服务接受 SOAP 请求并提供适当的响应。 在JMeter中,我选择了SOAP/ XML-RPC请求。它对我来说完全没问题,给了我正确的反应。然而,在我的测试范围内,我有超过100个web服务,我必须在不同的环境中测试它们。将SOAP/ XML-RPC示例中的URL值改为指向不同的env是非常麻烦的工作。对于SOAP/XML-RPC请求,我们有类似H

  • 问题内容: 如何在Python 2.6中删除XML字符串中的空格和换行符?我尝试了以下软件包: etree:此代码段保留原始空格: 我不能使用将提供参数的Python 2.7 。 渺小:一样: 问题答案: 最简单的解决方案可能是使用lxml,您可以在其中设置解析器选项以忽略元素之间的空白: 这可能足以满足您的需求,但是有些警告是安全的: 这只会删除元素之间的空格节点,并尽量不要删除内容混合的元素内

  • 在我使用JMeter进行的测试中,创建了一些属性,请参阅以下内容: -----------------------------7d159c1302d0y0 内容-处置:窗体-数据;名称="年龄" 内容-类型:文本/普通;charset=ISO-8859-1 内容-传输-编码:8bit 我想删除属性: 内容-类型:文本/普通;charset=ISO-8859-1 内容传输编码:8bit 我尝试运行下

  • 问题内容: 我使用的框架会不时返回格式错误的字符串,其中包含“空”字符。 例如,“ foobar”表示为:[,f,o,o,b,a,r] 第一个字符不是空格(’‘),因此System.out.printlin()将返回“ foobar”而不是“ foobar”。但是,String的长度是7,而不是6。显然,这使大多数String方法(等于,拆分,子字符串等)变得无用。有没有办法从字符串中删除空字符?