Soapui 属性 转入请求头

Soapui property transfer to request header

我想在这个 soap ws header 中设置 token 的值

<soapenv:Enveloppe ...
<soapenv:Header>
    <web:token>123456 </web:token>

从名为测试的步骤获取 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:token 标签

   ${test#Response#//ns1:authentification/bloc1/bloc2/idSession}

但是没用

我应该用什么代替?

我不确定这是否是您想要实现的目标,但是如果您有一个名为 Test RequestSOAP Test step 并且您想使用 [=15= 的值] 在另一个 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} 您正确引用了 test 响应的 idSession 值。发送 test 2 时查看 http log 选项卡,如下图所示:

希望这对您有所帮助,