Robot Framework (分层实现UI自动化)

Robot Framework (分层实现UI自动化),第1张

Robot Framework (分层实现UI自动化) 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

Select frame | locator

回到最上层frame或iframe

Unselect frame

XPath

XPath是门在XML文档中查找信息的语言。XPath用于在XML文档通过元素和属性进行导航

XPath是XML路径语言,用来查询XML文档中的节点。主流的浏览器都支持Xpath,因为HTML页面在DOM中表示为XHTML文档。Xpath语言是基于XML文档的树结构,并提供了浏览树的能力,通过多样的标准来选择节点

http://www.w3school.com.cn/xpath

XPath格式

通过绝对路径定位元素

xpath=/html/body/form/input

通过相对路径定位元素

xpath=//input

使用索引来定位元素

xpath=//input[2]

使用属性值定位元素

xpath=//input[@id='username']

xpath=//input[@id='username'][@name='username']

xpath=//input[@id='username' and @name='username']

xpath=//input[@id='username' or @name='username']

使用属性名称定位元素

xpath=//input[@name]

使用部分属性值定位元素

语法

例子

描述

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的元素

使用值来匹配任意属性及元素

//input[@*='username']

Selenium Library SeleniumLibrary关键字

Open Browser (打开浏览器)

Maxinmize Browser Window (最大化)

Go To (前进)

Go Back (后退)

Reload Page (刷新)

Close Window (关闭当前打开的d出窗口)

Close Browser (关闭当前窗口)

Close All Browsers (关闭所有打开的浏览器并重置浏览器缓存)

浏览器驱动driver

selenium默认的是Firefox浏览器,其他浏览器需要自己的driver

常用关键字

点击

Click Button | locator

Click Element | locator

Click Image | locator

Click link | locator

Double Click Element | locator

有时在IE中,Click不起作用,可以用如下命令来替代

Press Key | | \13或\10

输入

Input Password | locator | text

Input Text | locator | text

有时会出现输入之后界面没有的问题,可以使用如下命令来触发页面更新

Press Key | | \13或\10

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

获取页面信息

Page

Get Title

Get Location

Get Source

Get Matching Xpath Count

Element

Get Element Attribute

Get Value

Get Tex(Added By Adam Wu)

link

Get All links

Table

Get Table Cell

List

Get List Items

Get Selected List Label

Get Selected List Labels

Get Selected List Value

Get Selected List Values

用例分层逻辑 封装流程图

自下而上进行封装

交互层

页面层

流程层

流程调用

导入资源包

练习源码

「练习源码」「阿里云盘」阿里云盘分享

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5711810.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存