【问题标题】:Robot Framework - Running on diffrent devices fileRobot Framework - 在不同的设备文件上运行
【发布时间】:2018-09-14 21:34:05
【问题描述】:

这是对我之前的问题的跟进 - [RobotFramework - Run Tests on different environments

我已经为每个环境创建了一个文件,这一切都在工作,现在我只是使用我的本地平板电脑进行测试,我需要指向 10 个不同设置的不同设备,有没有办法存储在参数文件中动态配置?就像使用机器人获取配置将其存储在变量中并在参数文件中使用该值一样?

类似

//HERE sample code the get the androidVersion  =  ${Get_Android_Version}

.args 文件

--variable REMOTE_URL_ANDROID:http://127.0.0.1:4723/wd/hub
--variable PLATFORM_NAME_ANDROID:Android
--variable PLATFORM_VERSION_ANDROID:${Get_Android_Version}
--variable DEVICE_NAME_ANDROID:Samsung
--variable AUTOMATION_Name_ANDROID:appium
--variable PACKAGE_NAME_ANDROID:DiffrentPackage
--variable ACTIVITY_NAME_ANDROID:PackageName

附言。我知道它不是真正的机器人代码,它只是我的意思的一个示例。

【问题讨论】:

    标签: robotframework environment


    【解决方案1】:

    参数文件中不能有任何编程逻辑。您可能需要考虑使用variable file,而不是(或除此之外)为此使用参数文件。变量文件是 python 代码,所以你可以做任何你需要的逻辑来设置你的变量。

    例如,您可以从命令行传递环境名称,并在测试中使用它来导入该环境的变量。

    示例

    测试机器人:

    *** Settings ***
    Variables  ${ENVIRONMENT}_vars.py
    ...
    

    smoke_vars.py:

    def get_platform_version(platform):
        <your logic here>
        return $version
    
    PLATFORM_NAME = "Android"
    PLATFORM_VERSION = get_platform_version(PLATFORM_NAME)
    

    命令行:

    robot --variable environment:smoke test.robot
    

    您也可以在命令行而不是在测试文件中指定变量文件。例如,您可以删除 Variables 设置,然后在命令行上执行此操作:

    robot --variablefile smoke_vars.py ...
    

    所有这些都在robot framework user guide中得到了非常详尽的记录

    【讨论】:

    • 感谢您的回答,我有点困惑,robot --variable environment:smoke test.robot 我可以像这样指定不同的环境 robot --variable environment:smoke --argumentfile QA1.args test.robot 吗?
    • @Jhon:是的,当然。如果您使用的是参数文件,则不需要还包含--variable - 您可以在参数文件中执行此操作。换句话说,如果你设置正确,你只需要--variable--argumentfile,而不是两者都需要。
    猜你喜欢
    • 2021-10-18
    • 2015-01-31
    • 1970-01-01
    • 1970-01-01
    • 2019-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-23
    相关资源
    最近更新 更多