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

2023-11-15

更多资源请前往博主个人网站: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

用例分层逻辑

封装流程图

自下而上进行封装

  • 交互层

  • 页面层

  • 流程层

  • 流程调用

  • 导入资源包

  • 练习源码

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Robot Framework (分层实现UI自动化) 的相关文章

随机推荐

  • 【1day】复现金和协同管理平台任意文件读取漏洞

    注 该文章来自作者日常学习笔记 请勿利用文章内的相关技术从事非法测试 如因此产生的一切不良后果与作者无关 目录 一 漏洞描述 二 影响版本 三 资产测绘 四 漏洞复现 一 漏洞
  • Unity3D-VR《静夜诗》3-开始按钮与开始文本信息

    Unity3D VR 静夜诗 3 开始按钮与开始文本信息 1 开始按钮及开始信息文本UI对象的设计 1 1容器对象PanelBeginUI 1 2开始信息文本TextBegin 1 3开始按钮BtnBegin 2 开始按钮实现凝视触发 凝视
  • 521 加速乐多层响应 Cookie逆向 + 代码高度混淆

    网址 aHR0cHM6Ly93d3cubWFmZW5nd28uY24vaS81Mzc2OTc4Lmh0bWw 目录 声明 本文章中所有内容仅供学习交流使用 不用于其他任何目的 不提供完整代码 抓包内容 敏感网址 数据接口等均已做脱敏处理 严
  • 《Centos7——elk+lnmp+zabbix+grafana来分析日志》

    目录 elk lnmp zabbix grafana来分析日志 一 Elasticsearch部署 192 168 234 130 1 上传安装包 2 安装elasticsearch kibana 3 修改es和kibana配置文件 4 启
  • weixin4j开发微信分享案例

    微信官方文档 步骤一 绑定域名 先登录微信公众平台进入 公众号设置 的 功能设置 里填写 JS接口安全域名 备注 登录后可在 开发者中心 查看对应的接口权限 步骤二 引入JS文件 在需要调用JS接口的页面引入如下JS文件 支持https h
  • 关于VUE中v-for循环的dom使用ref获取不到问题

    背景 初学vue做练习项目的时候 基于vue2 0版本使用refs属性获取v for循环的dom时出现获取不到dom的情况 尝试采用原生的方法出现同样的情况 查了很多资料没有找到对应的详细说明 现将我发现的一些问题分享给大家 html部分
  • 量化选股策略搭建(四)(短期策略搭建)

    量化选股策略搭建 四 短期策略搭建 首先我们需要把选股这个问题转化为一个机器学习问题 那么如何转化成机器学习问题呢 机器学习也分两类问题 1 回归问题 2 分类问题 常规的一些方法是预测股价增长来进行选股 回顾问题 这里我们将其转化为一个分
  • ZooKeeper 分布式协调工具

    目录 一 ZooKeeper 概述 二 ZooKeeper Windows 单机版安装 三 ZooKeeper 集群环境下选举过程 四 ZooKeeper 存储数据的过程 五 ZooKeeper 监听 六 java 操作 ZooKeeper
  • 为什么说python简单_为什么很多人都说 Python 简单?

    Python是一门入门简单 精通困难的编程语言 Python是一门比较高阶的语言 在基本语法和使用方面没有C Java那么复杂 因此 对于入门者来说 很接近于自然语言的表述方式 经过短暂的的学习就可以完成一些简单的工作 但是 我认为如果仅用
  • 面试官:有一个 List 对象集合,如何优雅地返回给前端?我懵了。。

    1 业务背景 业务场景中 一个会话中存在多个场景 即一个session id对应多个scene id和scene name 如果你写成如下的聚合模型类 public class SceneVO private String sessionI
  • [leetcode]Python实现-389. 找不同

    389 找不同 描述 给定两个字符串 s 和 t 它们只包含小写字母 字符串 t 由字符串 s 随机重排 然后在随机位置添加一个字母 请找出在 t 中被添加的字母 示例 输入 s abcd t abcde 输出 e 解释 e 是那个被添加的
  • oracle 数据库基础知识复习

    1 单表的数据查询 1 1指定字段的数据记录查询 select field1 field2 FROM 表名 WHERE CONDITION 例 select t stuname t age t sex from STUINFO t wher
  • curl命令介绍与使用

    curl 全称CommandLine URL 或 CommandLine Uniform Resource Locator 顾名思义 curl命令是在命令行方式下工作 利用URL的语法进行数据的传输或者文件的传输 这个命令行工具现在多用于U
  • 基于Python Django Mysql 开发的宠物用品商城

    最近做的一个程序设计 核心是基于django做一个商城 功能包含登录 注册 商品浏览 购物车 支付模块 支付宝沙箱支付 评价 轮播图 开发环境 Python版本 3 8 7 Django版本 3 1 5 数据库版本 mysql8 数据库管理
  • Hive(二):获取HiveConnection,及重现获取过程中的某些问题。

    为什么80 的码农都做不了架构师 gt gt gt 一 未创建Maven工程 所需jar包都是自己一一找的 结果碰到许多缺包问题 最后我的lib下包为 二 尝试获取HiveConnection 先附上成功获取HiveConnection的代
  • nexus3 Unauthorized问题解决

    环境 Nexus3 version 3 20 1 01 问题 nexus3 在安装完后通过mvn deploy命令 出行 Return code is 401 ReasonPhrase Unauthorized 异常 分析解决 1 mave
  • Hadoop集群启动后,在web:50070端口只有两个datanode节点

    spark集群部署规划 hadoop1 master worker datanode namenode secondarynamenode hadoop resourcemanager nodemanager yarn hadoop2 wo
  • 使用AD14制作PCB的全部流程以及PCB打样流程介绍

    文章目录 1 各PCB打样公司 1 1 深圳嘉立创 1 2 捷配 1 3 华秋 1 4 猎板 2 嘉立创PCB打样流程 2 1 在线下单 2 2 上传PCB文件 2 3 选择板子数量 2 4 工艺参数设置 3 AD元器件库 4 AD14创建
  • 上手Web自动化测试(Python+selenium+unittest)

    从安装库 包和文件配置上手Web自动化测试 Python主要用selenium和unittest库 此外还有用于远程测试的Selenium Server包 浏览器需要配置chromedriver 1 安装selenium库 可以在Pycha
  • Robot Framework (分层实现UI自动化)

    更多资源请前往博主个人网站 http www qabujiaban com Robot Framework介绍与安装 目录 Robot Framework介绍与安装 Robot Framework是什么 什么是自动化测试框架 Robot F