一、背景

   公司分了几条业务线,除了不同业务线开发使用的技术栈不一样外,测试同学的技术栈也不一致,技术能力参差不齐。这样导致有的人用 java,有的用 python,有的用 postman,有的用 Jmeter;虽然都能达到目的,但自动化的复用性和可维护性受到极大挑战。而且不管是使用哪种方式做接口测试,都会有一些公共的东西需要提取。介于以上原因,决定设计一套属于公司共用的测试平台;于是就有了我们的云筑网天眼质量平台。

二、平台使命

   推出测试平台不仅是为了解决技术栈或工具的一统江湖,更多是为了提高组装自动化测试脚本的效率、持续集成迭代测试工具、DevOps 闭环、推广测试平台、提高测试部门在整个公司的影响力!

三、效果展示

执行计划:

执行结果:

点击对应 case,可以查看 case 的每个前后置操作,步骤的执行情况

点击详情,可以查看每个步骤的详情请求数据,请求 url,header,body 和返回,方便定位问题

四、技术选型

前端:
   html+css+js:对前端基础要求较高,效率较低。
   vue:上手较快,其以模板语法为基础,以数据绑定和组件化开发为核心,摆脱繁琐的 DOM 操作。
   最终选择前端使用 vue 框架,搭配使用广泛的 elementui 组件库。
后端:
   Django / Springboot
   二者框架均可以有效支撑平台后端开发,区别和特点就不赘述。由于公司后端大部分使用的技术栈为 Java,想要提高测试人员对于 Java 代码的走读能力以及未来单元测试的能力;
   最终选择 Spring boot + Mybatis 作为平台后端开发框架。

五、平台简介

   天眼质量平台目前包含用户管理,项目组管理,项目管理,接口管理,用例管理,测试计划,环境配置,数据库配置,测试报告等模块。
   模块关系:业务线 == 项目组 --> 项目 --> 接口 --> 用例。测试计划关联需要执行的测试用例,执行测试计划生成测试报告。

六、平台亮点

七、平台功能展示

1. 用户管理

用户用户的增删改查,每个新增用户会分配一个或多个项目组,用户只有其所在项目组下的操作权限

2.项目组管理与项目管理

公司不同的业务线对应不同的项目组,不同的项目组下根据具体业务建立不同的项目,用于挂靠接口与用例

3.数据库配置

支持 MySQL 与 sqlserver 类型的数据库连接,用户用例的数据库前后置操作,数据库变量提取,sql 断言等场景,
数据库连接具有测试连接的调试功能,可以用于检测当前数据库连接信息或者数据库状态之后正确可用。

4.环境配置

用例的执行是在不同的环境下执行,测试平台均予以支持;于是需要在平台上进行环境相关配置,比如:dev、qa、pre、prd
不同的系统对应的域名会有所差别,比如云筑商城有:采购商中心、供应商中心、运营平台,对应的域名不一样,需要在环境配置中进行管理,以便于接口调用域名的拼接!
在执行用例时,会根据计划所选择的环境(dev、qa 等)信息和用例关联接口的所属平台定位到具体的环境信息,用于用例执行。

5.接口管理

作用:统一管理所有接口信息,包含:名称、路径、接口所属项目服务、协议类型、请求方法、header 管理、参数管理等。
新建接口时,所有接口信息都可以根据基础信息配置获取,用户直接选择。

管理请求头、管理参数(支持 form 表单和 json 两种方式)

保存接口前可以直接根据录入示例参数进行调试,默认使用所属项目及服务的 qa 环境进行调试。

6.用例管理

作用:维护接口自动化用例。
用例结构主要包括:前置处理(执行 SQL,准备数据、提取数据)、测试步骤(调用对应的接口)、后置处理(执行 SQL,还原数据、提取数据)

前后置处理的时候支持调试 SQL,提取参数及使用参数:

测试步骤支持执行本接口,也可以选择其他接口作为基础:例如订单确认接口的测试,可以将第一步设置为执行下单接口,第二步再去进行确认;另外测试步骤支持调试(默认使用 qa 环境配置进行);
调试接口返回值:

支持对接口执行结果进行提取用于步骤间的参数前后关联,且提供调试功能可以实时查看提取结果;

支持返回值断言和数据库断言两种断言方式,均提供调试功能可以实时查看实际提取结果;

7.测试计划

通过执行测试计划来批量执行测试用例。创建测试计划会要求选择测试环境(dev、qa、pre、prd)

8. 测试报告

查看计划的总体执行情况,测试用例的通过率和总耗时。

点击对应 case,可以查看 case 的每个前后置操作,步骤的执行情况

点击详情,可以查看每个步骤的详情请求数据,请求 url,header,body 和返回,方便定位问题

八、后期规划

质量数据看板,直观量化开发质量和测试质量(后续会介绍)
接入公司内部研发工具生态链,实现 DevOps 闭环
支持从 swagger 导入接口,并且记录和展示不同版本的差别,解决前端开发与测试对于接口文档改动追踪的痛点
集成性能测试,实现在线编写压测脚本,自动按需调度负载机发压和服务器性能监控
功能测试用例、计划、bug 等支持,打造公司完整的测试链路平台

由于测试平台的前后端搭建篇幅较大,本文中仅介绍了平台的功能及要解决的问题,暂未展示代码;希望能给大家带来一些搭建测试平台的灵感和思路,也欢迎各位大佬拍砖提建议,不断完善我们的质量平台。

下一篇我们将介绍如何从 0 到 1 去搭建一个属于自己的测试平台,敬请期待!


↙↙↙阅读原文可查看相关链接,并与作者交流