RobotFramework之简要介绍及使用

一、简要介绍

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报告显示:
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容