关于robotframework:Robot Framework:根据robot.properties 文件填充参数?

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