我是Jmeter的新手。我正在访问一个web服务,并得到一个SOAP响应,如下所示。
SOAP响应:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:getResponse ............>
<ns1:return>
<ns2:Config ..........>
.........
.........
<ns2:id>1</ns2:id>
.........
.........
</ns2:Config>
<ns2:Config .........>
.........
.........
<ns2:id>2</ns2:id>
.........
.........
</ns2:Config>
</ns1:return>
</ns1:getResponse>
</soap:Body>
</soap:Envelope>
我需要从两个标签()中获得这两个id值(),并通过循环将其作为其他SOAP请求的输入。
我已经使用正则表达式提取器尝试过了。
参考名称:id
正则表达式:(.+?)
模板:$1$
之后使用ForEach控制器并给出从提取器获取的输入。
输入变量前缀:id
输出变量名称:idValue
并尝试将此idValue用于下一个SOAP请求。但是在正则表达式提取器步骤本身中没有获得id值,因此根本不会进行第二个SOAP请求。
任何关于这方面的建议都将非常有帮助。
感谢
在正则表达式提取器中,我添加了Match no as-1,这解决了我的问题。
参考名称:id
正则表达式:<ns2:id>(.+?)</ns2:id>
模板:$1$
匹配号:-1
在foreach Controller中,我给出了相同的细节。
输入变量前缀:id
输出变量名称:idValue
感谢
在这种情况下,您应该使用:
- http://jmeter.apache.org/usermanual/component_reference.html#XPath_Assertion
它使用XPath语法:
- https://en.wikipedia.org/wiki/XPath
您可以使用XPath测试程序在查看结果树中测试XPath查询