RF+Selenium实现自动化实战

从零开始学习robot framework框架,代码、关键字封装,来实现自动化测试。
作者是一个互联网行业的小测试,只为将自已学过的,工作中运用到的,及之前碰到的疑难问题且得到解决方面,和大家分享。作者将从UI自动化测试、接口自动化、简易Web开发框架、各种测试工具、基础运维小知识等方面,跟各位大神一起探讨。

零、RF简介

0.1 rf是啥?

robot frameword(简称rf),它是一个基于Python的,可扩展的关键字驱动的测试自动化框架,用于端到端验收测试和验收测试驱动开发(ATDD)。它可用于测试分布式异构应用程序,其中验证需要涉及多种技术和接口。
这是官网地址,官网是长这样的:
RF+Selenium实现自动化实战_第1张图片
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

RF+Selenium实现自动化实战_第2张图片
RF+Selenium实现自动化实战_第3张图片

PS: rf对于python版本也是有要求的,python最好是2.7以上。

一、 项目结构

写在最前:今天测试的项目是一testin云测平台,点击查看
RF+Selenium实现自动化实战_第4张图片
公司经常有用到这个网站,就刚好拿来当成例子。这个是我随便注册的一个帐号进入的页面。
首先,需要先创建一个项目,类型选择目录:
RF+Selenium实现自动化实战_第5张图片

1. 创建一个公共部分的目录

右键rf_pro目录,选择New Directory,输入名:公共部分,默认ROBOT格式。
RF+Selenium实现自动化实战_第6张图片

1.1 创建公共元素的资源文件

右键公共部分,选择New Resource,输入名:公共元素,格式类型选择:TXT
RF+Selenium实现自动化实战_第7张图片
想一想,有哪些是我们一直要用的公共元素呢?比如:打开浏览器,关闭浏览器,等待…
使用前,我们有一个固定的方式,要记住,那就是必须先导入相关的库,或资源文件
点击公共元素–>右侧工作页面中,点击【Library】或【Resource】
RF+Selenium实现自动化实战_第8张图片
如,现在我们需要导入selenium库,需要点击【Library】,对话框中输入库名:
RF+Selenium实现自动化实战_第9张图片
库导入后,如是黑色,代表成功。红色,代表失败。
同样的操作,我们再把公共的数据资源文件导入进入:
RF+Selenium实现自动化实战_第10张图片
资源文件导入后,蓝色代表成功,红色代表失败。
RF+Selenium实现自动化实战_第11张图片
OK,接下来,就是开始创建关键字了。
右键公共元素–>New User Keyword,分别创建一个打开浏览器和关闭浏览器关键字。
RF+Selenium实现自动化实战_第12张图片
A. 打开浏览器,输入代码:

*** Settings ***
Library           SeleniumLibrary
Resource          公共数据.txt

*** Keywords ***
打开浏览器
    Open Browser    ${
     url}    chrome

关闭浏览器
    Close Browser

隐式等待
    Set Browser Implicit Wait    5

如下:
RF+Selenium实现自动化实战_第13张图片
输入代码时,可以按快捷键帮我们快速查找我们想要的:ctrl+shift+空格
在这里插入图片描述
B. 关闭浏览器
RF+Selenium实现自动化实战_第14张图片
C. 隐式等待
RF+Selenium实现自动化实战_第15张图片
D. 强制等待
RF+Selenium实现自动化实战_第16张图片

1.2 创建公共数据的资源文件

同样,右键公共部分,选择New Resource,输入名:公共数据,格式类型选择:TXT
RF+Selenium实现自动化实战_第17张图片
公共数据,一般所有的用例都可以运用得到。所以,接下来,我们新建一些关键字:

  1. 右键公共数据–>New Scalar,输入所需变量值,比如:
    RF+Selenium实现自动化实战_第18张图片
  2. 同样的,创建 p a s s w o r d 和 {password}和 password{url}变量.密码输入正确的密码,url设置为:https://www.testin.cn/account/login.htm

2. 创建用例模块的目录

2.1 创建一个登录的目录

  1. 新建一个登录元素资源文件:
    RF+Selenium实现自动化实战_第19张图片
    同上面的操作,先把库和资源文件导入进入:
    RF+Selenium实现自动化实战_第20张图片
    然后,右键登录元素,添加两个关键字:
    RF+Selenium实现自动化实战_第21张图片
    通过检查元素,我们可以看到用户名的id:
    RF+Selenium实现自动化实战_第22张图片
    输入用户名代码如下:
    RF+Selenium实现自动化实战_第23张图片
    同样的,输入密码中再输入相应代码:
    RF+Selenium实现自动化实战_第24张图片
  2. 再新建一个登录业务资源文件:
    RF+Selenium实现自动化实战_第25张图片
    右键登录–>新建一个名为:登录的资源文件,再将登录元素组合成一个完整的业务:
    RF+Selenium实现自动化实战_第26张图片
    上图中,用户名和密码给它们设置一个默认的值,这个值就是公共数据中的用户名和密码,所以,在登录业务中不仅仅需要导入登录元素,还需要导入公共数据。

2.2 登录用例

有了基础元素和业务,我们就可以开始编写测试用例了
右键登录–>New Suit,输入测试套件名:登录用例。当然,别忘了需要导入登录的元素和登录业务资源文件:
RF+Selenium实现自动化实战_第27张图片
接下来,就是开始写用例了。
RF+Selenium实现自动化实战_第28张图片
然后,再右键登录用例–>New TestCase,分别新建一个正确,两个异常的用例,如上图。

  1. 正确的用例:
    RF+Selenium实现自动化实战_第29张图片
  2. 用户名为空的用例
    RF+Selenium实现自动化实战_第30张图片
  3. 密码为空的用例
    RF+Selenium实现自动化实战_第31张图片

2.3 运行结果

登录成功:
RF+Selenium实现自动化实战_第32张图片
用户名为空:
RF+Selenium实现自动化实战_第33张图片
rf运行结果:
RF+Selenium实现自动化实战_第34张图片
OK,到了这里,已经差不多了。基本的用法,应该有了个概念了。但是,这只是最基本的,跟业务没有联系起来,看不出来水平。
接着来!!!!!!!!!!!!!!!!!
那咱们接着来,进入页面后,选择任一机型,并打开手机,会弹出提示余额不足。

二、指定机型进行测试

再来明确一下测试内容:
RF+Selenium实现自动化实战_第35张图片
先点击华为机型,筛选结果中选择华为 荣耀30 pro,点击立即使用按钮,发现没有钱,断言:您的配额已不足,是否前往购买?。

2 目录结构

2.1 新建搜索手机的目录文件

  1. 再新建搜索手机业务的资源文件,需要改入相应库和资源文件,同上。
    在这里插入图片描述
    A. 搜索元素中,新建两个关键字:点击华为手机元素、点击手机、断言
    RF+Selenium实现自动化实战_第36张图片
    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. 点击华为手机元素,代码如下:
RF+Selenium实现自动化实战_第37张图片
D. 点击手机,代码如下:
RF+Selenium实现自动化实战_第38张图片
E. 断言,代码如下:
RF+Selenium实现自动化实战_第39张图片
2. 再新建一个搜索业务的资源文件
RF+Selenium实现自动化实战_第40张图片
搜索页面就是根据上面的搜索元素组合而成的,代码如下:

*** Settings ***
Resource          ../公共部分/公共元素.txt
Resource          搜索元素.txt

*** Keywords ***
搜索华为华为手机
    点击华为手机元素
    点击手机

RF+Selenium实现自动化实战_第41张图片

2.2 运行结果

2.2.1 点击RF工具中运行

RF+Selenium实现自动化实战_第42张图片

2.2.2 通过非GUI命令运行

打开cmd,并进入项目的目录中,执行命令:

robot -d 测试报告目录 项目目录

RF+Selenium实现自动化实战_第43张图片

2.2.3 查看浏览器效果

RF+Selenium实现自动化实战_第44张图片
2.2.3 查看rf生成的测试报告
RF+Selenium实现自动化实战_第45张图片
RF+Selenium实现自动化实战_第46张图片
或查看log:
RF+Selenium实现自动化实战_第47张图片
OK,今天到这就结束了。下一章接着,将这次代码,利用持续集成让它自动执行。

你可能感兴趣的:(单元测试框架,UI自动化,工具,python,软件测试)