从零开始学习robot framework框架,代码、关键字封装,来实现自动化测试。
作者是一个互联网行业的小测试,只为将自已学过的,工作中运用到的,及之前碰到的疑难问题且得到解决方面,和大家分享。作者将从UI自动化测试、接口自动化、简易Web开发框架、各种测试工具、基础运维小知识等方面,跟各位大神一起探讨。
零、RF简介
0.1 rf是啥?
robot frameword(简称rf),它是一个基于Python的,可扩展的关键字驱动的测试自动化框架,用于端到端验收测试和验收测试驱动开发(ATDD)。它可用于测试分布式异构应用程序,其中验证需要涉及多种技术和接口。
这是官网地址,官网是长这样的:
rf是目前比较主流的自动化框架之一,现在很多公司都在应用这个工具或者说是框架。
那么,为什么现在这么多人,这么多公司都在用它呢?
0.2 rf有什么好处?
- 表格形式,编写用例和配置文件,都是通过简单的表格形式
- 不需要你懂编程
- 丰富的库,内置库和扩展库
- 易于阅读的日志和测试报告
- 即支持selenium,appium, 也支持接口自动化
- 等等等等
0.3 安装rf
A. pip安装rf
cmd中输入下面命令:
pip install robotframework
B. 安装SeleniumLibrary
pip install robotframework-seleniumlibrary
C. 安装ride
pip install robotframework-ride
0.4 查看是否安装成功
pip show robotframework
pip show robotframework-selenium
PS: rf对于python版本也是有要求的,python最好是2.7以上。
一、 项目结构
写在最前:今天测试的项目是一testin云测平台,点击查看
公司经常有用到这个网站,就刚好拿来当成例子。这个是我随便注册的一个帐号进入的页面。
首先,需要先创建一个项目,类型选择目录:
1. 创建一个公共部分的目录
右键rf_pro目录,选择New Directory,输入名:公共部分,默认ROBOT格式。
1.1 创建公共元素的资源文件
右键公共部分,选择New Resource,输入名:公共元素,格式类型选择:TXT
想一想,有哪些是我们一直要用的公共元素呢?比如:打开浏览器,关闭浏览器,等待…
使用前,我们有一个固定的方式,要记住,那就是必须先导入相关的库,或资源文件
点击公共元素–>右侧工作页面中,点击【Library】或【Resource】
如,现在我们需要导入selenium库,需要点击【Library】,对话框中输入库名:
库导入后,如是黑色,代表成功。红色,代表失败。
同样的操作,我们再把公共的数据资源文件导入进入:
资源文件导入后,蓝色代表成功,红色代表失败。
OK,接下来,就是开始创建关键字了。
右键公共元素–>New User Keyword,分别创建一个打开浏览器和关闭浏览器关键字。
A. 打开浏览器,输入代码:
*** Settings ***
Library SeleniumLibrary
Resource 公共数据.txt
*** Keywords ***
打开浏览器
Open Browser ${url} chrome
关闭浏览器
Close Browser
隐式等待
Set Browser Implicit Wait 5
如下:
输入代码时,可以按快捷键帮我们快速查找我们想要的:ctrl+shift+空格
B. 关闭浏览器
C. 隐式等待
D. 强制等待
1.2 创建公共数据的资源文件
同样,右键公共部分,选择New Resource,输入名:公共数据,格式类型选择:TXT
公共数据,一般所有的用例都可以运用得到。所以,接下来,我们新建一些关键字:
- 右键公共数据–>New Scalar,输入所需变量值,比如:
- 同样的,创建 p a s s w o r d 和 {password}和 password和{url}变量.密码输入正确的密码,url设置为:https://www.testin.cn/account/login.htm
2. 创建用例模块的目录
2.1 创建一个登录的目录
- 新建一个登录元素资源文件:
同上面的操作,先把库和资源文件导入进入:
然后,右键登录元素,添加两个关键字:
通过检查元素,我们可以看到用户名的id:
输入用户名代码如下:
同样的,输入密码中再输入相应代码:
- 再新建一个登录业务资源文件:
右键登录–>新建一个名为:登录的资源文件,再将登录元素组合成一个完整的业务:
上图中,用户名和密码给它们设置一个默认的值,这个值就是公共数据中的用户名和密码,所以,在登录业务中不仅仅需要导入登录元素,还需要导入公共数据。
2.2 登录用例
有了基础元素和业务,我们就可以开始编写测试用例了
右键登录–>New Suit,输入测试套件名:登录用例。当然,别忘了需要导入登录的元素和登录业务资源文件:
接下来,就是开始写用例了。
然后,再右键登录用例–>New TestCase,分别新建一个正确,两个异常的用例,如上图。
- 正确的用例:
- 用户名为空的用例
- 密码为空的用例
2.3 运行结果
登录成功:
用户名为空:
rf运行结果:
OK,到了这里,已经差不多了。基本的用法,应该有了个概念了。但是,这只是最基本的,跟业务没有联系起来,看不出来水平。
接着来!!!!!!!!!!!!!!!!!
那咱们接着来,进入页面后,选择任一机型,并打开手机,会弹出提示余额不足。
二、指定机型进行测试
再来明确一下测试内容:
先点击华为机型,筛选结果中选择华为 荣耀30 pro,点击立即使用按钮,发现没有钱,断言:您的配额已不足,是否前往购买?。
2 目录结构
2.1 新建搜索手机的目录文件
- 再新建搜索手机业务的资源文件,需要改入相应库和资源文件,同上。
A. 搜索元素中,新建两个关键字:点击华为手机元素、点击手机、断言
B. 搜索元素,代码如下:
*** Settings ***
Library SeleniumLibrary
Resource ../公共部分/公共元素.txt
*** Keywords ***
点击华为手机元素
Wait Until Page Contains 华为
隐式等待
Click Element xpath=//*[@id="collapse_1"]/div/dl[1]/dd/div/span[4]/label/span
点击手机
Click Element xpath=//*[@id="device_7d22ebd8f913637d"]/div[2]/button
断言
Wait Until Page Contains 您的配额已不足,是否前往购买?
C. 点击华为手机元素,代码如下:
D. 点击手机,代码如下:
E. 断言,代码如下:
2. 再新建一个搜索业务的资源文件
搜索页面就是根据上面的搜索元素组合而成的,代码如下:
*** Settings ***
Resource ../公共部分/公共元素.txt
Resource 搜索元素.txt
*** Keywords ***
搜索华为华为手机
点击华为手机元素
点击手机
2.2 运行结果
2.2.1 点击RF工具中运行
2.2.2 通过非GUI命令运行
打开cmd,并进入项目的目录中,执行命令:
robot -d 测试报告目录 项目目录
2.2.3 查看浏览器效果
2.2.3 查看rf生成的测试报告
或查看log:
OK,今天到这就结束了。下一章接着,将这次代码,利用持续集成让它自动执行。