博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
持续集成之测试自动化
阅读量:6760 次
发布时间:2019-06-26

本文共 1355 字,大约阅读时间需要 4 分钟。

img_3bc49a573e5fdad0e83d40c09767f938.png
continuous integration pipeline

背景介绍

持续集成(Continuous Integration)是Devops理念的一种实践过程,同时也是敏捷开发的具体表现形式。除了持续集成,还有持续交付(Continuous Delivery),持续部署(Continuous Deployment)等。这里我们着重介绍持续集成过程中的测试自动化(Test Automation),如果测试没有实现自动化的话,那么整个持续集成是不完善的,同时也不是高效的。因此自动化测试是持续集成过程中的重要一环。

img_20214e18df1f8d05aed30a6974d50b55.png
devops

测试自动化

自动化测试(Automated Test),很多团队都在做,但是往往效果不明显。究其原因还是对自动化测试的理解误区, 以为有了自动化后,就不需要手工测试了,因此将一些不适合做自动化的测试用例进行自动化,导致了投入产出比过高。同时,由于缺乏好的统一的测试框架支持,自动化测试脚本编写的复杂度过高,维护性差,耗费了测试人员大量的精力来编写和维护自动化测试用例。

img_914877290de78d7a85c86ca11917ad0a.png
Test Tools

基于此,我们在自动化测试实践过程中,选择了一款验收测试自动化测试框架Robot Framework,来作为我们的底层核心框架。同时基于RF框架,构建我们整个可维护性可扩展性的自动化测试套件架构。如下所示:

img_380f033fb248ca024d929ed49eef128e.png
Acceptance Test Suite

这个自动化测试套件架构具体分为三个大层,八个小层。我们分别来介绍:

平台层

平台层, 主要是提供测试用例运行环境,运行库的。对测试用例屏蔽了具体的底层技术细节,同时提供了一个统一的测试用例编写语法。

平台层,主要包括测试框架层,和测试库层。

测试框架层

测试框架层,我们选择Robot Framework 来作为基础框架,负责测试用例的解析,测试用例的执行,测试监控以及测试报告管理。也可以选择其他框架如Cucumber或者是TestNG等。

测试库层

测试库层,主要是与实际被测对象进行交互的工具封装层。如对Web测试工具Selenium的封装层Selenium2Lbirary,对接口测试工具requests的封装层RequestsLibrary等等。

资源层

资源层,主要是为测试用例提供资源的,如用户自定义的关键字资源,变量资源或者其他资源类型。这里重点关注关键字资源。

关键字层

关键字在资源层又被划分成三层,低阶关键字层,中阶关键字层,高阶关键字层。之所以进行这样的分层,主要是为了实现业务的分离,和用例的可维护性,可扩展性。

三层关键字在不同的测试对象上又可以有不同的表现方式,如针对Web测试对象,表现为页面对象层,页面逻辑层,业务流程层。

用例层

用例层,主要是测试套件和测试用例。概念比较明晰,不作具体介绍。

测试执行

为了能够使我们的自动化测试快速,稳定的运行,我们基于Docker搭建了一套分布式测试执行环境。如下图所示:

img_5f96f6485bc49587d0a606c67c0e3c4b.png
Test Environment In Docker

之所以用Docker来运行测试环境,是为了实现测试环境的独立,确保测试过程不受到系统环境影响。

img_77bf9d04445bd709e1a97a3fe0f83254.gif
example of CD-pipeline

帮助

  • 关于Selenium集群搭建请参考 ,
  • 关于Robot Framework介绍请参考

转载地址:http://iwdeo.baihongyu.com/

你可能感兴趣的文章
ASP.NET中 RadioButtonList(单选按钮组)的使用
查看>>
SESSION 丢失
查看>>
DES可逆加解密
查看>>
图解Undo原理
查看>>
Kinect for Windows SDK V1.7 发布
查看>>
JAVA中的参数按值传递与按引用传递
查看>>
与Recommender System相关的会议及期刊
查看>>
如何理解ip路由和操作linux的路由表
查看>>
WCF的几种寄宿方式 ( 转)
查看>>
数字数据fzu 2120 数字排列
查看>>
ORACLE 数据库 SQL 转换 只取 年和月
查看>>
区间查询[2009国家集训队]小Z的袜子(hose)
查看>>
Android之使用微信开放api (三)---注册与反注册应用到微信
查看>>
我是怎样看待微博的
查看>>
论《我是如何安慰女友的》
查看>>
nullnull用宏定义swap(x,y)
查看>>
【Javascript】类,封装性 -- 1
查看>>
Mono for Android安装配置破解
查看>>
uploadfy 常见问题收集
查看>>
WPF----数据绑定
查看>>