SOAPUI - SOAPRequest -扩展属性以访问当前TestStep的name属性



SoapUI提供了在SOAP Request中动态插入属性的通用语法。在他们的文档中,他们解释了如何根据属性作用域访问不同的属性:

#Project# - references a Project property
#TestSuite# - references a TestSuite property in the containing TestSuite
#TestCase# - references a TestCase property in the containing TestCase
#MockService# - references a MockService property in the containing MockService
#Global# - references a global property (optional)
#System# - references a system property
#Env# - references a environment variable
[TestStep name]# - references a TestStep property within the current TestCase

我的问题是我想访问当前testStep的名称,但是文档说要访问testStep属性你需要名称…还有别的办法吗?例如,#TestCase#TestStep#Name。我知道如何用groovy脚本实现这一点,但在我的情况下,我想把属性直接放在SOAP请求上。

Thanks in advance

最后我在文档中找到了解决方案,使用'='前缀可以指定一个groovy脚本并访问一些上下文变量。在这个上下文中,request变量和它的name属性都是可用的,所以可以使用

来访问当前的TestStep名称
${=request.name}

下面的例子是从TestCase中抓取请求并将值分配给特定的元素。

// get XMLHolder for request message def
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);
// grabbing the specified request
def holder = groovyUtils.getXmlHolder("Specified#Request")
holder["//*:Password"] = 'password1';
对于上面的示例,您需要知道元素的Xpath。

注意,这可以通过几种方式完成,但是您指定了通过groovy脚本来完成。它也可以通过#TestCase#属性来实现。例子:

 <soapenv:Body>
  <tns:AuthenticateUser>
     <tns:Credentials>
        <tns:IntegrationID>${IntegrationID}</tns:IntegrationID>
        <tns:Username>${Username}</tns:Username>
        <tns:Password>${Password}</tns:Password>
     </tns:Credentials>
  </tns:AuthenticateUser>

相关内容

  • 没有找到相关文章

最新更新