我有一个 Variables.yaml 文件,如下所示:
userId: 12
URL: xyz.com/user=${userId}
上面的问题是,变量没有被替换,在运行时我的 URL 如下所示:
xyz.com/user=${userId}
在 YAML 中,可以引用另一个值,但只能作为完整值,而不是将其与另一个变量或字符串组合。在机器人框架指南章节中资源和变量文件 http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#variable-files几个选项的解释YAML 变量文件 http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#variable-file-as-yaml是其中之一。
值得注意的是,这些变量是全局级别变量。这意味着它们可以导入到一个文件中,然后从另一个文件中访问。这可以是测试用例文件或仅包含关键字的资源文件。
在下面的示例中,所有内容都在同一个文件中,但可以轻松地将其拆分为多个文件。通常通过命令行参数 http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#variable-file-as-yaml,关键字与其测试用例分开资源文件 http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#resource-files.
变量.yaml
userId: 12
URL: xyz.com/user=${userId}
机器人脚本.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 变量文件。在机器人框架指南中有一个章节是关于将变量文件实现为 Python 或 Java 类 http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#implementing-variable-file-as-python-or-java-class其中包含几个关于如何执行此操作的良好且简单的代码示例。这可能会给您带来更大的灵活性,让您能够返回正确的变量值集。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)