标签:模块 人力 没有 产生 size shel java 测试开发 优化
在上一章节,我们详情介绍了接口自动化平台功能,当然不介绍具体实现。通常就是MVC结构的开发模式,根据你的编码经验和习惯,糅合开源的框架,设计你的页面组合完成相应的平台。本章介绍一下我接触到的接口自动化平台不同的设计理念。
通常的接口自动化平台如我们前几章节所介绍的那样,将接口自动化测试从完全脚本化转变成界面化,降低接口自动化的成本和门槛。随着技术的发展,以及相应要求的增加,接口自动化平台的开发也出现更多方向。
一, 自动生成测试用例
虽然我们先前介绍的接口自动化测试,通过增加用例,填写相应的参数与预期结果可以生成对应的测试用例。但是,还是要我们人工去进行填写的,能不能再懒一些儿,不需要我们填写任何参数呢?
这个方法是有的,我在中国互联网测试开发大会上听到过相应的设计思想。当然了,一般在这种大会上不会介绍详细的内容,不过大体的思想还是有的:获取线上机器的访问日志,如当天的或是前一天的,自动过滤日志请求,分析出请求参数;分析相应的场景来判断检测的重点。从而生成相应的接口自动化测试用例,进而对相应的场景或是测试环境进行回归测试。测试用例可以根据需要进行保存,或是每次回归前动态生成。
在这种设计模式下,测试用例几乎不用人为来参与,相应的生成用例模块就需要非常强大。同时应该需要记录出错场景,以便进行排查。而自动生成测试用例应该不会涉及太复杂的业务场景,比较适应获取数据进行检测的情况。
二, mock测试数据生成复杂的场景
我们在通过接口来组合复杂的业务场景的时候,通常的情况是比较复杂的。比如说,接口A如果要用到接口B的返回结果,我们就需要先通过特写的参数来使接口B返回需要的数据,从而再把返回值返回给接口A。虽然我们的接口自动化测试平台可以完成相应接口返回值的相互使用,但是还是比较复杂的。
在引入mock系统后,接口自动化测试的参数就变的简单多了。正向测试用例,通过mock线上的数据就可以生成相应的请求数据,而逆向的或是复杂业务场景的测试用例,我们可以修改相应的接口返回数据,轻松组合我们的测试用例。
缺点是需要引入第三方的mock工具或是平台,增加了自动化测试的技术和人力投入。大规模场景可以引入,小规模的接口自动化测试没有必要引入。
三, 加大数据分析功能
通常接口自动化测试平台注重接口参数的传入,返回结果的检测,而后从执行结果来查看相应的执行结果或是进行报错预警。后来随着测试开发人员技术不断完善,对平台开发提升了很多。比较说增加数据分析和监控功能等。
在接口测试用例执行的时候,记录相应的执行场景,如成功失败,返回值场景等等;而后我们可以以接口,测试用例,执行时间,执行人等等维度来进行统计和展示。现在开源的数据展示框架也非常多,如果前面我们说的Bootstrap+jquery,echart等等。所在在完成相应的图标,看板等方面成本也是比较低的,而这些儿方面能更好的展示出我们需要关注点的变化。
这就对我们测试开发人员要求更加高了,不仅仅能通过语言java, python, shell等来解决相应的功能。而且要会前端的功能,如果人家开发的测试工具或是测试平台,使用简单,界面友好,而你的还是处于直接运行脚本看日志的阶段的话,我们的优势就不那么明显了。
测试开发人员和其他做技术的人员都有一个通病:关注技术而开发完成后就不再关注自己的产品了。这就造成了我们开发了很多平台,或是工具但是使用起来并不多,究竟是什么原因呢?
(1)需求产出不正确
在开发测试平台或是测试工具的时候,往往是通过我们一个人或是自己的团队遇到了问题,然后产生出相应的需求。而在需求分析的时候,往往着眼点针对具体问题,眼界不够开阔。也许是我们测试开发人员没有产品的思路,针对一个问题开发相应的功能模块,而后再进行组合,不具备通用性,然后其他人遇到了同样的问题。拿来使用后发现不符合自己的需求,就自己开发一个相应的平台或是工具,其实大部分功能都相似。
(2)推广力度不够
我们开发出相应的平台或是工具后,功能强大,能解决不少工作中遇到的问题。于是本项目结束,交给相关人员来使用即可,而后去开发其他的东西。而其他组或是部门的人遇到了同样的问题,不知道你有这样的一个平台可以帮他们解决,要么就这样纠结下去,要么自己开发相应的平台或是工具。
(3)后期维护跟不上
任何强大的产品都不能做到一劳永逸,测试平台开发出来后,能完美地解决当时遇到的问题。可是随着时间的发展, 业务的变迁,人员的增加等因素,就会产生出不少问题,此是如果测试平台不做相应的优化,测试平台就变得越来越不好用。最终会被大家放弃,一个测试平台完成使命,退出历史平台。
本章节介绍了我听到的相应接口自动化平台的扩展,当然业界还是有很多更加新颖的想法,要时常去开源社区或是其他社区去交流学习,以不断开阔自己的思路。同时介绍了影响平台使用的各方面的原因,既然开发出了相应的平台,我们就要使它能更好地为我们服务,相应的其他非开发技术方面的工作也是要跟进的。
标签:模块 人力 没有 产生 size shel java 测试开发 优化
原文地址:http://www.cnblogs.com/eagleking0318/p/7235101.html