我试图从从JMS发布服务器发送到JMS订阅服务器的xml文档中获取一个值。
<?xml version="1.0" encoding="UTF-8"?>
<sys1>
<req>
<id>123</id>
<message>hello</message>
</req>
</sys1>文档会被转换。我需要检查xml文档中的“id”在转换后是否保持不变。当我从订阅者那里得到"id“时,我只需要使用后处理器- XPath抽取器并得到它。
但是当我在出版商里使用它的时候,我什么也得不到。
我阅读了一些j抄手册,发现“这个测试元素(XPath抽取器)允许用户使用查询语言从结构化的XPath响应- XML或(X)HTML中提取值。”
然后,我尝试用正则表达式抽取器获得它,但它也只适用于响应。但我怎样才能从请求中得到呢?
发布于 2021-12-29 14:44:16
我认为您可以使用JSR223 PostProcessor访问请求数据,示例代码如下所示:
def id = new groovy.xml.XmlParser().parseText(ctx.getCurrentSampler().getTextMessage()).req.id.text()如果要将结果存储到JMeter变量中,还可以添加下一行:
vars.put('id', id)一旦完成,您将能够在需要时以${id}的形式访问提取的值。
在上面的代码中,ctx表示JMeterContext类实例,请参阅JavaDoc获取对所有方法和字段的描述,并查看在Groovy中应该使用的前8个JMeter Java类以获得有关该方法和JSR223测试元件可用的其他JMeter API缩写的更多信息。
您也可能对Groovy文档的Apache处理XML章节感兴趣。
https://stackoverflow.com/questions/70518326
复制相似问题