如何使用jmeter更新xml以便稍后发布

时间:2017-08-17 16:29:17

标签: jmeter

我有一个JMeter作业,我从中获取XML响应,更新XML,然后将XML返回以更新记录。我有所有部分,除了XML更新部分。

我需要更新XML root / Settings / HasRetry,而不仅仅是" false" to" true",但也直接在其下添加其他节点。订单在此XML中很重要。

xml to update

关于最佳方法的想法?我试过一个简单的java脚本:

java replace

...但是JS在那个XML字符串中的特殊字符的b / c上呕吐。

想法?

1 个答案:

答案 0 :(得分:0)

您的脚本中有错误,最后一行应该看起来像vars.put("ResponceData", res);,因为您当前的实现只是忽略了替换逻辑。

另请注意it is not recommended to use Beanshell for scripting,因为我们鼓励JMeter 3.1用户切换到JSR223 Test ElementsGroovy语言。

Groovy是Java兼容的,因此在大多数情况下有效的Beanshell代码将是一个有效的Groovy代码,但不建议使用像${ResponceData}这样的JMeter变量引用,因为它会破坏脚本编译功能和性能将是一个大问号所以切换到vars.get('ResponceData')

示例值替换值的Groovy代码如下所示:

def str = vars.get('ResponceData')        
def res = str.replace(vars.get('findSearch'), vars.get('findReplaceWith'))
vars.put('ResponceData', res)

演示:

Groovy String Replace

请参阅Apache Groovy - Why and How You Should Use It以了解有关JMeter中Groovy脚本的更多信息。