Robot Framework自动化测试框架核心指南-如何做好自动化测试平台框架的设计
自动化测试如果需要能高效快速的支撑软件项目的测试,项目的快速迭代以及上线,除了以上我们介绍的需要许多的Lib来支持以及需要高效的去编写自动化测试案例外,还需要一个好的自动化测试框架平台来支撑我们的自动化测试案例的执行以及分析,自动化测试平台一般需要解决测试案例执行任务的创建,任务的管理,任务的调度,测试案例的解析,测试案例分别根据不同的测试类型分发给不同的测试工具或者测试Lib库进行执行,并且需要对执行的数据进行分析,得出质量数据,然后才好给出对应的测试报告分析数据给测试经理,项目经理来辅助持续的改善项目版本的质量,下图是一个自动化测试平台框架的架构设计图。
本文作者:张永清,转载请注明出处:https://www.cnblogs.com/laoqing/p/13622088.html 节选自《Robot Framework 自动化测试框架核心指南》
框架图中的自动化测试平台框架主要包含了4个部分,自动化测试案例编写的IDE工具,自动化测试案例的执行,测试任务的管理和监控,测试案例执行后的数据分析。
一个通用的自动化测试案例编写的IDE工具一般需要包含的功能如下图所示。
本文作者:张永清,转载请注明出处:https://www.cnblogs.com/laoqing/p/13622088.html 节选自《Robot Framework 自动化测试框架核心指南》
友好的用户案例编写界面,通常一般可以表格或者表单的形式,比如RobotFramework,就是典型的表格界面,也可以用Eclipse的插件式开发实现这一需求。
在平台中,一个自动化测试案例的执行一般包括如下图中的基本步骤,最核心的就是将解析的案例数据分发出去给不同的Lib库去执行。
本文作者:张永清,转载请注明出处:https://www.cnblogs.com/laoqing/p/13622088.html 节选自《Robot Framework 自动化测试框架核心指南》
在做数据分析时,可以借用很多现在主流的大数据组件,如下图所示,数据分析通常包括实时数据分析和离线数据分析,分析中我们还会用到很多消息队列中间件,比如kafka,数据明细可以采用elasticsearch来进行存储,这和elasticsearch本身的特点有关系,可以支持大数据的存储以及方便以后我们来做全文检索。
平台框架图中包含的组件如下表所示。
IDE |
RIDE,eclipse插件,idea插件 |
测试案例版本服务器 |
svn,git等版本控制服务器 |
自动化测试案例数据 |
自动测试案例文件 |
案例解析器 |
负责自动化测试案例文件数据的读取和解析,翻译成自动化测试工具或者自动化测试Lib库可以执行的命令 |
资源监控和 |
负责各个执行器,案例解析器以及自动化工具服务器的资源监控和资源管理 |
任务调度器 |
调度自动化测试执行任务在多个节点上的执行 |
自动化任务管理器 |
接受自动化任务的提交,自动化任务的管理(任务启用,任务停用,任务新增,修改,删除等) |
告警 |
任务执行异常,超时等,自动产生告警 |
短信平台 |
告警短信发送,短信接收 |
邮件服务器 |
接收生成的测试报告或者告警短信,然后邮件发送给对应的相关人员 |
Kafka |
执行日志数据的缓存存储 |
Elasticsearch |
测试案例执行的日志明细数据存储 |
Kibana |
是一个开源的分析和可视化平台,旨在与 Elasticsearch 进行结合。Kibana 提供了搜索、查看和与存储在 Elasticsearch 索引中的数据进行交互的功能。开发者或运维人员可以轻松地执行高级数据分析,并在各种图表、表格和地图中可视化数据。 |
离线分析 |
负责对日志定时做离线分析处理,比如通过hive等大数据方式进行数据归类分析 |
实时分析 |
将日志数据,通过大数据实时数据流的分析,提取案例执行过程的相关日志数据做实时的分析和统计,常用的实时流分析工具有spark,storm,flink等。 |
下图是自动化平台框架设计的一个分层结构图。
我们对常见的自动化测试架构思想做了一个如下的对比,如下表所示。
数据驱动测试 |
数据驱动测试的的思想是将我们的自动化测试脚本和测试数据放在共同的测试架构中,思想是提供可重用的测试逻辑,这样来做的目的是减少测试维护的工作量以及便于改善测试案例的覆盖率,测试案例需要输入的测试数据和测试完成后的测试结果数据都会被存储同一个数据库或者数据源中,并且将测试的数据和测试逻辑分开,这样测试数据放生了变化时,不会影响到我们的测试逻辑。并且使得同一套测试逻辑可以针对多种数据来进行测试,尽量来提高测试逻辑的使用效率和复用效率。 |
模块驱动测试 |
模块驱动测试的思想是使用独立的脚本或者代码来对应每一个待测试的模块单元和功能,模块驱动测试引入的是编程语言中的面向对象编程中的抽象和模块独立封装的思想,即将测试代码和每一个测试模块进行解耦,这样可以减低自动化测试脚本或者自动化测试代码的维护成本,同时也增强了可扩展性,测试的执行者不需要知道单元模块的内部实现,只需要调用单元模块的对外提供的抽象接口方法即可,单元模块的功能需求发生变化时,只需要修改该单元模块的内部实现,对外的提供的抽象接口方法依然可以做到不发生变化。 |
关键字驱动测试 |
RobotFramework就是一种典型的关键字驱动测试的框架模式,关键字驱动测试通常也被认为是表格驱动测试,通过在表格中调用关键字来实现自动化测试,这种设计思想一般会将自动化测试拆分为设计和实现两个不同的阶段,RedWoodHQ自动化测试工具框架也是这种思想来实现,设计时需要尽量考虑关键字的通俗易懂以及通用性,也就是可以在不同的测试案例或者场景中可以高效的复用。关键字驱动测试的优点就在于自动化测试案例的编写者不需要对脚本语言有非常深入的了解就可以完成自动化测试案例的编写。 |
混合自动化测试 |
混合自动化测试是上面几种自动化测试思想的综合使用,关键字驱动测试和模块驱动测试这两种在很多情况下就可以完美的结合起来使用,比如我们可以使用RobotFramework提供的自定义用户关键字来对单元模块业务进行封装,封装完成后,再提供一个新的用户自定义关键字出来,新的用户自定义关键字就可以认为是一个抽象的接口。 |
基于模型测试 |
基于模型测试的思想一般用的较少,一般只能适合于特定的也是基于这种模型设计思想的系统,通常的情况下,这一测试模型是全部或者部分从待测试的软件系统的功能模型中提取出来的。在测试模型中描述了待测试系统的抽象行为,因此从测试模型中也可以派生出功能测试案例。 |
行为驱动开发 |
行为驱动开发是一种敏捷开发的思想,Behavior Driven Development使用简单的,特定于领域的脚本语言(DSL)将结构化自然语言语句转换为通俗易懂的可执行测试,行为驱动开发的根基是一种“通用语言”,该语言通俗易懂,这种通用语言同时被客户和开发者用来定义系统的行为,Cucumber 就是一种行为驱动开发的自动化测试工具。 |
备注:本文内容摘选自作者自己出版的Robot Framework自动化测试框架核心指南 一书。
关于自动化测试的更多内容,请关注:
Robot Framework自动化测试框架核心指南京东官方购买
Robot Framework自动化测试框架核心指南电子版试读
Robot Framework自动化测试框架核心指南天猫官方旗舰店购买
Robot Framework自动化测试框架核心指南当当网购买
Robot Framework自动化测试框架核心指南 作者签名版本购买
相关博文汇总:
RobotFramework下的http接口自动化Create Http Context关键字的使用
RobotFramework下的http接口自动化Get关键字的使用
RobotFramework下的http接口自动化post关键字的使用
RobotFramework下的http接口自动化Get Response Body关键字的使用
RobotFramework下的http接口自动化Get Response Status 关键字的使用
RobotFramework下的http接口自动化Get Response header 关键字的使用
RobotFramework下的http接口自动化Set Request Header 关键字的使用
RobotFramework下HttpLibrary库其它关键字
RobotFramework下的http接口自动化Set Request Body 关键字的使用
RobotFramework下的http接口自动化Follow Response关键字的使用
RobotFramework自动化测试框架的基础关键字(一)
RobotFramework自动化测试框架的基础关键字(二)
RobotFramework自动化测试框架的基础关键字(三)
RobotFramework自动化测试框架的基础关键字(四)
RobotFramework自动化测试框架的基础关键字(五)
RobotFramework自动化测试框架-移动手机自动化测试AppiumLibrary介绍
RobotFramework自动化测试框架-移动手机自动化测试Open Application关键字的使用
RobotFramework自动化测试框架-移动手机自动化测试AppiumLibrary库其它的常见自动化关键字
RobotFramework自动化测试框架-移动手机自动化测试Input Text和Click Button关键字的使用
RobotFramework自动化测试框架-移动手机自动化测试Clear Text关键字的使用
RobotFramework自动化测试框架-移动手机自动化测试Click Element关键字的使用
RobotFramework自动化测试框架-移动手机自动化测试Click A Point关键字的使用
RobotFramework自动化测试框架-移动手机自动化测试Click Element At Coordinates关键字的使用
RobotFramework自动化测试框架-移动手机自动化测试Get Element Location关键字的使用
RobotFramework自动化测试框架-移动手机自动化测试Get Network Connection Status和Set Network Connection Status关键字的使用
RobotFramework自动化测试框架-移动手机自动化测试Element Attribute Should Match关键字的使用
RobotFramework自动化测试框架-DatabaseLibrary库的使用(对数据库的操作)
RobotFramework自动化测试框架-使用Python编写自定义的RobotFramework Lib
RobotFramework自动化测试框架-Selenium Web自动化(-)-Open Browser和Close Browser
RobotFramework自动化测试框架-Selenium Web自动化(二)关于在RobotFramework中如何使用Selenium很全的总结(上)
RobotFramework自动化测试框架-MongoDBLibrary库的使用
Robot Framework自动化测试框架核心指南-如何做好自动化测试平台框架的设计的更多相关文章
- 三年磨一剑,robot framework 自动化测试框架核心指南,真正讲透robot framework自动化测试框架(笔者新书上架)。
序 关于自动化测试的工具和框架其实有很多.自动化测试在测试IT行业中扮演着越来越重要的角色,不管是在传统的IT行业还是高速发展的互联网行业或是如今的大数据和大热的人工智能领域,都离不开测试,也更加离不 ...
- Robot Framework自动化测试框架核心指南-如何使用Java编写自定义的RobotFramework Lib
如何使用Java编写自定义的RobotFramework Lib 本文包括2个章节 1. Robot Frdamwork中如何调用java Lib库 2.使用 java编写自定义的Lib 本文作者为: ...
- Robot Framework使用Phantomjs进行无界面UI自动化测试
Robot Framework 是一款关键字驱动的验收自动化测试框架,现在在国内使用的越来越广泛了.一种通用的Web UI自动化测试解决方案是Robot Framework+Selenium2Libr ...
- Robot Framework测试框架用例脚本设计方法
Robot Framework介绍 Robot Framework是一个通用的关键字驱动自动化测试框架.测试用例以HTML,纯文本或TSV(制表符分隔的一系列值)文件存储.通过测试库中实现的关键字驱动 ...
- Robot Framework自动化测试的应用
Robot Framework自动化测试的应用(一) 最近尝试用Robot Framework代替之前全部采用python实现测试case,开始对Robot Framework进行些了解学习. 1. ...
- 2小时入门Robot Framework
1.介绍 1.1.介绍Robot Robot Framework是一个基于关键字驱动的自动化测试框架.通过该框架,测试人员可使用python封装关键字,并在非代码环境下使用关键字构建可被执行的测试用例 ...
- Robot Framework简介
概述 Robot Framework是一个通用的关键字驱动自动化测试框架.测试用例以HTML,纯文本或TSV(制表符分隔的一系列值)文件存储. 通过测试库中实现的关键字驱动被测软件.Robot Fra ...
- 【Robot Framework 介绍】总纲
Robot Framework是一个由python构建的的开源的自动化测试框架,现在版本还在不停的更新中.由于它开源性,网上有大量的第三方接口和很多资料.下面提供两个比较官方的链接,有兴趣的同学可以直 ...
- 《转》Robot Framework 的安装配置和简单的实例介绍
Robot Framework 介绍 Robot Framework 是一款基于 Python 的功能自动化测试框架.它具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进 ...
随机推荐
- excel-格式处理
问题[1]:将excl中数据导出txt,并且每列之间距离一个空格 在C1(任意空列) 输入=A1&" "&B1" "中间是一个半角英文空格下拉 ...
- Android Studio连接数据库实现增删改查
源代码如下: DBUtil.java: package dao; import java.sql.Connection; import java.sql.DriverManager; import j ...
- Setup Factory 9 打包安装程序过程中提示安装.net4.5、并启用md5加密算法
1.在Before Installing选项卡中选择Ready to Install,点击Edit进入编辑窗口,切到最后一个选项卡Actions,把判断内容复制进去 -- These actions ...
- 某大型企业ospf面试题分析(含路由策略和路由过滤,及双点双向重发布)
面试问题背景 本面试题来自国内最大通信技术公司之一,央企,有很多金融网项目. 了解行业的同学,一定知道事哪个企业. 上面试问题(取自百哥收集整理的面试总结大全,关注百哥CSDN或知乎,不定期分享名企面 ...
- 基于小程序云Serverless开发微信小程序
本文主要以使用小程序云Serverless服务开发一个记事本微信小程序为例介绍如何使用小程序云Serverless开发微信小程序.记事本小程序的开发涉及到云函数调用.云数据库存储.图片存储等功能,较好 ...
- C++ 不具有继承关系的类之间的显式,隐式转换 2013-07-11 15:41
好久没有写blog了,今天在学习c#的时候看到某一章节 讲类的隐式与显式转换.特此留笔,以供后续参考之用. 关于显式,隐式转换有些争论,说什么不建议隐式转换.但是个人认为非必要,如果有良好的基础书写基 ...
- Oracle数据泵导出使用并行参数,单个表能否真正的并行?
对于Oracle 数据泵expdp,impdp是一种逻辑导出导入迁移数据的一个工具,是服务端的工具,常见于DBA人员使用,用于数据迁移.从A库迁移至B库,或者从A用户迁移至B用户等. 那么有个疑问? ...
- 目录扫描、Nmap
一.基本定义 1.目录扫描: 扫描站点的目录,寻找敏感文件(目录名.探针文件.后台.robots.txt.备份文件等). 2.目录:站点结构,权限控制不严格. 3.探针文件:服务器配置信息,例:php ...
- 关于haar特征的理解及使用(java实现)
Haar特征原理综述Haar特征是一种反映图像的灰度变化的,像素分模块求差值的一种特征.它分为三类:边缘特征.线性特征.中心特征和对角线特征.如下所示: Haar-like矩形特征拓展 Lienha ...
- Jmeter 常用函数(5)- 详解 __property
如果你想查看更多 Jmeter 常用函数可以在这篇文章找找哦 https://www.cnblogs.com/poloyy/p/13291704.html 作用 读取 Jmeter 属性 语法格式 $ ...