如何从soapui发送sessionID作为请求

时间:2012-03-20 07:44:56

标签: web-services jax-ws axis2 soapui

我正在测试一个接受session-id作为参数的webservice方法。

在使用虚拟会话ID参数通过SoapUI测试相同方法时,服务器拒绝该请求,因为它期望正确的会话ID。

我该如何解决这个问题?在发送请求之前,SoapUI是否可以绑定session-id?

请指教。感谢

以下是从SOAP-UI触发的示例请求:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://services.local.com">
   <soapenv:Header/>
   <soapenv:Body>
      <ser:getMultiple>
         <!--Optional:-->
         <ser:sessionId>1000AJHEFG0987</ser:sessionId>
         <!--Optional:-->
         <ser:lessonId>95101</ser:lessonId>
         <!--Optional:-->
         <ser:quantity>1</ser:quantity>
         <!--Optional:-->
         <ser:impressionRow>1</ser:impressionRow>
      </ser:getParametersMultiple>
   </soapenv:Body>
</soapenv:Envelope>

2 个答案:

答案 0 :(得分:1)

让我们说,如果你在第一个请求的响应中得到sessionid,而下一个请求应该在http://{{original endpoint}}/{{SESSION_ID}}),这肯定有用:

  1. 请求将会话ID放入
  2. 的请求(不是测试用例中的测试请求)
  3. 在&#39;请求&#39;上添加参数标签
  4. name=sessionidstyle=templatelevel=resource。现在它在所有相关测试请求中都是空的
  5. 转到测试请求,&#39;请求&#39;标签
  6. 将来自先前请求的sessionid值路径放入&#39; value&#39; sessionid参数的字段。例如,它就像${users#Response#$.session_id}其中&#39;用户&#39;是端点资源的名称,&#39; session_id&#39;是响应中的参数名称

答案 1 :(得分:-1)

找到解决方案,

  • 设计您的登录方法,该方法将接受某些输入和意愿 将sessionID作为字符串

  • 返回
  • 从SOAP-UI点击该登录方法,您将获得sessionID 你的回应

  • 在soap-ui中使用“Property Transfer”选项并转移收到的 所有其他请求的sessionID

有用的链接:soapui.org/Functional-Testing/transferring-property-values.h‌​tml

简单!! :)