如何使 Robot Framework API 测试环境独立?

How to make Robot Framework API tests environment independent?

我正在开发一些 Robot Framework API 测试。

最终目标是将一组测试添加到我们的项目中,以便每次开发人员使用 Jenkins 构建和部署项目时,测试 运行 会自动检查是否一切正常适当地。

我想让测试检查它们部署在哪个环境(Dev 1、2、3/Test/Accept)并自动将其作为变量填充。 例如 https://${VARIABLE}.companyname.com/service/api 在开发服务器 1 上部署时应该变成 https://portal-01.dev.companyname.com/service/api。 这样一来,所有东西都可以有一个测试集,而不必为每个环境维护一个测试集。

我们使用 Consul 来管理我们的服务,并使用 Ansible 进行部署,因此应该可以从那里或从 Jenkins 获取标签来填充此变量。

有谁知道我如何获得这个标签并将这个变量放入Robot Framework

使用variable files,您可以将测试逻辑与所需的测试数据分开。这是首选方式,而不是将环境数据存储在与测试逻辑相同的文件中。

可以使用 Python 或 Java class 或通过 (yaml) 的纯文本动态生成信息。然后可以通过命令行将这些文件添加到您的测试 运行:

robot --variablefile myvariables.py mytest.robot
robot --variablefile myvariables.yaml mytest.robot