一.前言
测试平台可以理解为一个测试管理平台,主要用WEB来进行实现,方便其他人统一工作,方便公司统一管理,可以提高公司效率。该平台主要是为测试服务,但不仅为测试提供服务。一切的出发点都是为了提高工作效率,减少公司成本,为公司提供一个更加愉快的工作环境。
二.为什么需要测试平台
目前,很多小公司或者较大一点的公司,测试完全是基于功能测试,如果只是进行功能测试则可以直接使用开源的项目质量管理软件(例如:禅道)即可。如果进行接口、UI自动化测试、性能方面的测试,则可有考虑自己搭建测试平台。下面就以接口测试为例,接口测试一般抓包后需要进行消息体的构造,有人喜欢用postman工具直接保存接口,有人喜欢直接使用fiddler等其他的工具,这样不同的测试人员各自工具不统一、各自用例也不统一。前者新人来了接手工作可能需要学习新的工具,虽然时间短但也是成本的消耗,后者如果本地机器出现了问题可能所有用例都没有了。既消耗了公司的成本又导致部门管理不规范。
如果搭建一个统一的平台就可以解决上述问题,例如直接在WEB界面上直接将消息体复制进来即可完成接口测试并添加额外的数据校验功能,各个接口各个场景测试通过后直接将内容保存到数据库中。这样,1是代码集中统一管理了;2是要求低,对操作人员低,任何人只需要按照格式进行消息体的构造就可以进行接口测试;3是所有人只要有相应的权限即可共享用例,方面测试人员相互交流学习,也可发现问题并完善用例;4是提高了工作效率;5是相比较已有的开源工具,可以随意扩展。
文章以接口测试为例简述搭建测试平台的思路。我们知道,接口是程序的最重要的一部分,而接口测试相对于性能和功能来说可能也是比较简单的。我们只需要理解接口协议,看懂接口文档,熟悉用户使用场景,理解用户的表面需求和隐性需求,我们就可以设计出各种各样的接口测试用例,并可以与开发工作同时进行。
三.怎么做
既然是自己搭建平台进行接口测试,个人认为WEB是最好的选择,我们只需要部署好服务端,客户端可以直接访问不用像其他应用程序一样需要在每台客户端安装其他软件。
使用HTML/CSS铺一个界面,保证可以输入URL、RequestBody及对应的请求方式即可,这样后台接受前端传来的数据进行解析并拼接(后台的处理主要看前端传参的形式,最好是事先定义好规范)。后端将处理好的参数发送到相应的服务器,并接收响应的返回值返回给前面并在界面上显示即可。这样一个最简单的接口测试流程就完成了。如图所示:
关于自动化测试平台搭建的初步构想_第1张图片
四.如何完善
前面只是一个简单的接口测试的过程,只能说可以完成接口测试功能,但是和其他测试工具相比并不能体现出平台的优势,如何保证平台的优势呢?
接口返回后,必须需要自动进行相关参数的校验,1是返回状态或返回值的校验;2是相关数据库数据的校验;这些工作均可以在页面完成,如果是返回状态或返回值的校验可以直接用一个json格式来指定需要校验的字段及对应的值(值可以是变量)。如果是需要校验数据库则可以通过表单的形式来完成,表单内需要校验的值可以是任意的,例如:可以是入参的值;可以入参处理后的值;可以使用正则来校验数据库值的类型(有些要求有值即可,有些要求是字母、数字;有些要求包含某些指定的值;可以指定查询条件(where或in等等)……
这样,只需要定义好格式就可以完成从请求到返回结果校验的全过程了。
五. 如何扩展
如果只包含接口测试就称之为测试平台,则有些大题小做了。个人认为,测试平台既能通过WEB页面完成相关的测试还应该能定时自动运行指定的用例(当人多,机器自然不足时,可以指定用例在半夜来自动跑用例);可以在代码发布之前进行检测代码的质量,只有当代码只能满足指标时才允许发布;可以将各个项目的公用测试工具(例如mock消息)都可以包含进平台中,这样所有人都可以直接使用…
关于自动化测试平台搭建的初步构想_第2张图片
只有想不到的,没有做不到的。前提是成本低、效率高,不能只是为了平台化而刻意平台。
六.欢迎关注作者公众号
关于自动化测试平台搭建的初步构想_第3张图片