如何使 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
我正在开发一些 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