SOAPUI 能够在测试套件的数据库连接之间切换

SOAPUI ability to switch between database connections for test suite

一些背景知识:

我有大量的 SOAPUI 测试用例,用于测试 Web 服务和数据库事务。当有一个或两个不同的环境时,这工作得很好,因为我会克隆原始测试套件,更新数据库连接,然后更新端点以指向新环境。此处和那里的一些更改意味着我将重新克隆已为其他测试套件更新的测试用例。

但是,我现在有 6 个不同的环境需要这些测试 运行 并且正如预期的那样,我一直在添加更多测试用例并更改原始测试用例。当 运行宁旧的测试套件需要重新克隆时,这会导致问题。

我想知道是否有更好的组织方式。理想情况下,我想要一个测试套件并能够在数据库连接和 Web 服务端点之间切换,但不知道从哪里开始。非常感谢任何帮助或指导。

我只能访问免费版的 SOAPUI

这是当前结构的样子:

下面是我将如何实现同样的目标。

有一个包含所有测试的原始测试套件。但它被配置为 运行 针对服务器的测试。正如您提到的,您为第二个数据库模式克隆了套件并更改了连接详细信息。现在实现了,因为还有更多的数据库需要测试。

让您的项目具有所需的测试套件。在提供数据库服务器详细信息的任何地方,将实际值替换为 property expansion 以获得连接详细信息。

在 Jdbc 步骤中,将连接字符串更改为: jdbc:oracle:thin:scott/tiger@//myhost:1521/myservicename

至: jdbc:oracle:thin:${#Project#DB_USER}/${#Project#DB_PASSWORD}@//${#Project#DB_HOST}:${#Project#DB_PORT}/${#Project#DB_SERVICE}

您可以将以下属性定义到文件中并相应地命名。比如说,以下属性与 host1 上托管的数据库相关,并具有详细信息,将其命名为 host1.properties。当您想 运行 针对 host1 数据库进行测试时,请在项目级别自定义属性中导入此文件。

DB_USER=username
DB_PASSWORD=password
DB_HOST=host1
DB_PORT=1521
DB_SERVICE=servicename

同样,您可以根据需要保留任意数量的 属性 个文件,并在 运行 之前导入相应的文件到相应的数据库服务器。

您不仅可以将此 属性 文件用于数据库,还可以用于托管在不同服务器上的不同 Web 服务,例如统计、质量检查、生产,而无需更改端点。您只需要在端点中设置 属性 扩展即可。

根据评论更新

如果您想将其用于 Web 服务,请转到服务界面 -> 服务端点选项卡,然后添加一个新端点 ${#Project#END_POINT}/context/path。现在点击 Assign 按钮。 Select All requests and Test Requests 来自下拉列表。你也可以删除其他端点

在您的 属性 文件 END_POINT 中添加一个新的 属性 并将值设为 http://host:port。如果您想 运行 再次测试 https 说 https://host:port.

,这也会给您带来优势

如果您有多个 services/wsdls 托管在不同的服务器上,您可以为每个服务使用唯一的 属性 名称。

希望这对您有所帮助。