美文网首页测试
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