第四章 平台的扩展与推广

在上一章节,我们详情介绍了接口自动化平台功能,当然不介绍具体实现。通常就是MVC结构的开发模式,根据你的编码经验和习惯,糅合开源的框架,设计你的页面组合完成相应的平台。本章介绍一下我接触到的接口自动化平台不同的设计理念。

4.1 接口自动化平台扩展

通常的接口自动化平台如我们前几章节所介绍的那样,将接口自动化测试从完全脚本化转变成界面化,降低接口自动化的成本和门槛。随着技术的发展,以及相应要求的增加,接口自动化平台的开发也出现更多方向。

一,     自动生成测试用例

虽然我们先前介绍的接口自动化测试,通过增加用例,填写相应的参数与预期结果可以生成对应的测试用例。但是,还是要我们人工去进行填写的,能不能再懒一些儿,不需要我们填写任何参数呢?

这个方法是有的,我在中国互联网测试开发大会上听到过相应的设计思想。当然了,一般在这种大会上不会介绍详细的内容,不过大体的思想还是有的:获取线上机器的访问日志,如当天的或是前一天的,自动过滤日志请求,分析出请求参数;分析相应的场景来判断检测的重点。从而生成相应的接口自动化测试用例,进而对相应的场景或是测试环境进行回归测试。测试用例可以根据需要进行保存,或是每次回归前动态生成。

在这种设计模式下,测试用例几乎不用人为来参与,相应的生成用例模块就需要非常强大。同时应该需要记录出错场景,以便进行排查。而自动生成测试用例应该不会涉及太复杂的业务场景,比较适应获取数据进行检测的情况。

二,     mock测试数据生成复杂的场景

我们在通过接口来组合复杂的业务场景的时候,通常的情况是比较复杂的。比如说,接口A如果要用到接口B的返回结果,我们就需要先通过特写的参数来使接口B返回需要的数据,从而再把返回值返回给接口A。虽然我们的接口自动化测试平台可以完成相应接口返回值的相互使用,但是还是比较复杂的。

在引入mock系统后,接口自动化测试的参数就变的简单多了。正向测试用例,通过mock线上的数据就可以生成相应的请求数据,而逆向的或是复杂业务场景的测试用例,我们可以修改相应的接口返回数据,轻松组合我们的测试用例。

缺点是需要引入第三方的mock工具或是平台,增加了自动化测试的技术和人力投入。大规模场景可以引入,小规模的接口自动化测试没有必要引入。

三,     加大数据分析功能

通常接口自动化测试平台注重接口参数的传入,返回结果的检测,而后从执行结果来查看相应的执行结果或是进行报错预警。后来随着测试开发人员技术不断完善,对平台开发提升了很多。比较说增加数据分析和监控功能等。

在接口测试用例执行的时候,记录相应的执行场景,如成功失败,返回值场景等等;而后我们可以以接口,测试用例,执行时间,执行人等等维度来进行统计和展示。现在开源的数据展示框架也非常多,如果前面我们说的Bootstrap+jquery,echart等等。所在在完成相应的图标,看板等方面成本也是比较低的,而这些儿方面能更好的展示出我们需要关注点的变化。

这就对我们测试开发人员要求更加高了,不仅仅能通过语言java, python, shell等来解决相应的功能。而且要会前端的功能,如果人家开发的测试工具或是测试平台,使用简单,界面友好,而你的还是处于直接运行脚本看日志的阶段的话,我们的优势就不那么明显了。

4.2 测试平台的推广

测试开发人员和其他做技术的人员都有一个通病:关注技术而开发完成后就不再关注自己的产品了。这就造成了我们开发了很多平台,或是工具但是使用起来并不多,究竟是什么原因呢?

(1)需求产出不正确

在开发测试平台或是测试工具的时候,往往是通过我们一个人或是自己的团队遇到了问题,然后产生出相应的需求。而在需求分析的时候,往往着眼点针对具体问题,眼界不够开阔。也许是我们测试开发人员没有产品的思路,针对一个问题开发相应的功能模块,而后再进行组合,不具备通用性,然后其他人遇到了同样的问题。拿来使用后发现不符合自己的需求,就自己开发一个相应的平台或是工具,其实大部分功能都相似。

(2)推广力度不够

我们开发出相应的平台或是工具后,功能强大,能解决不少工作中遇到的问题。于是本项目结束,交给相关人员来使用即可,而后去开发其他的东西。而其他组或是部门的人遇到了同样的问题,不知道你有这样的一个平台可以帮他们解决,要么就这样纠结下去,要么自己开发相应的平台或是工具。

(3)后期维护跟不上

任何强大的产品都不能做到一劳永逸,测试平台开发出来后,能完美地解决当时遇到的问题。可是随着时间的发展, 业务的变迁,人员的增加等因素,就会产生出不少问题,此是如果测试平台不做相应的优化,测试平台就变得越来越不好用。最终会被大家放弃,一个测试平台完成使命,退出历史平台。

4.3 总结

本章节介绍了我听到的相应接口自动化平台的扩展,当然业界还是有很多更加新颖的想法,要时常去开源社区或是其他社区去交流学习,以不断开阔自己的思路。同时介绍了影响平台使用的各方面的原因,既然开发出了相应的平台,我们就要使它能更好地为我们服务,相应的其他非开发技术方面的工作也是要跟进的。

时间: 2024-10-03 02:45:59

第四章 平台的扩展与推广的相关文章

《ECMAScript 6 入门- 第四章 数值的扩展》 —— 摘抄

1. 二进制和八进制表示法 ES6提供了二进制和八进制数值的新的写法,分别用前缀0b和0o表示. 0b111110111 === 503 // true 0o767 === 503 // true 八进制用0o前缀表示的方法,将要取代已经在ES5中被逐步淘汰的加前缀0的写法. 2. Number.isFinite(), Number.isNaN() ES6在Number对象上,新提供了Number.isFinite()和Number.isNaN()两个方法,用来检查Infinite和NaN这两个

第四章 构建LAMP网站平台、部署企业应用

防伪码:教诲如春风,师恩似海深,桃李满天下,春晖遍四方 第四章.LAMP平台部署及应用  本章主要讲解PHP运行环境的构建+部署使用phpMyAdmin+扩展实验(搭建企业网站) 一.LAMP平台概述 1.什么是LAMP 目前最为成熟的一种企业网站应用模式,可提供动态Web站点应用及开发环境 2.构成组件 Linux(提供用于支撑web站点的操作系统) Apache(功能强大.稳定性好的web服务器) MySQL(流行的开源关系数据库系统) PHP/Perl/Python(负责解释动态网页文件.

第四章

第四章 源代码的下载和编译 1.下载.编译和测试Android源代码 配置Android源代码的下载环境 ①创建一个存放下载脚本文件(repo)的目录 # mkdir  ~/bin # PATH=~/bin:$PATH ②下载repo脚本文件 # curi http://dl-ssl.google.com/dl/googlesource/git-repo/repo > -/bin/repo # chmod a+x ~/bin/repo ③创建存放Android源代码的目录 # mkdir and

第四章 跨平台图像显示库——SDL 第一节 与SDL第一次亲密接触

http://blog.csdn.net/visioncat/article/details/1596576 GCC for Win32 开发环境介绍(5) 第四章 跨平台图像显示库——SDL 第一节 与SDL第一次亲密接触 SDL,也就是 Simple DirectMedia Layer 是一个针对 声音,键盘,鼠标,遥杆,通过OpenGL的3D以及2D处理的底层跨平台函数库.她主要支持的平台有Linux, Windows, Windows CE, BeOS, MacOS, Mac OS X,

2017.06.29数据挖掘基础概念第四章

第四章39.为什么在进行联机分析处理(OLAP)时,我们需要一个独立的数据仓库,而不是直接在日常操作的数据库上进行 1.提高两个系统的性能 2.操作数据库支持多事务的并发处理,需要并发控制和恢复机制,确保一致性和事务的鲁棒性 3.两者有着不同的数据的结构.内容和用法40.什么是数据仓库 数据仓库是一种数据库,它与单位的操作数据库分别维护,数据仓库系统允许将各种应用系统集成在一起,为统一的历史数据分析提供坚实的平台,对信息处理提供支持,是一个面向主题的.集成的.时变得.非易失的数据集合,支持管理者

Shell脚本学习指南 [ 第三、四章 ] 查找与替换、文本处理工具

摘要:第三章讨论的是编写Shell脚本时经常用到的两个基本操作.第四章总共介绍了约30种处理文本文件的好用工具. 第三章 查找与替换 概括:本章讨论的是编写Shell脚本时经常用到的两个基本操作:文本查找.文本替换. 3.1  查找文本 如需从输入的数据文件中取出特定的文本行,主要的工具为grep程序.POSIX采用三种不同grep变体:grep.egrep.fgrep整合为单个版本,通过不同的选项,分别提供这三种行为模式.who | grep -F root上面使用-F选项,以查找固定字符串r

20145320《Java程序设计》第3周学习总结(第四章)

20145320<Java程序设计>第3周学习总结(第四章) 教材学习内容总结 对象(Object):存在的具体实体,具有明确的状态和行为 类(Class):具有相同属性和行为的一组对象的集合,用于组合各个对象所共有操作和属性的一种机制 从类看对象:类定义可以视为一个具有类似特性与共同行为的对象的模板,可用来产生对象 从对象看类:类的产生,是从少数实例,推广到大量相似实例的抽象化过程(abstraction) 类是对象的设计图,对象是类的实例,生成对象要先定义类 4.1 类与对象 定义类使用c

XSS的原理分析与解剖:第四章(编码与绕过)*******************未看**********************

0×01前言 很抱歉,这第四章被我推了几个月,今天是元旦难得有空,就把第四章写下.我先把主要使用的编码说下,介绍完会说下绕过. 本文建议与<杂谈如何绕过WAF>一同阅读. 0×02 URL编码 URL只允许用US-ASCII字符集中可打印的字符(0×20-0x7x),其中某些字符在HTTP协议里有特殊的意义,所以有些也不能使用.这里有个需要注意的,+加号代表URL编码的空格,%20也是. URL编码最长见的是在用GET/POST传输时,顺序是把字符改成%+ASCII两位十六进制(先把字符串转成

《ECMAScript 6 入门- 第三章 字符串的扩展》 —— 摘抄

1. codePointAT方法 JavaScript内部,字符以UTF-16的格式储存,每个字符固定为2个字节.对于那些需要 4个字节储存的字符(Unicode编号大于0xFFFF的字符),JavaScript会认为它们是两个字符.ES6提供了codePointAt方 法,能够正确处理4个字节储存的字符,返回一个字符的Unicode编号. codePointAt方法是测试一个字符由两个字节还是由四个字节组成的最简单方法. function is32Bit(c) { return c.codeP