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

更多资源请前往博主个人网站:http://www.qabujiaban.com

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 (关闭当前打开的弹出窗口)

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 | <id> | \\13或\\10

  • 输入

  • Input Password | locator | text

  • Input Text | locator | text

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

      • Press Key | <id> | \\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

用例分层逻辑

封装流程图

自下而上进行封装

  • 交互层

  • 页面层

  • 流程层

  • 流程调用

  • 导入资源包

  • 练习源码

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

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伯先知

您的鼓励就是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值