提示:阅读本章之前,请先阅读目录
Robotframework 是一个基于python语言开发的,可扩展的,以关键字驱动模式的自动化测试框架,支持Selenium,Requests,Appium,不单单只是web自动化测试,也可以做接口测试,app的测试,对于不会编程,以及编程能力弱的测试人员,是一个非常好的利器。
什么是关键字驱动?
关键字驱动表示把项目中一个个的业务逻辑封装成一个一个的关键字,然后调用不同的关键字组成不同的业务,比如:web自动化中,把打开浏览器封装为open browser的关键字函数,然后,我们在执行打开浏览器这个业务逻辑的时候,只需要调用open browser这个关键字,就可以实现这个业务逻辑,而不需要重新去写代码脚本来实现,这就是关键字驱动。
什么是数据驱动?
数据驱动就是把测试数据放到excel或者yaml文件中,然后通过编写测试用例到数据文件中,来驱动框架执行测试用例。简单来说,就是,我们先搭建好一个自动化测试框架,来读取我们的数据文件(excel,yaml),然后来识别测试用例的数据,然后进行执行,并输出结果和测试报告,从而在无需写脚本代码的情况下,通过新增测试用例或修改测试用例,就能实现新的功能的测试。
第一步,确保python版本是3.7及以上,并且配置好环境变量
第二步,安装robotframework
pip install robotframework==3.0.0
第三步,安装RIDE开发工具
pip install robotframework-ride
如果下载比较慢,可以百度一下,换成清华源
最后可以使用 pip list,查看有无安装成功
如果你不小心安装了最新版的robotframework,不是3.0.0的,就会出现,部分关键字无法识别
那么,只需要重新安装3.0.0的版本,然后seleniumlibrary也安装3.0.0的版本即可
pip list 查看所有已安装的关键字类库及对应版本信息
pip uninstall roborframework
pip install robotframework==3.0.0 重启ride生效
pip uninstall robotframework-seleniumlibrary
pip install robotframework-seleniumlibrary==3.0.0 重启ride生效
第一步,安装selenium
pip install selenium
第二步,安装selenium-library
pip install robotframework-seleniumlibrary==3.0.0
第三步,下载浏览器驱动到python根目录
浏览器驱动必须和浏览器版本一致,或者是相近的版本即可
如果你是谷歌浏览器,那么就去下载谷歌浏览器的驱动,然后放到python根目录,否则,selenium是无法操控浏览器进行web自动化测试,如果你不清楚这部分内容,自行百度即可。
第一步,如果你在安装robotframework的过程中,有自动创建了桌面快捷的话,直接打开即可
第二步,如果发现桌面没有快捷方式,那么,就自己搞一个
编辑该文件:
C:\Program Files\Python36\Lib\site-packages\robotide\contrib\testrunner\testrunnerplugin.py
搜索:
textctrl.AppendTextRaw(bytes(string, encoding[‘SYSTEM’]))
在 565 行
修改为
textctrl.AppendTextRaw(bytes(string, encoding[‘OUTPUT’]))
然后保存之后,重启RIDE即可

1. 返回
2. 前进
3. 打开测试套件
4. 打开文件夹
5. 保存当前选中项
6. 保存全部
7. 搜索keyword 关键字
8. 搜索测试用例
9. 开始运行
10.调试运行
11. 停止运行












所有的关键字,可以查看官网
https://robotframework.org/SeleniumLibrary/SeleniumLibrary.html
打开浏览器

设置窗口最大化

这个后面的灰色色块,表示不需要再填写参数了
输入框

点击元素

暂停几秒

点击弹出框的确认按钮

设置浏览器大小

进入frame 或者 iframe 框架

返回frame框架

Select From List By Value 根据value值选中
Select From List By Label 根据文本选中
Select From List By Index 根据下标选中

获取多个元素

打印内容

浏览器的返回操作

访问哪个网址

刷新页面

获得文本

获取元素属性的值

清除输入框内容

获取当前网页标题

获取当前网址

关闭浏览器

拼接,语法,必须大写,=后面写拼接的字符串,不写则表示不使用拼接字符

SEPARATOR=,最后返回,xiaofeng
SEPARATOR=&,最后返回,xiao&feng
获取时间,格式:2022-07-27 11:34:50

设置变量

创建列表

以 ${list1} 来接收,则是普通列表
20220727 11:36:56.920 : INFO : ${list1} = ['a', 'b', 'c', 'd', 'e']
20220727 11:36:56.921 : INFO : ['a', 'b', 'c', 'd', 'e']
以 @{list2} 来接收,则是特殊列表,是给循环流程使用的
20220727 11:36:56.922 : INFO : @{list2} = [ a | b | c ]
20220727 11:36:56.923 : INFO : a
20220727 11:36:56.923 : INFO : b
20220727 11:36:56.924 : INFO : c
创建字典

20220727 11:36:56.925 : INFO : ${dict1} = {'name': 'xiaofeng', 'age': '18'}
20220727 11:36:56.926 : INFO : {'name': 'xiaofeng', 'age': '18'}
获取字典的所有key/值

20220727 11:36:56.927 : INFO : ${dict_keys} = ['age', 'name']
20220727 11:36:56.928 : INFO : ${dict_values} = ['18', 'xiaofeng']
获取字典某个参数

20220727 11:36:56.930 : INFO : ${name_value} = xiaofeng
调用python的方法

20220727 11:36:56.945 : INFO : ${random_num} = 10
20220727 11:36:56.947 : INFO : 10
IF 判断语句

for循环
用法一
for开头,end结尾
中间写任何的关键字都可以
for 当前值 in 列表数组

用法二
@{}的列表才能用于for循环
如果是${},for循环是无法识别的

用法三

编程中的停止循环是break,在这里是Exit For Loop
这里,结合了,python中的range()函数,来指定循环多少次
我们对RF进行二次封装,使用分层的设计模式,让我们的RF能够在企业落地,开展实战,如果只是单纯的线性脚本编写,那么维护起来是非常困难的,就比如,项目路径,如果你每个地方,都用到项目路径,如果,这个时候项目路径发生了变化,有100个地方用到了,是不是就要去修改100个地方?显然这是一个效率非常低的办法。
所以,就衍生出来了,通过二次封装,让我们的RF,能够通过数据去驱动。
公共部分,我们可以封装,所有业务逻辑都会用到的一些关键字,数据等
这是RF分层结构

我们通过 New Resource,新建资源

Resource,一定是选择txt

公共数据,定义变量

公共元素,存放一些公共的操作,比如,打开浏览器,关闭浏览器等

导入公共数据之后,我们就可以调用,通过${变量名}的方式

对于,一些关键字,需要传递一些参数进来,就可以这样设置

这样,我们封装了一些公共元素操作关键字

我们分为,项目层,模块层
一个项目下面有很多个模块,一个模块下面可以有N个测试用例,然后每个模块都有独有的业务逻辑,页面元素
我们来看看元素资源
比如,封装输入用户名
这里的关键字,叫输入用户名,那么,我们就可以在业务逻辑中,直接使用这个关键字
把输入用户名这个业务步骤封装好,用户名可以单独作为一个参数传递进来

我们再看一个点击登录按钮

我们再来看看,业务层

我们把用户登录这个业务逻辑,直接封装成一个业务关键字

最后,我们来看看测试用例
先导入业务资源

我们在测试用例,直接调用业务关键字,就可以实现测试

那么,数据驱动怎么做呢,我需要测试,不同的账号密码,那么只需要新增一行,填入不同的数据,就可以实现不同数据的测试,这个就是用数据来驱动测试

我们开始运行

然后查看测试报告


测试用例

具体执行步骤

我们需要新建一个 pybot.bat ,用来执行命令
在 C:\Program Files\Python36\Scripts,下面新建一个 pybot.bat,然后写入代码,保存即可
@echo off
python -m robot.run %*
这样,我们就可以通过命令行调用RF了
pybot -d 测试报告生成路径 项目路径
C:\Users\THINK>pybot -d D:\robotframework\robot-first D:\robotframework\robot-first

然后,我们就可以在测试报告路径,看到生成了几个文件

log.html 运行日志
output.xml 测试报告xml
report.html 测试报告












提示:将会持续优化更新
20220727,安装,搭建web自动测试环境,如何打开RIDE,解决中文乱码,界面讲解,快捷技巧,关键字,RF分层设计模式,命令行执行,RObotFramework+Jenkins