美文网首页java 设计测试方案
接口自动化测试平台开发那些事2(架构)

接口自动化测试平台开发那些事2(架构)

作者: Dodol | 来源:发表于2019-02-09 18:27 被阅读240次

    开发工作的第一步就是需求确认了,类似企业级开发中,一般需要给出需求说明书和原型图,这里就不做那么详细的叙述了,撸起袖子直接干。

    需求

    基本上按照如下图划分成几个大的模块,主要有用户项目测试环境测试用例运行器测试报告等几部分组成。具体的需求内容由于篇幅有限,不再一一介绍了。

    需求使用思维导图管理,简单直观。

    需求

    技术选型


    在技术选型上,基本上确定了基础编程语言,其他技术栈也基本上确定了。之前做自动化测试时候,python做过相当长的主力开发语言。这是决定用java做为开发语言,基于以下几个方面考虑:

    1. python是动态语言,需要更好的工程实践和代码规范。
    2. java静态编译特性更容易在编译期间排错。
    3. java 在web领域比python更适合

    确定了编程语言,其他的框架也就好确定了,选择当前主流的即可。java后端方面spring全家桶基本上属于一统江湖的地位,就它了。

    • 编程语言:Java
    • 基础框架:Spring
    • Web框架:SpringMVC
    • 持久层:Mybatis
    • 数据存储:MySQL、MongoDB
    • 环境管理:Docker
    • 模板引擎:Thymeleaf
    • 任务调度:Quartz
    • 测试框架:Httprunner
    • 单元测试框架:Junit、TestNG
    • 前端:JQuery、Bootstrap

    Spring ioc容器作为管理bean的工具,springMVC框架处理前端发来的请求;

    MySQL保存项目、接口、测试用例、定时任务、测试报告等数据;MongoDB用来存储一些测试文档,例如接口文档、测试报告等。

    Docker技术的引入主要是为了构建测试运行环境,和做测试数据隔离。
    定时任务调度使用目前广泛使用的Quartz库,可以灵活的定义各种定时规则。

    持久层选用Mybatis主要是熟悉这个框架,可以灵活的写SQL,并且有强大的SQL生成工具。(其实Hibernate也不错,不过对Mybatis更熟悉一点)

    测试运行器这里之前有考虑过自己实现一套基于http协议的测试工具,后来发现业内有很多优秀的轮子,自己实现浪费精力而且不一定有别人的好,于是就采用了一套第三方的测试框架(HttpRunner),感兴趣的可以去了解一下这个接口测试框架。

    前端使用JQuery+Bootstrap的经典组合,优点就是用户多第三方资源多,网上大把的模板可以套用。

    系统架构

    项目结构

    接口测试平台,是基于业务操作流的方式来架构的,基本架构如下图:

    项目结构图

    上面的项目结构图看起来是不是一目了然。

    首先测试人员创建一个项目,在项目内依次录入接口信息,每个项目的接口信息是可以导出为接口文档。然后测试人员需要创建测试集(TestSuit)用来存放测试用例,最后测试人员需要创建定时任务,按照规则定时自动运行测试,并输出测试报告。

    数据流图:
    架构
    业务流:
    1. 测试人员通过前端页面创建测试项目
    2. 为测试项目内添加测试用例
    3. 在任务界面构建定时任务
    4. 选取测试用例集或者测试用例,添加进Task
    5. 定时任务进入内存并持久化到数据库,等待被触发
    6. 触发测试任务,进行测试环境校验(远程主机校验、镜像校验、测试容器校验)
    7. 构建docker容器,装填测试数据和构建测试环境(env)。
    8. 执行测试(测试运行器)
    9. 生出测试报告,并导出
    10. 保存测试报告,并进行邮件提醒
    

    通过以上架构说明,接口测试平台基本需求和业务操作流已经基本明确,下一步就是搭建开发环境进行编码实现了。

    相关文章

      网友评论

        本文标题:接口自动化测试平台开发那些事2(架构)

        本文链接:https://www.haomeiwen.com/subject/wmczsqtx.html