当前位置: 首页 > 知识库问答 >
问题:

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

孟智志
2023-03-14

SoapUI 提供了一种通用语法,用于在 SOAP 请求中动态插入属性。在他们的文档中,他们解释了如何根据属性范围访问不同的属性:

#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请求上。

先谢谢了

共有2个答案

邵亦
2023-03-14

下面的例子是从你的测试用例中获取请求,并给一个特定的元素赋值。

// 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>
严成礼
2023-03-14

最后,我在文档中找到了解决方案,使用“=”前缀可以指定一个时髦的脚本并访问一些上下文变量。在此上下文中,请求变量及其名称属性可用,因此可以使用以下命令访问当前 TestStep 名称:

${=request.name}
 类似资料:
  • 说明: string Worker::$name 设置当前Worker实例的名称,方便运行status命令时识别进程。不设置时默认为none。 范例 use WorkermanWorker; require_once __DIR__ . '/Workerman/Autoloader.php'; $worker = new Worker('websocket://0.0.0.0:8484'); //

  • 全部显示 返回或设置指定对象的名称。对于CommandBar 对象,String 类型,可读写;对于其他所有对象,String 类型,只读。 说明 内置命令栏的本地名称显示在标题栏中(在命令栏未固定时)以及有效命令栏列表中(无论该列表显示在容器应用程序的哪个位置)。 对内置命令栏,Name 属性返回该命令栏的美式英语名称。用NameLocal 属性可返回其本地化的名称。 如果改变了一个自定义命令栏

  • 我正在尝试在Java中的SOAPUI项目中设置SOAPUI TestStep的属性,如下面的屏幕截图所示。 当我调试下面的代码时,当我得到属性或值时,我总是空值。我的观点是我想从我无法做到的 java 函数中设置属性变量。当我用谷歌搜索问题时,我在 Groovy 中得到了帮助。有人可以帮助我如何在 Java 中做到这一点吗 我想在执行程序时动态设置城市的值。请帮助我解决这个问题。

  • 我使用的是免费(非专业)SoapUI 5.0,我在测试套件中有一个属性列表。然后,我有许多测试步骤,每个步骤与测试套件属性具有相同的名称。 我试图在测试步骤属性中编写Groovy脚本,以检索同名的测试套件属性的值。 例如: 测试套件的属性颜色为\u红色,值为12345 到目前为止,我在“info”属性值中拥有什么: 我不确定我是否需要新的GroovyShell()。评估位,但没有它仍然不起作用。我

  • 我是SoapUI的新手,遇到了一个我不明白的问题。目标:我想在不同的测试步骤中将结果从一个Groovy脚本传递到另一个Groovy脚本。 第1步:我有一个生成GUID的Groovy脚本: 步骤2:我有一个属性转移步骤,它接受上述脚本的结果,并将其传递到HTTP请求步骤(正在工作) 步骤3:我有第二个Groovy脚本,它运行curl命令,其中需要包含相同的GUID。 第3步是问题开始的地方。如何从第

  • 我正在使用SCEP为我的WebService创建证书。在成功创建证书和启动服务器之后,我尝试通过浏览器访问wsdl,浏览器显示一条错误消息,该消息表示该应用程序不允许使用证书类型,错误代码:SEC_ERROR_INSAPPLAYATE_CER_TYPE。一位同事指出,我必须将扩展密钥属性中的密钥用法更改为“服务器身份验证”,并且应该在认证请求中这样做。 要创建一个新请求,我使用BouncyCast