我想在此soap ws标头中设置令牌的值
<soapenv:Enveloppe ...
<soapenv:Header>
<web:token>123456 </web:token>
从名为test的FROM步骤获取响应中的idSession
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:authentification xmlns:ns1="http://ws.demowebservices.com/">
<bloc1>
<bloc2>
<idSession>e1c64cd9-b933-4f56-ae1f-0f7d7f23942b</idSession>
</bloc2>
我试图介入web:令牌标记
${test#Response#//ns1:authentification/bloc1/bloc2/idSession}
但它不起作用
我该怎么办呢?
答案 0 :(得分:2)
我不确定这是否是您尝试实现的目标,但是如果您有一个名为SOAP Test step
的{{1}}并且您想要使用{Test Request
的值在另一个<soapenv:Header><web:token></soapenv:Header>
中,您可以使用以下语法在第二个SOAP Test step
请求中引用此值:
SOAP Test step
语法<soapenv:Enveloppe ...
<soapenv:Header>
<web:token>${Test Request#Request#//soapenv:Header/web:token}</web:token>
包含三个部分,测试步骤的名称,后跟属性(可以是${Test Request#Request#//soapenv:Header/web:token}
或#Request
),最后是#Response
到得到值xpath
。
<强>更新:强>
正如您所说的那样,//soapenv:Header/web:token
两个SOAP Test Request
,第一个被称为test
,并且有response
:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:authentification xmlns:ns1="http://ws.demowebservices.com/">
<bloc1>
<bloc2>
<idSession>e1c64cd9-b933-4f56-ae1f-0f7d7f23942b</idSession>
</bloc2>
</bloc1>
</ns1:authentification>
</soap:Body>
</soap:Envelope>
第二个以例如test 2
命名(不要小心,因为第二个名字不会影响您的目的)并且遵循request
:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<web:token>${test#Response#//ns1:authentification/bloc1/bloc2/idSession}</web:token>
</soapenv:Header>
<soapenv:Body>
...
</soapenv:Body>
</soapenv:Envelope>
使用${test#Response#//ns1:authentification/bloc1/bloc2/idSession}
,您正确引用idSession
响应的test
值。发送http log
时,请查看test 2
标签,如下图所示:
希望这有帮助,