【发布时间】:2020-04-21 15:47:28
【问题描述】:
我需要在 testSuite#1 中设置一个变量。在 testSuite#2 中使用上述变量。
我们是否有任何关键字可以做到这一点?可以在命令行导出吗?
【问题讨论】:
-
你可以把它从
testSuite#1写入一个文件,然后读入testSuite#2。
标签: python robotframework
我需要在 testSuite#1 中设置一个变量。在 testSuite#2 中使用上述变量。
我们是否有任何关键字可以做到这一点?可以在命令行导出吗?
【问题讨论】:
testSuite#1写入一个文件,然后读入testSuite#2。
标签: python robotframework
使用 BuiltIn 的 Set Global Variable。应尽可能避免这种情况,但有时是必要的。
Set Global Variable ${MYPROJ_ADMIN_PASSWORD} supersecret123
【讨论】:
这不是一个好主意,因为最终会导致两个套件之间存在依赖关系,并且依赖于这些套件的运行顺序。
话虽如此,有几种方法可以实现这一点。
第一种方法是使用内置库中的Set Global Variable 关键字。
| | Set global variable | ${foobar} | this is foobar
第二种方法是使用OperatingSystem 库设置一个可以在两个套件之间共享的environment variable。
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
注意使用% 而不是$ 来访问变量。您也可以使用Get Environment Variable 来获取一个或多个变量的值。
【讨论】:
检查下面的代码示例-
*** 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
【讨论】: