SOAPUI - 为 TestCase/TestSuite 配置端点和资源

SOAPUI - configure endpoints and resources for TestCase/TestSuite

有没有办法在 SOAPUI(免费) 中配置测试用例、测试套件甚至项目级别的测试请求使用的 resource/method?

我们有以下用例:
相同的 REST 服务 运行在不同的服务器(可能不同的版本)和略有不同的资源路径上运行取决于配置。
例如http://server1/myResthttp://server2/theRest 等等

我们希望能够 运行 我们的测试套件和测试用例针对那些不同的 endpoint/resource 组合。 到目前为止,我们发现更改端点的唯一方法是在测试用例级别使用 测试用例编辑器 并在测试步骤级别更改 resource/method。

显然,不能为每个端点/资源路径组合复制所有测试用例/测试套件或为此创建项目。

有没有一种简单的方法可以使用 SOAPUI (free) 来实现?

我们能够找到解决问题的方法,关键是使用项目级属性。

端点

基本上,有两种方法可以做到这一点。

有属性

  1. 打开项目的项目视图并添加名为 ServiceEndpoint 的 属性(或您要使用的任何其他名称)。值是主机名,例如server1:8090
  2. 打开您的服务的服务查看器。在选项卡 Service Endpoints 上,添加一个端点 http://${#Project#ServiceEndpoint}
  3. 仍在服务查看器中,单击 分配 按钮,select 您要分配的请求(所有请求、测试请求、两者...)终点。

现在如果要使用其他端点只需要修改项目级别属性

没有属性

  1. 使用服务查看器添加您需要使用的端点(参见上面的第 2 点)
  2. 分配您要使用的端点(参见上面的第 3 点)

资源路径

  1. 使用项目视图定义一个属性ResourcePath
  2. 添加一个新资源,定义/{ServicePath}作为资源路径
  3. 在资源查看器中打开资源。您将看到添加了一个名称为 ServicePath 且带有 stlye TEMPLATE 的参数。给它值 ${#Project#ResourcePath}
  4. 在您的测试套件/测试用例中使用此资源

现在只需要修改项目级别属性即可更改资源路径。

您还可以定义多个路径组件,例如/{serviceName}/{methodName} 或类似的东西。当然你需要 2 个变量。

注意:如果你的路径值属性包含一个/,你将需要编辑SOAP UI HTTP Settings 并勾选 Pre-Encoded Endpoints 复选框,否则它将无法工作,因为 / 将被 URL 编码

  1. 双击 Navigator 项目左侧的端点 URL
  2. 转到服务端点
  3. 点击添加或 + 符号
  4. 输入终点
  5. 点击分配->没有终点的所有请求

先决条件:在需要应用此更改的任何地方清空 url。