【问题标题】:Robot Framework: Populating parameters based off of a robot.properties file?机器人框架:根据 robots.properties 文件填充参数?
【发布时间】:2016-04-29 03:42:10
【问题描述】:

我正在尝试模拟一个“robot.properties”文件,以便在我的机器人框架的测试用例中使用。在我的 robots.properties 文件中,它包含以下内容,例如:

project.username=stackoverflow

在我的测试用例文件中,我曾多次尝试通过在设置中添加“导入”robot.properties 文件:资源 ../path/to/properties 等(请参阅下面的目录结构),但是当我尝试将 'project.username' 作为参数传递给测试,它将其作为文字字符串值 'project.username' 而不是值 'stack overflow' 传递。我是 Robot 的新手,我已经用 Java/C# 等其他语言实现了这一点,但我完全假设导入会阻止我访问我的值。任何帮助将不胜感激,不幸的是,这种驾驶测试方式并没有真正在网上找到很多参考。

目录结构:

Tests/Acceptance/MyTestCase.robot

测试/robot.properties

如果我尝试 Library ../robot.properties,我会得到: “不支持按文件名导入” 如果我尝试 Resource ../robot.properties 我得到: "不支持的文件格式 .properties"

【问题讨论】:

  • 为什么不使用机器人文件作为变量源?例如具有*** Variables ***\n ${project_username} stackoverflow 的文件properties.robot?可以使用Resource properties.robot 导入此类文件
  • 很好的回应@jim,虽然这种技术肯定是可行的,但我赞成后一种答案只是因为它更紧密地遵守属性'。'标准符号。再次,付出巨大的努力和快速的反应!

标签: robotframework properties-file


【解决方案1】:

机器人框架不支持“.properties”文件。

一种解决方案是使用variable file,它允许您在python 中定义变量。由于您想使用点表示法,一种方法是创建一个类并将您的变量定义为该类的属性。然后,变量文件可以将该类的实例作为变量,您可以使用extended variable syntax 访问变量。

与纯文本文件相比,使用变量文件的优点是您可以通过调用其他 python 函数来动态创建变量。作为一个简单的示例,您可以创建一个名为“now”的变量,其中包含当前日期,或者“host”,它是运行测试的机器的主机名。

例子:

properties.py

import platform
class Properties(object):
    username = "stackoverflow"
    password = "SuperSecret!"
    hostname = platform.uname()[1]

properties = Properties()

example.robot

*** Settings ***
Variables    properties.py
Suite Setup  log    running on ${properties.hostname}

*** Test Cases ***
Example
    should be equal    ${properties.username}    stackoverflow

【讨论】:

  • 正是我想要的。感谢您的快速回复,坚实的社区支持!
猜你喜欢
  • 2011-12-15
  • 2022-01-02
  • 2016-05-19
  • 2018-03-13
  • 2013-02-13
  • 1970-01-01
  • 2017-03-30
  • 2021-11-23
  • 2011-09-08
相关资源
最近更新 更多