从搭建到实战,看看这篇robotframework框架深度学习笔记

每天进步一点点,关注我们哦,每天分享测试技术文章

本文章出自【码同学软件测试】


Robot Framework 由Robot Framework Foundation支持。许多行业领先的公司在其软件开发中使用 该工具。

码同学公众号:自动化软件测试

码同学抖音号:小码哥聊软件测试

Robot Framework 是开放可扩展的。Robot Framework 几乎可以与任何其他工具集成,以创建强大而灵活的自动化解决方案。Robot Framework 可以免费使用,无需许可费用。

Robot Framework 具有简单的语法,使用人类可读的关键字。它的功能可以通过使用 Python、Java 或 许多其他编程语言实现的库进行扩展。Robot Framework 有一个丰富的生态系统,包括作为独立项目开发的库和工具

01

robotframework环境搭建

安装python3.6以上,并且确保环境变量配置正确

安装robotframework库

pip install robotframework

安装robotframework ride脚本图形界面编辑器

pip install robotframwork-ride


点击是,会在桌面上创建一个快捷图标 


02

内置关键字库

robotframwork安装之后会出现在python安装目录的Lib/site-packages目录下


其中的libraries目录下就是我们将来编写脚本时用到的关键字源码

这些关键字库是按照一定的分类进行的

Builtln

变量定义、循环控制、数据计算、进制转换、断言判断、日志等等

Collections

处理python列表和字典的相关操作

DateTime

处理日期和时间转换的相关操作

Dialogs

提供暂停执行和获取用户输入的方法

OperatingSystem

提供和操作系统相关的关键字

Process

操作进程相关的关键字

Remote

特殊库充当 Robot Framework 和其他地方的库之间的代理。实际的库可以在不同的机器上运行, 并且可以使用任何支持 XML-RPC 协议的编程语言来实现

Screenshot

提供用于截取桌面屏幕截图的关键字

String

用于生成、修改和验证字符串的库

Telnet

可以连接到 Telnet 服务器并在打开的连接上执行命令

XML

用于生成、修改和验证 XML 文件的库

03

ride基本说明

双击桌面ride图标即可打开ride界面

01

项目创建

点击File->New Project, 选择directory原因是,在directory的项目下可以创建测试套件,如果是tpye 为fifile,则只能创建测试用例,这不利于用例的管理


02

创建测试套件

测试套件是用来管理多个测试用例的集合

右键选择项目名称,New Suite, 选择fifile原因是,在fifile的测试套件下可以创建测试用例,如果是tpye 为directory,还得重新再继续建fifile的测试套件,才能创建测试用例,因为测试用例只能在fifile类型下创建


03

创建测试用例

右键选择测试套件,点击New Test Case


04

测试套件工作区说明

1、测试套件Edit区 分为4部分

设置区

设置区默认是隐藏的,点一下才会出现


Documentation:

文档,每一项都有。可以给当前的对象加入文档说明

Suite Setup:

指的是测试套件启动的时候就执行某个关键字。

(例:我在Suite Setup设置了 Sleep | 5sec,表示等待5秒,要注意关键字的参数要使用 | 分隔)

Suite Teardown:

指的是测试套件结束的时候就执行某个关键字

Test Setup:

指的就是案例启动的时候执行某个关键字

Test Teardown:

指的就是案例结束的时候执行某个关键字

Test Template:

测试模版,这是可以指定某个关键字为这个测试套件下所有TestCase的模 版,这样所有的TestCase就只需要设置这个关键字的传入参数即可

Test Timeout:

设置每一个测试案例的超时时间,只要超过这个时间就会失败,并停止案例 运行。这是防止某些情况导致案例一直卡住不动,也不停止也不失败

Force Tags:

在文件型Suite这里还可以继续给子元素增加Force Tags,但是他不能删除父元 素设置的tags

Default Tags:

默认标记,其实和Force Tags没啥区别的

引用区

主要是用来加载外部文件

Library:加载测试库,主要是[PYTHON目录]\Lib\site-packages里的测试库

Resource:加载资源,主要是你工程相关的资源文件

Variables:加载变量文件

参数区

主要是用来定义该套件的内部变量

Add Scalar:定义普通变量

Add List:定义列表型变量

Add Dict:定义字典

数据区

主要是在report和log里显示定义好的内容,格式和document一样

2、测试套件Text Edit区

测试套件测试用例文本信息

3、测试套件Run区

Execution Profifile:

选择运行方式,里面有pybot、jybot和custom script。默认pybot即可。

Start:

运行案例。若该测试套件下的测试用例前无勾选,则默认执行该测试套件下所有的用例。若测试用例勾选,则执行该测试陶见下勾选的用例。

Stop:

停止案例。

Report和Log:

报告和日志,要运行之后才能点击。他们的区别,报告更多是结果上的展示日志 更多是过程的记录,更多使用的还是日志。

Autosave:

自动保存,如果不勾选,在修改了案例之后如果没有保存的话,运行案例时会提示是否 保存。勾选则在运行时自动保存了。

Arguments:

pybot的参数(或者jybot等)。完整版的参数可以在doc命令行输入pybot.bat --help

Only Run Tests with these Tags:

只运行这些标记的测试案例。在case的setting里可以添加tag

Skip Tests with these Tags:

跳过这些标记的测试案例。在case的setting里可以添加tag

05

测试用例工作区说明

1、测试用例Edit区 主要分为2部分

设置区

Documentation:

文档,每一项都有。可以给当前的对象加入文档说明。

Setup:

指的就是案例启动的时候执行某个关键字。

Teardown:

指的就是案例结束的时候执行某个关键字。

Tags:

标记某个测试用例。在Run区中Only Run Tests with these Tags和Skip Tests with these Tags,会通过这个标志位来识别是否运行或跳过用例。

Timeout:

设置每一个测试案例的超时时间,只要超过这个时间就会失败,并停止案例运行。这是防止某些情况导致案例一直卡住不动,也不停止也不失败。

Template:

测试模版,这是可以指定某个关键字为这个测试套件下所有TestCase的模版,这样所有的TestCase就只需要设置这个关键字的传入参数即可

表格区

这是编写测试用例的地方

2、Text Edit和Run区和测试套件没有区别

04

robotframwork基础语法

01

日志中文乱码处理

找到自己python安装目录下的Lib\site-packages\robotide\contrib\testrunner\testrunnerplugin.py 打开上述文件,找到565行先复制,再注释,另起一行粘贴和修改


修改完成后重启ride

02

用例内部变量

1、普通变量

普通变量定义需要使用Set Variable关键字,第一个单元格指的是变量名称,最后一个单元格10, 指的是把10赋值给a这个变量

Log是日志关键字,输出a的值


运行一下


2、列表变量

列表变量定义需要使用Create List关键字

列表定义可以使用两种方式:

${xxx}

@{xxx}


3、字典变量

字典变量定义需要使用Create Dictionary

字典定义可以使用两种方式:

${xxx}

&{xxx}


03

集合公共变量

有一些是在同一个测试集合中都会用到的公共变量,那么就可以在集合中进行定义

添加一个普通变量

添加一个列表变量

添加一个字典变量

公共变量使用

集合的公共变量在他下面的每个测试用例中都可以使用


运行后结果:


04

判断

案例:给定一个成绩值,大于90分输出优秀、大于80是良好、大于70是一般、大于60是及格,其他是不及格

Run Keyword If的使用



免费领取码同学软件测试课程笔记+超多学习资料+完整视频+最新面试题,可以转发文章+ 私信「码同学666」获取资料哦

05   循环

案例1:计算100以内的数字和

FOR...IN RANGE xxx ... END结构

${i}相当于循环变量

Evaluate 表示将${sum}+${i}的计算结果赋值给${sum}


案例2:输出列表中的偶数

FOR ... IN xxx ... END 结构

${i}相当于循环变量

Run Keyword If 是判断当前循环变量是2的倍数,那么就输出


案例3:跳过当次循环,遍历列表,如果是5的倍数就跳过

Continue For Loop If表示满足条件就跳过本次循环


案例4:遍历列表,如果碰到5就终止循环

Exit For Loop If表示满足条件则终止循环


06

关键字库导入

需要使用一些扩展关键字时,需要先导入相对应的库,比如针对列表和字典操作的库是Collections

导入Collections

选择测试集合,注意导入后如果显式红色,说明导入不正确


使用Collections中的关键字

07

用户关键字

用户关键字是自定义的一种关键字,相当于写代码时自己封装一个函数

1、普通变量作为入参

案例:封装一个计算指定数字之内的所有数字和,比如100以内,1000以内等等

创建关键字

调用关键字

在某个测试集合中想要调用自定义的关键字,需要先导入

导入自定义关键字

导入之后显式绿色说明正确,显式红色说明导入的resource路径不对

调用关键字

在测试用例中调用自己写的关键字


2、列表变量作为入参

案例:封装一个返回给定列表中的偶数

创建关键字

调用关键字

3、字典变量作为入参

案例:将学员各个语言科目成绩定义成字典{'python':95,'java':58,'c':70},封装一个关键字将不及 格的分数都改成60

创建关键字

调用关键字

4、多变量入参

案例:封装一个计算三个数之和的关键字,第三个数默认值是10

创建关键字


调用关键字

对于有默认值的参数,在调用时可以传也可以不传



END

免费领取码同学软件测试课程笔记+超多学习资料+学习完整视频,可以关注我们公众号哦:自动化软件测试

本文著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

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

推荐阅读更多精彩内容