如何将参数从另一个使用 运行 测试用例步骤的测试用例传递给 soapui 测试用例
How to pass arguments to soapui test case from another test case which using Run Test Case step
使用soapui开源版。我知道这个问题非常基础,但不知何故遗漏了一些东西并且无法将参数值传递给 template test case
.
一个测试用例中有多个测试步骤。并且有多个测试具有不同的数据。因此,这可以通过不同的方式完成。我正在尝试第二种方法。也看了soapui的documentation,没有提到过这样的东西
- 使用所需的所有步骤创建测试用例。多次克隆测试用例并更改数据。这不是聪明的方法。
- 创建一个测试用例,命名为
basicTestCaseTemplate
。假设它有 3 个 soap 请求步骤,每个请求都使用 属性 并使用 属性 扩展而不是 ${#TestCase#ID}
等静态测试值。然后使用名为 Run Test Case
的测试步骤在不同的测试用例中使用上述模板用例,从此处传递 ID 值。但是,值 ID 未传递给 templateTestCase
的请求。基本上想重用测试步骤。
有什么想法吗?
请注意,我可以使用 groovy 步骤而不是 Run Test Case
作为替代方法,如文档所述。但我认为,这是非常基本的东西,应该可以工作或犯一些小错误。
可能与您的 SOAPUI 版本有关,我尝试使用 SOAPUI 5.0.0 重现您的问题,所以我创建了一个TestSuite 其中包含两个 TestCases.
在第一个 TestCase 中,我只是添加了一个 Test Step SOAP Request,在他的请求中,它在您评论后使用 属性 使用 属性 扩展 ${#TestCase#ID}
。我还在此 测试用例 的 自定义属性 选项卡上添加了 ID
属性 和 original ID
作为值:
在第二个 TestCase 我创建了一个 运行 TestCase 步骤,我在那里指定了模板 TestCase 作为 TestCase 到 运行。此 TestStep 自动识别 TestCase ID 属性 并允许我在此上下文中为其分配不同的值:
现在,如果我 运行 运行 TestCase 在 http log 选项卡中,我可以看到请求使用修改后的 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 步骤 不给你设置 属性 值的选项(即使你使用 属性 根据请求进行扩展)。我想你的问题可能出在这上面。
希望对您有所帮助,
使用soapui开源版。我知道这个问题非常基础,但不知何故遗漏了一些东西并且无法将参数值传递给 template test case
.
一个测试用例中有多个测试步骤。并且有多个测试具有不同的数据。因此,这可以通过不同的方式完成。我正在尝试第二种方法。也看了soapui的documentation,没有提到过这样的东西
- 使用所需的所有步骤创建测试用例。多次克隆测试用例并更改数据。这不是聪明的方法。
- 创建一个测试用例,命名为
basicTestCaseTemplate
。假设它有 3 个 soap 请求步骤,每个请求都使用 属性 并使用 属性 扩展而不是${#TestCase#ID}
等静态测试值。然后使用名为Run Test Case
的测试步骤在不同的测试用例中使用上述模板用例,从此处传递 ID 值。但是,值 ID 未传递给templateTestCase
的请求。基本上想重用测试步骤。 有什么想法吗?
请注意,我可以使用 groovy 步骤而不是 Run Test Case
作为替代方法,如文档所述。但我认为,这是非常基本的东西,应该可以工作或犯一些小错误。
可能与您的 SOAPUI 版本有关,我尝试使用 SOAPUI 5.0.0 重现您的问题,所以我创建了一个TestSuite 其中包含两个 TestCases.
在第一个 TestCase 中,我只是添加了一个 Test Step SOAP Request,在他的请求中,它在您评论后使用 属性 使用 属性 扩展 ${#TestCase#ID}
。我还在此 测试用例 的 自定义属性 选项卡上添加了 ID
属性 和 original ID
作为值:
在第二个 TestCase 我创建了一个 运行 TestCase 步骤,我在那里指定了模板 TestCase 作为 TestCase 到 运行。此 TestStep 自动识别 TestCase ID 属性 并允许我在此上下文中为其分配不同的值:
现在,如果我 运行 运行 TestCase 在 http log 选项卡中,我可以看到请求使用修改后的 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 步骤 不给你设置 属性 值的选项(即使你使用 属性 根据请求进行扩展)。我想你的问题可能出在这上面。
希望对您有所帮助,