我有一个Variables.yaml文件,如下所示:
userId: 12
URL: xyz.com/user=${userId}
上面的问题是,变量没有被替换,在运行时我的URL看起来像:
xyz.com/user=${userId}
答案 0 :(得分:2)
在YAML中,可以将另一个值引用为完整值,而不能将其与另一个变量或字符串组合在一起。在Resource and variable files的《机器人框架指南》一章中,有几个选项说明了其中哪个YAML variable files。
请务必注意,这些变量是全局级别变量。这意味着可以将它们导入一个文件,然后从另一个文件访问。这可以是测试用例文件,也可以是仅包含关键字的资源文件。
在下面的示例中,所有内容都在同一文件中,但可以轻松将其拆分为多个文件。通常通过command line argument添加变量文件,这些关键词与Resource Files中的测试用例分开。
variables.yaml
userId: 12
URL: xyz.com/user=${userId}
robot_script.robot
*** Settings ***
Library Collections
Variables variables.yaml
*** Test Cases ***
TC
${userId} Set Variable MyUserName
Log To Console \n ${URL}
${URL} Replace Variables ${URL}
Log To Console ${URL}
这将导致以下控制台输出
==============================================================================
TC
xyz.com/user=${userId}
xyz.com/user=MyUserName
| PASS |
------------------------------------------------------------------------------
您可以采用另一种方法将其从YAML移到Python变量文件。在《机器人框架指南》中,Implementing variable file as Python or Java class上有一章,其中包含一些有关如何执行此操作的良好而简单的代码示例。这可能会给您带来更大的灵活性,您可以尝试返回正确的变量值集。