如何设置变量以在不同的测试套件中使用?
我需要在测试套件#1中设置一个变量,然后在测试套件#2中使用这个变量。
我们有没有什么关键词可以做到这一点?可以在命令行中导出这个变量吗?
4 个回答
0
如果你打算做一个大项目,并且需要管理很多不同版本的变量或参数,我们可以通过以下方式来解决这个问题:
0
请查看下面的代码示例-
*** Settings ***
Library BuiltIn
*** Test Cases ***
TC1
.....
${test}= ${temp}
Set Global Variable ${test}
TC2
Log to Console \n Global variable value is ${test}
参考链接:https://robotframework.org/robotframework/latest/libraries/BuiltIn.html
3
这样做其实不是个好主意,因为你会让两个测试套件之间产生依赖关系,还得依赖于它们运行的顺序。
不过,还是有几种方法可以实现这个目标。
使用全局变量
第一种方法是使用内置库中的 设置全局变量 这个关键词。
| | Set global variable | ${foobar} | this is foobar
设置环境变量
第二种方法是设置一个 环境变量,这样可以在两个测试套件之间共享,使用 操作系统 库来实现。
suite1.robot
*** Settings ***
| Library | Operating System
*** Test Case ***
| Save a variable that other suites can see
| | Set environment variable | foobar | this is foobar
suite2.robot
*** Settings ***
| Library | OperatingSystem
*** Test Cases ***
| Use a variable from another suite
| | Should be equal | %{foobar} | this is foobar
注意这里用的是 %
来访问变量,而不是 $
。你也可以使用 获取环境变量 来获取一个或多个变量的值。
3
使用内置的 设置全局变量。虽然尽量避免使用这个功能,但在某些情况下是必须的。
Set Global Variable ${MYPROJ_ADMIN_PASSWORD} supersecret123