如何使用Run Test Case步骤从另一个测试用例传递参数到soapui测试用例

时间:2016-05-02 10:40:04

标签: soapui

使用soapui开源版。我知道这个问题非常基础,但不知何故错过了某些内容而无法将参数值传递给template test case

测试用例中有多个测试步骤。并且有多个不同数据的测试。所以,这可以通过不同的方式完成。我正在尝试第二种方法。还看了一下soapui的documentation,没有提到这样的事情。

  1. 创建包含所需步骤的测试用例。克隆测试用例多次并更改数据。这不是聪明的方式。
  2. 创建一个测试用例,将其命名为basicTestCaseTemplate。假设它有3个soap请求步骤,并且每个请求都使用属性并使用属性扩展而不是静态测试值,例如${#TestCase#ID}。然后使用名为Run Test Case的测试步骤在不同的测试用例中使用上述模板案例,从此处传递ID值。但是,值ID不会传递给templateTestCase的请求。基本上想重用测试步骤。 有什么想法吗?
  3. 请注意,我可以使用groovy步骤而不是Run Test Case作为替代方法,如文档所述。但我认为,这是一个非常基本的东西,应该可以工作或做一些错误。

1 个答案:

答案 0 :(得分:1)

可能与您的 SOAPUI 版本有关,我尝试使用 SOAPUI 5.0.0 重现您的问题,因此我创建了一个 TestSuite 其中包含两个 TestCases

在第一个 TestCase 中,我只需添加一个测试步骤SOAP请求,在您使用属性扩展${#TestCase#ID}注释follow属性时,它会使用它。此外,我添加了此测试用例自定义属性标签ID属性original ID作为值:

enter image description here

在第二个 TestCase 中,我创建了一个 Run TestCase 步骤,并在那里指定模板 TestCase 作为 TestCase 跑。此 TestStep 自动识别 TestCase ID属性,并允许我在此上下文中为其指定不同的值:

enter image description here

现在如果我在 http log 标签中运行 Run TestCase ,我可以看到带有修改后的ID的请求:

Wed May 04 13:24:15 CEST 2016:DEBUG:>> "<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:oasis:names:tc:dss:1.0:profiles:archive">[\n]"
Wed May 04 13:24:15 CEST 2016:DEBUG:>> "   <soapenv:Body>[\n]"
Wed May 04 13:24:15 CEST 2016:DEBUG:>> "   [0x9]different ID from Run TestCase step[\n]"
Wed May 04 13:24:15 CEST 2016:DEBUG:>> "   </soapenv:Body>[\n]"
Wed May 04 13:24:15 CEST 2016:DEBUG:>> "</soapenv:Envelope>"

注意:如果您未在模板 TestCase 自定义属性标签上明确添加该属性,那么运行TestCase步骤不允许您选择设置属性值(即使您在请求中使用了属性扩展)。我认为你的问题可能存在于此。

希望它有所帮助,