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 ...
随机推荐
- Java对象内存分布
[deerhang] 创建对象的四种方式:new关键字.反射.Object.clone().unsafe方法 new和反射是通过调用构造器创建对象的,创建对象的时候使用invokespecial指令 ...
- Kafka源码分析(二) - 生产者
系列文章目录 https://zhuanlan.zhihu.com/p/367683572 目录 系列文章目录 一. 使用方式 step 1: 设置必要参数 step 2: 创建KafkaProduc ...
- 《Spring 手撸专栏》第 2 章:小试牛刀(让新手能懂),实现一个简单的Bean容器
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 上学时,老师总说:不会你就问,但多数时候都不知道要问什么! 你总会在小傅哥的文章前言 ...
- C++ primer plus读书笔记——第9章 内存模型和名称空间
第9章 内存模型和名称空间 1. 头文件常包含的内容: 函数原型. 使用#define或const定义的符号常量. 结构声明. 类声明. 模板声明. 内联函数. 2. 如果文件名被包含在尖括号中,则C ...
- 详解Redis中两种持久化机制RDB和AOF
redis是一个内存数据库,数据保存在内存中,但是我们都知道内存的数据变化是很快的,也容易发生丢失.幸好Redis还为我们提供了持久化的机制,分别是RDB(Redis DataBase)和AOF(Ap ...
- 【敏杰开发】Beta阶段事后分析
[敏杰开发]Beta阶段事后分析 设想和目标 Q 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们达到目标了么(原计划的功能做到了几个? 按照原计划交付时间交付 ...
- Shell $?获取函数返回值或者上一个命令的退出状态
Shell $?获取函数返回值或者上一个命令的退出状态 来自:互联网 时间:2021-01-12 阅读:2 $? 是一个特殊变量,用来获取上一个命令的退出状态,或者上一个函数的返回值. 所谓退出状态, ...
- 1.消息队列(queue)
版权声明:本文为博主原创文章,未经博主允许不得转载.https://www.cnblogs.com/Dana-gx/p/9724545.html 一.基本概念 IPC:Linux下的进程通信.包括6种 ...
- 进入单用户模式修改root密码
进入单用户模式修改root密码 1.进入引导菜单界面2.按e进入grub,在linux或linux16那行结尾加上 rw init=/bin/bash,按Ctrl+x或F103.进入bash-4.3# ...
- gcc 版本
$ gcc --versiongcc (Ubuntu 5.4.0-6kord1~16.04.4k2) 5.4.0 20160609Copyright (C) 2015 Free Software Fo ...