如何在Robot Framework中传递命令行参数(测试数据参数)

8
我希望能够使用多个测试数据(针对不同的国家)来运行我的测试用例。在Robot Framework中是否可以实现此功能?我一直在使用RIDE IDE进行开发。
以下是示例代码:
*** Settings ***
Suite Setup    Login to Application 
Suite TearDown    Logout and Close The Browser
Resource     import all required resource files 

***Test Cases ***
Sample Test Case To Create Data for Multiple countries 
     Select Country      USA       #here am hard coding the country value, instead I want to pass it in run time 
     Enter all required data 
     Click Submit

    #sample resource file that has the keyword for selecting Country Drop down and fill other details
    *** Keywords ***
    Select Country
    [Arguments]       ${value} 
    Select From List By Label    ${locator}    ${value}
    Input Text      locator    text value 

我试图在测试用例中传递参数,但是它显示出错误。在添加参数到测试用例级别时,在RIDE IDE中重置更改即可过sanity check。

我正在使用Python 2.7.14和RIDE 2.0a1。


你的意思是循环数据吗? - Sidara KEO
不,我想为每个国家单独运行测试用例,而不是循环运行,并且也不想在每次运行测试用例之前硬编码和更改国家值。 - Sailesh Botcha
4个回答

22
在Robot Framework用户指南中,有一个完整的章节介绍了Robot Framework的配置执行。在这个章节中,有一节关于通过命令行传递变量的内容。
例如:
robot --variable OS:Linux --variable IP:10.0.0.42 my_test_suite_file.robot

然后您可以在脚本的任何位置使用变量${OS}${IP},因为它们是全局变量。


1
是的,我已经阅读了这个问题,但是当我尝试在测试用例中传递参数时,它会抛出错误并且无法保存更改。所以我的问题是,我们不能直接在测试用例中使用参数吗?我能够在关键字中保留参数,但不能在测试用例中。 - Sailesh Botcha

7

添加一个变量,表示目标国家,在case语句中使用它,并在运行开始时设置其值。以下是您代码的相关部分:

# put this just after the end of the Settings section
*** Variables ***
${country}    USA

*** Test Cases ***
Sample Test Case To Create Data for Multiple countries 
    Select Country      ${country}
    # the rest of your code

如果您按照原样运行,它将使用"USA"作为值;如果您想要覆盖,可以在CLI上传递其他值:

 robot --variable country:Mexico your_file.robot

我在使用RIDE IDE时,在测试用例文件中输入变量时,它会弹出一个错误提示框:“错误:健全性检查失败。重置更改”,我无法在测试用例文件中添加变量和参数。 - Sailesh Botcha
抱歉,我没有使用RIDE的经验 ¯_(ツ)_/¯; 你可能遇到了它的一个bug - 尽管我只是猜测。尝试通过简单文本编辑器编辑文件的方法,看看是否可以解决问题。 - Todor Minakov
我有两个要求需要在Jenkins中运行并且在本地运行成功才能开始在Jenkins中运行。我正在使用RIDE IDE来在本地编写和运行脚本。当我尝试在RIDE IDE的参数字段中传递国家变量时,它会抛出错误。请问如何将此变量作为参数传递? - Sailesh Botcha
如何在Robot框架中传递命令行参数(测试数据参数)? - 就是这样;为什么RIDE IDE在您的环境中会抛出错误?- 很抱歉,我无法对此发表评论。 - Todor Minakov

1
如果您正在使用pybot命令,请使用以下语法之一:
pybot --variable Variable:Value ScriptName.txt

或者

pybot -v Variable:Value ScriptName.txt

多变量

pybot -v Variable1:Value -v Variable2:Value ScriptName.txt

您可以直接在脚本中访问命令行变量值,无需声明和重新赋值。

例如:

pybot -v userId:admin -v password:123admin123 testLoginScript.txt

0

欢迎来到 Stack Overflow。请阅读 如何回答。仅仅贴上链接而没有解释很少有帮助。 - Procrastinator

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接