2022软件测试技能 Robotframework + SeleniumLibrary + Jenkins web关键字驱动自动化实战教程

系列文章目录

提示:阅读本章之前,请先阅读目录



前言

Robotframework 是一个基于python语言开发的,可扩展的,以关键字驱动模式的自动化测试框架,支持Selenium,Requests,Appium,不单单只是web自动化测试,也可以做接口测试,app的测试,对于不会编程,以及编程能力弱的测试人员,是一个非常好的利器。

什么是关键字驱动?
关键字驱动表示把项目中一个个的业务逻辑封装成一个一个的关键字,然后调用不同的关键字组成不同的业务,比如:web自动化中,把打开浏览器封装为open browser的关键字函数,然后,我们在执行打开浏览器这个业务逻辑的时候,只需要调用open browser这个关键字,就可以实现这个业务逻辑,而不需要重新去写代码脚本来实现,这就是关键字驱动。

什么是数据驱动?
数据驱动就是把测试数据放到excel或者yaml文件中,然后通过编写测试用例到数据文件中,来驱动框架执行测试用例。简单来说,就是,我们先搭建好一个自动化测试框架,来读取我们的数据文件(excel,yaml),然后来识别测试用例的数据,然后进行执行,并输出结果和测试报告,从而在无需写脚本代码的情况下,通过新增测试用例或修改测试用例,就能实现新的功能的测试。


一、安装

1. 正常安装

第一步,确保python版本是3.7及以上,并且配置好环境变量

第二步,安装robotframework
pip install robotframework==3.0.0

第三步,安装RIDE开发工具
pip install robotframework-ride

如果下载比较慢,可以百度一下,换成清华源

最后可以使用 pip list,查看有无安装成功

2. 异常处理

如果你不小心安装了最新版的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生效

二、搭建web自动化测试环境

第一步,安装selenium
pip install selenium

第二步,安装selenium-library
pip install robotframework-seleniumlibrary==3.0.0

第三步,下载浏览器驱动到python根目录
浏览器驱动必须和浏览器版本一致,或者是相近的版本即可
如果你是谷歌浏览器,那么就去下载谷歌浏览器的驱动,然后放到python根目录,否则,selenium是无法操控浏览器进行web自动化测试,如果你不清楚这部分内容,自行百度即可。

三、如何打开RIDE

第一步,如果你在安装robotframework的过程中,有自动创建了桌面快捷的话,直接打开即可

第二步,如果发现桌面没有快捷方式,那么,就自己搞一个

  1. 找到 ride.py,路径:C:\Program Files\Python36\Scripts,如果没有找到,说明没有安装成功,重新安装一遍即可
  2. 然后发送到桌面快捷方式
  3. 快捷方式的图标,默认可能很难看,那么,我们就可以设置图标
  4. 鼠标右键快捷方式,然后属性,更改图标
  5. 路径选择:C:\Program Files\Python36\Lib\site-packages\robotide\widgets\robot.ico
  6. 然后,就可以直接使用了

四、解决中文乱码

编辑该文件:

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. 停止运行 

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

六、快捷技巧

1. 查找关键字 F5

在这里插入图片描述

在这里插入图片描述

2. 运行 F8

3. 关键字补全提示 Shift + Ctrl + 空格

在这里插入图片描述

4. 备注 Ctrl + 3,取消备注 Ctrl + 4

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

5. 删除单行 Ctrl + D

在这里插入图片描述

6. 插入 Ctrl + i

在这里插入图片描述

7. 单行操作,鼠标右键

在这里插入图片描述

七、关键字

所有的关键字,可以查看官网

https://robotframework.org/SeleniumLibrary/SeleniumLibrary.html

1. open browser

打开浏览器

在这里插入图片描述

2. Maximize Browser Window

设置窗口最大化

在这里插入图片描述
这个后面的灰色色块,表示不需要再填写参数了

3. input text

输入框

在这里插入图片描述

4. click element

点击元素
在这里插入图片描述

5. Sleep

暂停几秒

在这里插入图片描述

6. handle alert

点击弹出框的确认按钮

在这里插入图片描述

7. Set Window Size

设置浏览器大小
在这里插入图片描述

8. Select Frame

进入frame 或者 iframe 框架
在这里插入图片描述

9. Unselect Frame

返回frame框架
在这里插入图片描述

10. Select From List By

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

在这里插入图片描述

11. Get WebElements

获取多个元素

在这里插入图片描述

12. Log

打印内容

在这里插入图片描述

13. Go Back

浏览器的返回操作

在这里插入图片描述

14. Go to

访问哪个网址

在这里插入图片描述

15. Reload Page

刷新页面

在这里插入图片描述

16. Get Text

获得文本

在这里插入图片描述

17. Get Element Attribute

获取元素属性的值

在这里插入图片描述

18. Clear Element Text

清除输入框内容

在这里插入图片描述

19. Get Title

获取当前网页标题

在这里插入图片描述

20. Get Location

获取当前网址
在这里插入图片描述

21. Close Browser

关闭浏览器

在这里插入图片描述

22. Catenate

拼接,语法,必须大写,=后面写拼接的字符串,不写则表示不使用拼接字符
在这里插入图片描述
SEPARATOR=,最后返回,xiaofeng
SEPARATOR=&,最后返回,xiao&feng

23. Get Time

获取时间,格式:2022-07-27 11:34:50

在这里插入图片描述

24. Set Variable

设置变量

在这里插入图片描述

25. Create List

创建列表

在这里插入图片描述
以 ${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

26. Create Dictionary

创建字典

在这里插入图片描述

20220727 11:36:56.925 :  INFO : ${dict1} = {'name': 'xiaofeng', 'age': '18'}
20220727 11:36:56.926 :  INFO : {'name': 'xiaofeng', 'age': '18'}

27. Get Dictionary Keys / values

获取字典的所有key/值

在这里插入图片描述

20220727 11:36:56.927 :  INFO : ${dict_keys} = ['age', 'name']
20220727 11:36:56.928 :  INFO : ${dict_values} = ['18', 'xiaofeng']

28. Get From Dictionary

获取字典某个参数
在这里插入图片描述

20220727 11:36:56.930 :  INFO : ${name_value} = xiaofeng

29. Evaluate

调用python的方法

在这里插入图片描述

20220727 11:36:56.945 :  INFO : ${random_num} = 10
20220727 11:36:56.947 :  INFO : 10

30. Run Keyword If

IF 判断语句

在这里插入图片描述

31. FOR

for循环

用法一
for开头,end结尾
中间写任何的关键字都可以

for 当前值 in 列表数组
在这里插入图片描述
用法二
@{}的列表才能用于for循环
如果是${},for循环是无法识别的

在这里插入图片描述

用法三

在这里插入图片描述

编程中的停止循环是break,在这里是Exit For Loop

这里,结合了,python中的range()函数,来指定循环多少次

八、RF分层设计模式

我们对RF进行二次封装,使用分层的设计模式,让我们的RF能够在企业落地,开展实战,如果只是单纯的线性脚本编写,那么维护起来是非常困难的,就比如,项目路径,如果你每个地方,都用到项目路径,如果,这个时候项目路径发生了变化,有100个地方用到了,是不是就要去修改100个地方?显然这是一个效率非常低的办法。

所以,就衍生出来了,通过二次封装,让我们的RF,能够通过数据去驱动。

1. 封装公共部分

公共部分,我们可以封装,所有业务逻辑都会用到的一些关键字,数据等

这是RF分层结构
在这里插入图片描述
我们通过 New Resource,新建资源
在这里插入图片描述

Resource,一定是选择txt
在这里插入图片描述
公共数据,定义变量
在这里插入图片描述
公共元素,存放一些公共的操作,比如,打开浏览器,关闭浏览器等

在这里插入图片描述
导入公共数据之后,我们就可以调用,通过${变量名}的方式
在这里插入图片描述
对于,一些关键字,需要传递一些参数进来,就可以这样设置

在这里插入图片描述
这样,我们封装了一些公共元素操作关键字

2. 封装项目层

在这里插入图片描述

我们分为,项目层,模块层
一个项目下面有很多个模块,一个模块下面可以有N个测试用例,然后每个模块都有独有的业务逻辑,页面元素

我们来看看元素资源

比如,封装输入用户名

这里的关键字,叫输入用户名,那么,我们就可以在业务逻辑中,直接使用这个关键字

把输入用户名这个业务步骤封装好,用户名可以单独作为一个参数传递进来

在这里插入图片描述

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

在这里插入图片描述

我们再来看看,业务层

在这里插入图片描述
我们把用户登录这个业务逻辑,直接封装成一个业务关键字
在这里插入图片描述

最后,我们来看看测试用例

先导入业务资源
在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

3. 运行测试,并查看测试结果

我们开始运行

在这里插入图片描述

然后查看测试报告

在这里插入图片描述

在这里插入图片描述
测试用例

在这里插入图片描述
具体执行步骤

在这里插入图片描述

九、命令行执行

我们需要新建一个 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 测试报告

十、Robotframework+Jenkins

1. 安装 robot framework

在这里插入图片描述
在这里插入图片描述

2. 新建 job

在这里插入图片描述

3. 配置工作空间

在这里插入图片描述

4. 配置cmd执行命令

在这里插入图片描述

5. 配置html样式不丢失

在这里插入图片描述

6. 配置Robotframework插件

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

7. 运行查看测试报告

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述


更新日志

提示:将会持续优化更新

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

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值