Robot Framework: Populating parameters based off of a robot.properties file?
我正在尝试模拟一个 \\'robot.properties\\' 文件,以便在我的机器人框架的测试用例中使用。在我的 robots.properties 文件中,它包含例如:
1 | project.username=stackoverflow |
在我的测试用例文件中,我尝试了几次通过在设置中添加来"导入"robot.properties 文件:资源 ../path/to/properties 等(参见下面的目录结构),但是当我尝试将 \\'project.username\\' 作为参数传递给测试,它将其作为文字字符串值 \\'project.username\\' 而不是值 \\'stack overflow\\' 传递。我是 Robot 的新手,我已经用 Java/C# 等其他语言实现了这一点,但我完全假设导入会阻止我访问我的值。任何帮助将不胜感激,不幸的是,这种驾驶测试方式并没有真正在网上找到很多参考。
目录结构:
测试/验收/MyTestCase.robot
测试/robot.properties
如果我尝试 Library ../robot.properties,我会得到:
"不支持按文件名导入"
如果我尝试 Resource ../robot.properties 我得到:
"不支持的文件格式 .properties"
机器人框架不支持".properties"文件。
一种解决方案是使用变量文件,它可以让您在 python 中定义变量。由于您想使用点表示法,一种方法是创建一个类并将您的变量定义为该类的属性。然后,变量文件可以将该类的实例作为变量,您可以使用扩展变量语法来访问变量。
与纯文本文件相比,使用变量文件的优点是您可以通过调用其他 python 函数来动态创建变量。作为一个简单的示例,您可以创建一个名为"now"的变量,其中包含当前日期,或者"host",它是运行测试的机器的主机名。
示例:
属性.py
1 2 3 4 5 6 7 | import platform class Properties(object): username ="stackoverflow" password ="SuperSecret!" hostname = platform.uname()[1] properties = Properties() |
例子.机器人
1 2 3 4 5 6 7 | *** Settings *** Variables properties.py Suite Setup log running on ${properties.hostname} *** Test Cases *** Example should be equal ${properties.username} stackoverflow |