基于python的robotframework+eclipse操作UI自动化基础阶段一

 

             hello,今天和大家分享下robotfrmework来进行ui自动化的操作,个人在使用pytest执行ui自动化时,觉得从迭代效率上来说还是有点慢的,再加上有些同学本身的python基础就比较薄弱,所以想和大家一起聊下robot这个东西

废话不多说,直接上干货

一:RF介绍

          我们在写RF的时候,主要的组成部分有两块,一个是用例集(test suite),一个是测试用例(test case)

          1:设置区

1.1:Document->添加用例说明
1.2:Suite Setup->执行此测试套件的前置操作,如初始化数据等。
1.3:Suite TearDown->执行此测试套件结束后的操作,如恢复数据等
1.4:Setup->执行用例的前置操作
1.5:Test TearDown->执行用例结束后的操作
1.6:Force Tags->用例标签,suite中的标签会给该测试套件下的所有Test Case增加Force Tags
1.7:Timeout->设置每一个测试案例的超时时间,只要超过这个时间就会失败,并停止案例运行。防止某些情况导致案例一直卡住不动,也不停止也不失败
1.8:Template->测试模板,可以指定某个关键字为这个测试套件下所有TestCase模板,这样所有的TestCase就只需要设置这个关键字的传入参数即可。(TestCase中使用)
1.9:Arguments->传入参数(New User Keyword使用)
2.0:Return Value->返回值(New User Keyword使用)

           2:RF变量数据类型

2.1:变量
    是计算机语言中能存储计算结果或能表示值抽象概念,变量可以通过变量名访问
    赋值:${X1}=set variable 123
    运算:${X3}=evaluate ${X1}+${X2}
    应用:
        获取网页的文本,然后断言

2.2:数组(列表)
    是有序的元素序列,用于区分数组的各个元素的数字编号称为下标。
    @{list}=	create list 1 2
    ${list[0]}
    应用
        调用接口传参数的时候,可以用数组

2.3:字典
    数据字典:可以根据键得到值;也可以更新键的值
    &{map}=create dictionary aa=AA bb=BB
    ${map['aa']}
    应用
        json格式解析之后就是字典

这里需要注意的是各变量的符号,列表使用@,字典使用&,变量使用$,其次需要注意的是三者无论哪个,在输出(log to console)时,都要使用$统一进行输出

直接上实例:

***setting***
Documentation    两个实例相加


*** Keywords ***
testkey01
    [Documentation]        实现两个相加
    [Arguments]            ${x}        ${y}
    ${a}                    Evaluate    ${x}+${y}
    [Return]                ${a}

testkey02
    [Documentation]        实现列表前两个数相加
    [Arguments]            @{list}
    ${res}                Evaluate        ${list[0]}+${list[1]}
    [Return]                ${res}

testkey03
    [Documentation]        实现字典前两个数相加
    [Arguments]            &{map}
    ${m}        Evaluate        ${map['x']}+${map['y']}
    [Return]        &{map}
    
*** Test Cases ***
testcase01
    ${a}        testkey01    10    10
    Log To Console    ${a}

testcase02
    @{list_value}        Create List        1    2    3    4
    ${a}        testkey02            @{list_value}
    Log To Console    列表前两数相加的结果:${a} 

testcase03
    &{map_value}        Create Dictionary    x=10    y=20
    ${m}        testkey03    &{map_value}
    Log To Console    字典前两个的值:${m}  

以上三个测试用例的输出结果为:
    1-->20
    2-->3
    3-->30 

上面实例中主要了解的是一下关键字

1:Create List,代表的符号是@

2:Create Dictionary,代表的符号是&

3:Arguments类似我们在写python是,定义方法是传入的形参,在调用方法时都会传入实参

           3:分支和运算

*** Settings ***



*** Test Cases ***
testcase01
    ${x}        Set Variable    1
    ${y}        Set Variable    2
    Run Keyword If        ${x}<${y}        Log To Console    值最大的是:${y}
    ...                ELSE            Log To Console        值最大的是:${x}

testcase02
    [Documentation]    这是利用for。。。in来实现循环
    ${s}        Set Variable    0
    @{list}    Create List        1    2    3    4
    FOR        ${i}    IN    @{list}
    ${s}=    Evaluate    ${s}+${i}
    Run Keyword If    ${i}>3    Exit For Loop
    END
    Log To Console    循环后的结果为:${s}

testcase03
    @{list1}    Create List        1    2    3    4
    Append To List        ${list1}    5
    Log To Console        添加元素后的列表为:${list1}

testcase04
    @{list2}    Create List        1    2    3
    #通过下标进行删除
    Remove From List    ${list2}    2
    Log To Console        通过下标删除元素后的列表:${list2}
    #直接删除列表中的值,不通过下标
    Remove Value From List    ${list2}    2
    Log To Console        直接删除列表值后的列表:${list2}

testcase05
    [Documentation]    这是利用for。。。in range来实现循环
    ${res}    Set Variable    10
    FOR    ${i}    IN RANGE    ${res}
        Continue For Loop If    ${i}>9
        Log To Console    ${i}    
    END

以上四个测试用例的输出结果为:
1-->2
2-->10
3-->[1,2,3,4,5]
4-->通过下标删除元素后的列表:[1,2]
    直接删除列表值后的列表:[1]
    

注意:最新版本RF用【 FOR ... END 】形式,代替了旧版本【:FOR ...】 形式

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值