【问题标题】:Using Get Time in Robot Framework Test cases在 Robot Framework 测试用例中使用 Get Time
【发布时间】:2016-01-13 17:36:30
【问题描述】:

如何为 RF 中的所有测试用例使用特定时间。假设我必须在 UI(用户界面)的某些领域给出时间。

我必须将其作为当前时间加上所有测试用例的 15 分钟。如何做到这一点?

我在 Resources.txt 中声明了全局变量,并且正在将其导入到所有测试用例文件中

${hr}=          Get Time    hour    NOW + 15min
${min}=         Get Time     min    NOW + 15min

当我运行测试用例时,出现以下错误:

设置变量“${hr}”失败:无法再在变量表中创建具有列表值的标量变量。创建一个列表变量“@{hr}”并将其用作标量变量“${hr}”。

设置变量“${min}”失败:无法再在变量表中创建具有列表值的标量变量。创建一个列表变量“@{min}”并将其用作标量变量“${min}”。

但是当我在 Test1.txt 中使用相同的内容时,它们工作正常..

【问题讨论】:

    标签: robotframework


    【解决方案1】:

    如果您使用的代码在*** Variables *** 部分,则格式错误。在变量表中,您不能调用关键字。您正在做的是创建一个名为 ${hr} 的列表,其文字值为 ["Get Time", "hour", "NOW + 15min"]

    来自robot framework user's guide

    最常见的变量来源是测试用例中的变量表 文件和资源文件。变量表很方便,因为它们 允许在与测试的其余部分相同的位置创建变量 数据,并且所需的语法非常简单。他们的主要缺点 是值始终是字符串,它们不能被创建 动态的。

    您需要在关键字或测试用例中调用Get Time 关键字。由于您想在启动时执行此操作,因此您可以在套件设置中调用关键字。

    *** Keywords ***
    initialize timestamp variables
        ${hr}=     Get Time   hour   NOW + 15min
        ${min}=    Get Time   min    NOW + 15min
        set suite variable    ${hr}
        set suite variable    ${min}
    
    *** Settings ***
    Suite setup    initialize timestamp varaibles
    

    如果您在多个套件中执行此操作,则完全有可能并非所有套件都使用完全相同的值。另一种解决方案是设置一个全局变量,并且只设置一次。每个套件都可以检测它是否已设置,并且仅在尚未设置时才设置它。

    您也可以通过基于 python 的变量文件来执行此操作。

    注意:此解决方案仅设置当前套件的变量。如果您在套件初始化文件中执行此操作(例如:mysuite/__init__.robot),您将需要使用Set Global Variable 而不是设置套件变量。

    【讨论】:

    • 感谢您的建议...实际上当我们进行套件设置时,我们通常在 init.robot 文件中声明它们?如果是这样,在 init 文件中声明的变量不能直接在测试用例中使用..如何处理..我尝试了上述解决方案..创建了一个 init。机器人文件,如果我尝试直接使用变量,我会收到错误。请让我知道如何将变量从测试套件共享到较低的测试用例。谢谢..
    • @svsteja:如果你把它放在一个初始化文件中,你需要使用set global variable而不是set suite variable。从机器人 2.9 开始,您可以使用 set suite variable 和选项 children=true
    • 我正在使用旧版本的 RF 2.8.x 版本...因为 Java 中的 selenium2Library 与该版本兼容..在旧版本中是否有任何解决方法..
    • @svsteja:是的,就像我说的,使用set global variable
    猜你喜欢
    • 2016-05-05
    • 1970-01-01
    • 1970-01-01
    • 2020-07-12
    • 2017-08-08
    • 2022-08-20
    • 2014-02-27
    • 2014-06-18
    • 2019-09-03
    相关资源
    最近更新 更多