文档库 最新最全的文档下载
当前位置:文档库 › Robot Framework Selenium自动化入门_虫师

Robot Framework Selenium自动化入门_虫师

Robot Framework Selenium自动化入门_虫师
Robot Framework Selenium自动化入门_虫师

Robot Framework+Selenium 自动化测试入门

--虫师

个人博客:

https://www.wendangku.net/doc/f51818117.html,

更多测试课程与公开课:

https://www.wendangku.net/doc/f51818117.html,/

目录

介绍 (2)

Robot Framework是什么? (2)

Selenium是什么? (2)

一、Robot Framework Selenium环境搭建 (4)

二、创建第一个自动化脚本 (5)

1、创建测试项目 (6)

2、创建测试套件 (6)

3、创建测试用例 (7)

4、导入selenium2library库 (7)

5、编写用例 (8)

6、运行测试用例 (9)

三、Selenium元素定位 (11)

1、id和name定位 (11)

2、xpath定位 (12)

3、CSS定位 (14)

四、Robot Framework Selenium API (16)

一、浏览器驱动 (17)

二、关闭浏览器 (18)

三、浏览器最大化 (18)

四、设置浏览器宽、高 (18)

五、文本输入 (19)

六、点击元素 (19)

七、点击按钮 (19)

八、注释 (19)

九、固定时间休眠 (20)

十、等待元素出现在当前页面 (20)

十一、获取title (20)

十二、获取文本信息 (21)

十三、获取元素属性值 (21)

十四、cookie处理 (21)

十五、声明变量 (22)

十六、日志(输出) (22)

十七、获得浏览器窗口宽、高 (23)

十八、验证 (23)

十九、表单嵌套 (24)

二十、下拉框选择 (24)

二十一、If分支语句 (24)

二十二、for循环语句 (25)

五、Robot Framework分层设计 (26)

1、创建用户关键字 (28)

2、添加调用关键字 (31)

介绍

Robot Framework是什么?

Robot Framework的架构是一个通用的验收测试和验收测试驱动开发的自动化测试框架(ATDD)。它具有易于使用的表格来组织测试过程和测试数据。

New Test Case

open browser https://www.wendangku.net/doc/f51818117.html,

input text id=kw robot framework

click button id=su

close browser

它使用关键字驱动的测试方法。

对于上面的例子来说,open browser、input text、click button和close browser,都是“关键字”,这些关键字由robotframework-selenium2library类库所提供。当然,我们也可以自定义关键字。

其检测能力可以通过测试库实现可以使用Python或Java的扩展,用户可以使用相同的语法,用于创建测试用例创建新的更高层次的现有的关键词。

Robot Framework的操作系统和应用独立框架。核心框架是使用Python和运行在Jython(JVM)和IronPython(.NET)。

Selenium是什么?

Selenium是web自动化测试工具集,包括IDE、Grid、RC(selenium1.0)、WebDriver(selenium 2.0)等。

Selenium IDE是firefox浏览器的一个插件。提供简单的脚本录制、编辑与回放功能。

Selenium Grid是用来对测试脚步做分布式处理。现在已经集成到selenium server中了。

RC和WebDriver更多应该把它看成一套规范,在这套规范里定义客户端脚步与浏览器交互的协议。以及元素定位与操作的接口。

WebDriver API是什么?

对于刚接触selenium自动化测试的同学来说不太容易理解API是什么,它到底和编程语言之是什么关系。

Webdriver API(接口规范)说,我们要提供一下id的定位方法。

Ruby的webdriver模块是这么实现的:

require"selenium-webdriver"#导入ruby版的selenium(webdriver)

find_element(:id,"xx")#id定位方法

C#的webdriver模块是这么实现的:

using OpenQA.Selenium;

using OpenQA.Selenium.Firefox;//导入C#版的selenium(webdriver)

FindElement(By.Id("xx"))//id定位方法

python的webdriver模块是这么实现的:

from selenium import webdriver#导入python版的selenium(webdriver)

find_element_by_id("xx")#id定位方法

Java的webdriver模块是这么实现的:

import org.openqa.selenium.*;

import org.openqa.selenium.firefox.FirefoxDriver;//导入java版的selenium(webdriver) findElement(By.id("xx"))//id定位方法

Robot Framework+selenium

因为Robot Framework对于底层过于封装,所以,更看不到语言层面的方法定义。所以,提供给我们的方法如下:

1、导入Robot Framework版本的selenium(webdriver)

2、使用id方法

Click element id=xx

需要说明的是webdriver API只提供了页面操作的相关规范,比如元素定位方法,浏览器操作,获取web页元素属性等。

一、Robot Framework Selenium环境搭建

最近工具中用Robot Framework框架来做自动化,所以,花时间学习了一下。

=======所需环境===================

Python:

https://https://www.wendangku.net/doc/f51818117.html,/

RF框架是基于python的,所以一定要有python环境。

Robot framework:

https://https://www.wendangku.net/doc/f51818117.html,/pypi/robotframework/2.8.5

这个不是解释了,RF框架。虽然在做基于UI的自动化时,它展现出来的很像QTP,我之前也以为它和QTP差不多,仔细了解你会发展它能做的事情还是很多的。就像初学selenium者,会误以为selenium就是selenium IDE。

wxPython:

https://www.wendangku.net/doc/f51818117.html,/download.php

Wxpython是python非常有名的一个GUI库,因为RIDE是基于这个库开发的,所以这个必须安装。

Robot framework-ride

https://https://www.wendangku.net/doc/f51818117.html,/pypi/robotframework-ride

RIDE就是一个图形界面的用于创建、组织、运行测试的软件。

Robot framework-selenium2library:

https://https://www.wendangku.net/doc/f51818117.html,/pypi/robotframework-selenium2library/1.5.0

RF-seleniumlibrary可以看做RF版的selenium库,selenium(webdriver)可以认为是一套基于web的规范(API),所以,RF、appium等测试工具都可以基于这套API进行页面的定位与操作。

----------------------

可以通过python的pip工具包进行安装:

>pip install robotframework-selenium2library

如果初次接触上面的东西的话,觉得装的东西有点多。如果之前有了解过python或selenium的话就不会有这样的感觉。

在你安装好RF-RIDE之后,桌面就会生成一个RIDE图标。双击启动,界面如下:

二、创建第一个自动化脚本

下面我们就一步一步的创建第一条用例,至于细节不多解释,只是对RF框架写用例有个感性的认识。

1、创建测试项目

选择菜单栏file----->new Project

Name输入项目名称。

Type选择Directory。

2、创建测试套件

右键点击“测试项目”选择new Suite选项

Name输入项目名称。

Type选择File。

3、创建测试用例

右键点击“测试项目”选择new Test Case

用例只需要输入用例name,点击OK即可。

4、导入selenium2library库

因为RF框架编写基于web的测试用例,所以,我们需要selenium的库支持。所以,我们在使用的过程中需要加载selenium2library库。

在“测试套件”的Edit标签页,点击“Library”按钮,弹出输入框,Name输入:Selenium2Library,点击OK完。

如果导入的库显示为红色,表示导入的库不存在。如果是黑色则表示导入成功。

5、编写用例

下面就可以开始写我们的用例了,可是怎么写呢?我们可以通过按F5快捷键来查询脚本的关键字。如果你接触过QTP或selenium IDE等自动化工具的话,应该会有一些思路。

如上图,自动化脚本从打开浏览器开发,如上图,我想打开一个浏览器,想的是“open”为关键字进行搜索,结果找到了一个“Open Browser”的关键字,点击这个关键字,想显示它的用法和说明。

根据说明,我们来尝试创建这个打开浏览器的操作吧:

“Open Browser”变蓝了,说明它是一个合法的关键字,后面有一个方框是红色的,表示这个参数不能缺省的。通过说明信息中,我发现它需要一个url地址是必填的,当然还需要指定browser(默认不填为friefox)

更多关键的使用,请参考相关API文档。这里不过多介绍。按照上面的方法。创建百度搜索用例如下:

6、运行测试用例

勾选当前需要运行的测试用例,点击工具栏运行按钮,如果只运行单个用例的话,也可以切换到用例的Run标签页,点击“start”按钮。

运行结果:

运行信息显示会生成三个文件:Output.xml、Log.html、Report.html

我们重点查看Log.html和Report.html,Log.html更关注脚本的执行过程的记录,Report.html更关注脚本的执行结果的展示。

赶快打开你的测试报告看看效果吧!

三、Selenium元素定位

1、id和name定位

假如把一个元素看作一个人的话,id和name可以看作一个人的身份证号和姓名。当然,这些属性值是否唯一要看前端工程师如何设计了。

百度搜索框和搜索按钮

……

……

……

根据上面的例子,百度输入框可以取id或name进行定位。(前提是id和name的值在当页面上唯一)id=kw1

name=wd

在Robot framework中就是这样写的:

Input Text id=kw1robot framework学习

input text name=wd robot framework学习

Input text用于输入框的关键字,“robot framework学习”是要给输入框输入的内容。

百度按钮只id数据可以利用:

id=su1

Click Button id=su1

Click Button是按钮点击的关键字。

2、xpath定位

假如,一个人没身份证号没名字怎么找呢?想想你是怎么找朋友吃饭的,他手机不通,电话不回呢?直接上他家去呗,那你一定有他家住址,xx市xx区xx路xx号。Xpath就可以通过这种层级关系找到元素。

来看看百度输入框在整个页面上的位置吧:

style="display:block;position:absolute;top:30px;right:30px;border:1px solid;padding:5px 10px;">