UI自动化在RobotFramework中采用的分层设计
RF测试数据
RF测试数据由4种表数据组成。这些测试数据由表的第一个单元格标识,名称和用法如下:
|
表名 |
用法 |
别名 |
|
设置表 |
导入测试库,资源文件和变量文件。为测试套件和测试用例定义元数据 |
Setting settings metadata |
|
变量表 |
定义可在测试用例中其他位置使用的变量 |
Variable variables |
|
用例表 |
测试用例 |
Test Case |
|
关键字表 |
从现有的低级别关键字创建用户关键字 |
Keyword User Keyword |
其中,分层思想直接体现在关键字表和用例表。
RF分层设计模式其实就是根据需求使用抽象与封装关键,把一个实现过程分成不同多层。把代码根据脚本特征拆封开来,提高代码的灵活性和清晰度,从而也让一些组件层内容可扩展、可复用、可维护。这种设计基于RF的关键字驱动。
具体的做法就是:通过调用的关键字不同,从而引起测试结果的不同。“关键字”的底层其实还是程序定义的方法。我们可以把操作步骤封装一个一个的方法(关键字),通过调用关键字来实现测试用例。
RF分层可大致分为 元素层、组件层、流程层,用例层四层。当然可以根据项目实际应用采取减少层次或者增加层次,核心设计思想就是覆盖测试流程的基础上增加代码的复用程度,减少重复代码量。
以测试页面登陆为例子:
元素层:
将测试过程中用到的变量等的数据元素集中在这里。如果需要修改测试的基础数据,例如定位的元素等。这里采用定义变量和用户关键字均可。如果元素有变动,修改起来很方便。

组件层:
页面上的功能组件操作的封装。创建之前应先导入元素层的资源。除了个别流程的独有操作,这一层应该实现操作步骤的细化封装,例如登陆页面的操作有:打开网址、输入用户名、输入密码、点击登陆按钮等。每一个动作都可以拆分,形成独立的关键字。

流程层:
组件层基础上的进一步封装。要求能覆盖掉所有的测试流程,同时兼顾用例中输入的灵活性。

用例层:
测试用例执行。经过业务流程层的拼装,可以像写列表一样编写测试用例。

封装的资源数据流转顺序如下:

UI自动化在RobotFramework中采用的分层设计的更多相关文章
- 基于Selenium2+Java的UI自动化(4) - WebDriver API简单介绍
1. 启动浏览器 前边有详细介绍启动三种浏览器的方式(IE.Chrome.Firefox): private WebDriver driver = null; private String chrom ...
- RobotFramework自动化测试框架-Selenium Web自动化(二)关于在RobotFramework中如何使用Selenium很全的总结(上)
好久没有继续分享关于自动化测试相关的东西了,自动化在现今的测试领域已经越来越重要了,大部分公司在测试岗位招聘中都需要会相关的自动化测试知识.而 RobotFramework自动化测试框架 是自动化测试 ...
- RobotFramework自动化测试框架-Selenium Web自动化(三)关于在RobotFramework中如何使用Selenium很全的总结(下)
本文紧接着RobotFramework自动化测试框架-Selenium Web自动化(二)关于在RobotFramework中如何使用Selenium很全的总结(上)继续分享RobotFramewor ...
- airtest自动化中的poco+python连接手机实现ui自动化
airtest:http://airtest.netease.com/docs/docs_AirtestIDE-zh_CN/index.html官网地址 AirtestIDE:跨平台的UI自动化测试编 ...
- robotframework执行UI自动化时不能运行谷歌浏览器的问题
robotframework执行UI自动化时报错,查看日志显示Parent suite setup failed: Variable '${browser}' not found. Did you m ...
- [python]RobotFramework自定义库实现UI自动化
1.安装教程 环境搭建不多说,网上资料一大堆,可参考https://www.cnblogs.com/puresoul/p/3854963.html,写的比较详细,值得推荐.目前python3是不支持r ...
- 【Android测试】UI自动化代码优化之路(临时发布, 随时删除)
◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/5993622.html 关于UI自动化的抱怨 听过不少人这样 ...
- 【Android测试】UI自动化代码优化之路
◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/5993622.html 关于UI自动化的抱怨 听过不少人这样 ...
- 小心!做 UI 自动化一定要跨过这些坑
一 .引子 UI自动化,在移动互联网时代的今天,一直都是在各大测试社区最为火爆的一个TOPIC.甚至在测试同行面前一提起自动化,大家就会自然而然的问:“恩,你们是用的什么框架?appium?还是rob ...
随机推荐
- R3抹掉加载的DLL
R3抹掉加载的DLL 原理类似于获取Kernel32.dll加载地址,知道这个东西也是在看获取Kernel32.dll地址的时候在网上搜索学习资料,无意中看到的这个东西.这个挺有用,结合着HiJack ...
- java之泛型的使用
在java中,普通的类和方法只能用具体的类型,这对代码的限制很大,代码的可重用性大大降低. 那么如何才能让同一个类和方法使用不同类型的对象呢?在接触泛型之前我们可能会想到通过类型转换的方法来实现. p ...
- Tensorflow Probability Distributions 简介
摘要:Tensorflow Distributions提供了两类抽象:distributions和bijectors.distributions提供了一系列具备快速.数值稳定的采样.对数概率计算以及其 ...
- 想要测试Dubbo接口?测试的关键点在哪里?
Dubbo接口如何测试? 这个dubbo如何测试,dubbo接口测试什么玩意儿? RPC的有一个类型,叫Dubbo接口. 那这个接口如何测试?测试的关键点在哪里? 这个面试问题,我觉得大家可能就有 ...
- hdu 2072 1106学一波字符串分割,C语言与C++两种方法
hdu2072:题意:输出给定字符串中的单词数(一个句子中可能有两个相同的单词),这里的思想是把每个单词取出来,放入set(这个集合容器中不允许有相同的元素)中,最后输出该集合的大小即可. 现在的问题 ...
- JavaWeb——MySQL多表
内容索引 1. 多表查询 2. 事务 3. DCL 多表查询: * 查询语法: select 列名列表 from 表名列表 where.... * 准备sql # 创建部门表 CREATE TABLE ...
- multiset容器erase函数的误用
<从缺陷中学习C/C++>第3章库函数问题,本章主要介绍库函数的使用中会遇到的问题.使用库函数可以降低软件开发的难度,提高代码编写的效率.本节为大家介绍multiset容器erase函数的 ...
- [BUAA2021软工助教]结对项目-第二阶段小结
一.作业链接 结对项目-第二阶段 二.优秀作业推荐 本次博客作业虽然是简单总结,但是以下作业中都不乏有思考.有亮点的精彩内容,推荐给同学们阅读学习. 磨练,结对编程!(中) zzx 和 zzy 同学实 ...
- Beta——事后分析
事后总结 NameNotFound 团队 项目 内容 北航-2020-软件工程(春季学期) 班级博客 要求 Beta事后分析 课程目标 通过团队合作完成一个软件项目的开发 会议截图 一.设想和目标 软 ...
- java集合-哈希表HashTable
一.简介 HashTable也是一种key-value结构,key-value不允许null,并且这个类的几乎全部的方法都加上了synchronized锁,来保证并发安全,由于加了锁所以性能方面会比较 ...