Robot Framework介绍与安装
目录
Robot Framework介绍与安装
Robot Framework是什么?
什么是自动化测试框架?
Robot Framework特性
Selenium简介
RFS架构
环境搭建(在线安装)
元素定位
selenium支持的定位方式
iframe/frame元素定位
XPath
XPath格式
Selenium Library
SeleniumLibrary关键字
浏览器驱动driver
常用关键字
点击
输入
SeleniumLibrary提供了和其他元素交互的关键词
加载/等待
获取页面信息
用例分层逻辑
封装流程图
自下而上进行封装
交互层
页面层
流程层
流程调用
导入资源包
练习源码
Robot Framework是什么?
robotframework是一款python编写的功能自动化测试框架。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。主要用于轮次很多的验收测试和验收测试驱动开发(ATDD)
什么是自动化测试框架?
Robot Framework特性
-
易于使用,采用表格式语法,同意测试用力格式;
-
重用性高,可以利用现有关键字来组合新关键字;
-
支持变量;
-
支持创建基于数据驱动的测试用例
-
结果报告和日志采用HTML格式,易于阅读;
-
提供标签以分类和选择将被执行的测试用例;
-
平台、应用无关;
-
功能全面,支持WEB测试(Selenium)、java GUI测试;
-
易于扩展,提供了简单API,用户可以自定义的基于python或者java的测试库;
-
易于集成,提供了命令行接口和基于XML的输出文件;
-
易于与版本管理集成;
Selenium简介
Selenium是一个用于web应用程序测试的工具
Selenium包括:IDE、Remote Control(RC)、Grid、Web Driver(WD)
我们这里用的Web Driver(WD)
RFS = Robot Framework + Selenium(WD)
RFS架构
环境搭建(在线安装)
-
ActivePython-2.7
-
wxPython2.8
-
pip install robotframework
-
pip install robotframework-ride
-
pip install robotframework-selenium2library
-
浏览器driver:
http://code.google.com/p/selenium/downloads/list
元素定位
selenium支持的定位方式
最好以id来定位,如果没有id可以使用Assign Id To Element关键字来为元素分配一个id
Strategy |
Example |
Description |
identifler |
Click Element | identifler=my_element |
Matches by@id or @name attribute |
id |
Click Element | id=my_element |
Matches by@id attribute |
name |
Click Element | name=my_element |
Matches by@name attribute |
xpath |
Click Element | xpath=//div[@id=''my_element] |
Matches with arbitrary XPath expression |
dom |
Click Element | dom=document.images[56] |
Matches with arbitrary DOM express |
link |
Click Element | link=My Link |
Matches anchor elements by their link text |
css |
Click Element | css=div.my_class |
Matches by CSS selector |
jquery |
Click Element | jquery=dic.my_class |
Matches by jQuery/sizzle selector |
sizzle |
Click Element | sizzle=div.my_class |
Matches by jQuery/sizzle selector |
tag |
Click Element | tag=div |
Matches by HTML tag name |
iframe/frame元素定位
有时,需要先进入一个frame或iframe在定位一个元素,这样效率更高,可以使用乳腺关键字
-
进入一个frame或iframe
-
回到最上层frame或iframe
XPath
-
XPath是门在XML文档中查找信息的语言。XPath用于在XML文档通过元素和属性进行导航
-
XPath是XML路径语言,用来查询XML文档中的节点。主流的浏览器都支持Xpath,因为HTML页面在DOM中表示为XHTML文档。Xpath语言是基于XML文档的树结构,并提供了浏览树的能力,通过多样的标准来选择节点
-
http://www.w3school.com.cn/xpath
XPath格式
-
通过绝对路径定位元素
-
通过相对路径定位元素
-
使用索引来定位元素
-
使用属性值定位元素
-
xpath=//input[@id='username']
-
xpath=//input[@id='username'][@name='username']
-
xpath=//input[@id='username' and @name='username']
-
xpath=//input[@id='username' or @name='username']
-
使用属性名称定位元素
-
使用部分属性值定位元素
语法 |
例子 |
描述 |
starts-with{} |
input[starts-with(@id,'user')] |
匹配id以user开头的元素 |
ends-with{} |
input[ends-with(@id,'name')] |
匹配id以name结尾的元素 |
contains{} |
input[contains(@id,'name')] |
匹配id的值包含name的元素 |
Selenium Library
SeleniumLibrary关键字
Open Browser (打开浏览器)
Maxinmize Browser Window (最大化)
Go To (前进)
Go Back (后退)
Reload Page (刷新)
Close Window (关闭当前打开的弹出窗口)
Close Browser (关闭当前窗口)
Close All Browsers (关闭所有打开的浏览器并重置浏览器缓存)
浏览器驱动driver
selenium默认的是Firefox浏览器,其他浏览器需要自己的driver
常用关键字
-
Input Password | locator | text
-
Input Text | locator | text
-
有时会出现输入之后界面没有的问题,可以使用如下命令来触发页面更新
-
SeleniumLibrary提供了和其他元素交互的关键词
-
Element
-
Focus聚焦
-
Simulate 模拟时间触发
-
Open Context Menu 打开
-
List
-
Select All From List
-
Select From List (如:下拉列表 )
-
Unselect From List
-
Checkbox
-
Select Checkbox (如:复选框选中)
-
Unselect Checkbox (去除指定复选框选中)
-
Radio Button
-
Select Radio Button(如:单选框/选择性别)
-
Form
-
Submit Form
-
Choose File(For File Upload)
-
加载/等待
-
默认情况下,Selenium会自动等待也买你加载完成
-
对于页面ajax可以使用如下等待页面的关键字
-
Wait For Condition | condition | timeout=None | error=None
-
Wait Until Page Contains | text | timeout=None | error=None
-
Wait Unit Page Contains Element | locator | timeout
-
一种调试时可以使用,但是不应该留下来
-
Sleep x
-
Sleep 关键字是robot framework built in library提供的
http://robotframework.googlecode.com/hg/doc/libraries/Builtln.html?r=2.6.1
用例分层逻辑
封装流程图
自下而上进行封装
「练习源码」「阿里云盘」阿里云盘分享