美文网首页测试
RobotFramework之简要介绍及使用

RobotFramework之简要介绍及使用

作者: 羋学僧 | 来源:发表于2023-03-29 19:59 被阅读0次

    一、简要介绍

    Robotframework:是一个基于Python语言开发的,可扩展的,是关键字驱动模式的自动化测试框架,Robotframework最新的版本是2019年7月份发布,7月份之前只支持python2.7,7月之后支持3.X的版本

    首先简单说下【关键字驱动模式】和【数据驱动模式】的含义:

    关键字驱动模式:就是将项目中的一些逻辑封装成关键字(一个函数名),然后我们可以调用不同的关键字组合实现不同的业务逻辑,从而驱动测试用例执行
    例如:UI自动化中,我们每个用例步骤都可以写成一个方法,然后在robot中直接引用这个方法名即可

    数据驱动模式:就是实现参数化数据
    例如:在API自动化中,比如框架用的pytest/unittest,我们一般都会实现参数化,将你的参数统一写在外部文件(excel、yaml、txt、csv…)中,然后通过读取外部文件进行参数化请求,这样的话之后我们只需要维护更改你的外部文件即可,常用的包:@ddt

    Robotframework特点:

    1)编辑用例简单,可以以robot,txt,tsv或者html的格式编写用例

    2)自动生成html格式的测试报告和日志(HtmlTestRunner.py,allure)

    3)不仅拥有自带的类库:
    Buitini(测试库)
    Collections(集合库)
    Date Time(时间库)
    ScreenShot(截屏库)
    也很多其他实用的类扩展库:
    SeleniumLibrary(web自动化测试)
    RequestsLibrary(接口自动化测试)
    AppiumLibrary(APP自动化测试)

    4)可以根据项目的需要自定义一些关键字

    5)可以使用GUI的方式运行,可以和SVN或者GIT及Jenkins持续集成

    二、RobotFramework下载

    #robotframework
    pip install robotframework==4.1.3
    
    #ride,可以进行GUI操作
    pip install robotframework-ride==2.0b1
    
    # 所有的扩展库下载后会统一放在python\Lib\site-packages文件夹下
    # web自动化第三方库,进行UI自动化操作时下载,
    pip install robotframework-selenium2library==3.0.0
    pip install robotframework-seleniumlibrary==4.3.0
    # 接口自动化测试库
    pip install robotframework-requests 
    # appui自动化第三方库
    pip install robotframework-appiumlibrary
    

    三、Ride基本使用

    1、运行ride.py

    2、常用快捷键

    # 1、查询关键字
    F5
    
    # 2、关键字自动补全
    ctrl+shift+空格
    

    四、简单robot用例实战

    1、创建项目(New Project)

    File --> New Project,Type选择Directory,Format选择Robot

    2、创建模块(New Directory)

    鼠标右键点击项目 --> 选择New Directory

    3、创建测试套件(New Suite)

    鼠标右键点击模块 --> 选择New Suite

    4、创建测试用例(New Test Case)

    鼠标右键点击Suite --> 选择New Test Case

    5、创建资源文件(New Resource)

    资源文件是【自定义关键字】的载体

    注意:只能在文件夹下面进行创建,并且是txt格式的


    6、创建业务关键字(New User Keyword)

    在资源文件下新建业务关键字

    7、常用关键字用例编写

    以下这些都是robot常用关键字,但其实我们自己的项目中进行UI/App自动化时,我们一般会使用自定义关键字
    testcase003
        Comment    1、打印
        Log    你好
        Comment    2、设置变量
        ${a}    Set Variable    100
        Log    ${a}
        Comment    3、获得系统时间
        ${time}    Get Time
        Comment    4、睡眠时间,强制等待
        Comment    sleep    3
        Comment    5、字符串的拼接
        ${str}    Catenate    oracle    mysql    sqlserver
        Log    ${str}
        Comment    6、创建列表
        ${list1}    Create List    11    22    33
        Log    ${list1}
        @{list2}    Create List    44    55    66
        LogMany    @{list2}
        Comment    7、创建字典
        ${dic}    Create Dictionary    name=mikasa    age=17
        Log    ${dic}
        ${keys}    Get Dictionary Keys    ${dic}
        Log    ${keys}
        ${values}    Get Dictionary Values    ${dic}
        Log    ${values}
        ${key_value}    Get From Dictionary    ${dic}    name
        Log    ${key_value}
        Comment    8、执行python里面的方法
        ${random_num}    Evaluate    random.randint(1,101)    modules=random
        Log    ${random_num}
        ${time}    Evaluate    time.time()    modules=time
        Log    ${time}
        Comment    9、用自定义的方法
        Import Library    D:/Users/**/PycharmProjects/PythonProject0329/base.py
        ${a}    Set Variable    mi
        ${b}    Set Variable    hongguang
        ${return_result}    join_two_strings    ${a}    ${b}
        Log    ${return_result}
        Comment    10、流程控制IF
        ${score}    Set Variable    62
        Run Keyword If    ${score}<60    Log    不及格
        ...    ELSE IF    60<=${score}<=80    Log    良好
        ...    ELSE    Log    优秀
        Comment    11、流程控制For
        FOR    ${a}    IN    MYSQL    ORACLE    JAVA
            Log    ${a}
        END
        Comment    12、For遍历数组
        @{list3}    Create List    MYSQL    ORACLE    JAVA
        FOR    ${a}    IN    @{list3}
            Log    ${a}
        END
        Comment    13、For遍历数字范围
        FOR    ${a}    IN RANGE    1    10
            Run Keyword If    ${a}==5    Exit For Loop
            Log    ${a}
        END
    
    

    base.py
    实现字符串拼接

    def join_two_strings(arg1, arg2):
        return arg1 + "-" + arg2
    
    robot报告显示:

    相关文章

      网友评论

        本文标题:RobotFramework之简要介绍及使用

        本文链接:https://www.haomeiwen.com/subject/cnofddtx.html