zoukankan      html  css  js  c++  java
  • 第三章,平台开发设计与实现

         在第二章中我们简单地介绍了接口自动化平台的基本功能,主要包括以下几个方面:

    (1)接口文档管理功能:管理接口信息,包括增,删,改,查等。

    (2)用例管理功能:新建,展示,查询,删除,运行测试用例。

    (3)测试用例集管理:新增,修改,删除,查找,运行测试用例集。

    (4)任务管理:管理定时任务,或者其他任务触发机制。

    (5)测试报告管理功能:展示,查找测试报告,对测试报告进行统计和分析。

    (6)日志管理功能:记录错误日志,对日志进行过滤及分析。

    (7)用户管理功能:以便对测试用例,测试计划,任务,报告和日志的相关操作进行权限控制。

       本章我们将对每一项目做详情的设计分析,最后给出设计实现思路。

    3.1 接口文档管理

             接口文档管理最近是一个单独的部分,类似于wiki上面的一个功能,属于文档技术沉淀或是开发说明等。后来在接口自动化平台功能越来越强大后,此功能正式成功接口自动化平台的一部分。接口文档应该详情记录接口的调用地址,接口功能,调用方式,接口的参数,参数中是必选的,还是非必选的,接口返回示例或是字段等信息。

           此部分功能应该包含以下具体功能:

    (1)接口总体信息的展示,不管是采取树型结构或是列表的样式,简单地展示出接口的基本信息,以便对整体接口中有个了解。

    (2)搜索功能,接口信息量会非常大,不可能人工去查找想要的接口信息,必须有搜索功能,以接口名称和功能进行具体的搜索。

    (3)展示翻页功能,为了达到比较好的用户效果,不可能把所有的信息都展示出来 ,一般一页展示10-15条信息比较好,多余的信息要进行翻页处理。

    (4)新增加接口的功能,根据用户权限,对有权限的用户开通添加权限。在添加接口文档的时候,要求添加的信息比较明确,参数和返回示例比较容易增删。

    (5)修改和删除功能,接口的添加者和系统管理员可以对接口进行修改或是删除操作,此处权限一定要控制好,不能修改和删除不是自己的接口文档信息。

    可以参考以下的开源项目,说不定能给你带来不错的灵感:

    (1)CrapApi https://github.com/EhsanTang/ApiManager

    (2)ShowDoc  https://github.com/star7th/showdoc

    (3)php-doc-system https://github.com/ares333/php-doc-system

    3.2用例管理功能

           用例功能管理是接口自动化测试平台的核心功能,也是发挥比较多的模块,我们就基本的内容介绍一下,如果你有新的想法可以随意创新。

    (1)用例的整体展示,以列表的形式进行用例展示,当然左侧也可以以接口为单位进行用例的组织,以树型结构进行筛选。单击左侧的对应接口名,右侧展示出该接口下的所有用例。用例的基本信息包含:用例名,用例功能,检测点,创建时间,执行结果和创建人等。

    (2)搜索功能,必须可以以测试用例名,测试用例功能,接口名和创建人进行对测试用例进行搜索。

    (3)翻页功能,一页不能展示太多的测试用例,需要根据页面部署进行翻页设置。

    (4)新增功能:有添加测试用例权限的用户可以对相应的接口添加测试用例,此处有两种做法:一种是完全手工,选择接口后添加对应的参数,参数值 ,检测方法与预期结果。第二种是在选择接口,根据接口文档自动添加上相应的参数,返回值示例等,你只需要填写参数值,选择检测方法和填上预期结果值。

    (5)修改和删除功能 :对测试用例必须进行权限控制,用例的创建者才有权限修改和删除,其他人没有这个权限。

    (6)执行功能:测试用例必须有执行功能,执行功能包含单个用例的直接执行,选择多个用例的同时执行两个执行操作。以及有接口可以将选择的用例保存成测试用例集。

    3.3测试用例集管理

           随着测试用例数量的增加,我们需要对其有合理的管理方法。不少测试框架都有测试用例集的这个概念,如java的Testng.xml,Python的testsuite等。我们在开发平台的时候,这一功能也是非常重要的。

    测试用例集的管理包含以下几个功能 :

    (1)测试用例集展示:测试用例集同测试用例,接口文档一样,需要有展示功能,展示项应该包含:测试用例集名称,测试用例集功能,包含用例,执行结果,创建时间,创建人等信息。同时展示页面也需要有相应的搜索和翻页功能,此处就不在累述了。

    (2)测试用例集的创建:创建测试用例集的时候,需要填写用例集的名称,功能,而包含的测试用例是需要有选择已有测试用例的功能。

    (3)修改和删除,和上面是一样的,必须进行合适的权限控制,防止不同的用户相互影响。在修改用例集的可以选择增加或是删除相应的测试用例。

    (4)用例集的执行:测试用例集包含两种执行方式,一个是直接执行,单击触发相应的用例执行;二是设置定时任务或是触发策略。

    3.4任务管理

           任务管理一般是定时任务,当然也可以包含其他如jenkins上触发任务。不过我们此处只讨论定时任务,先不管定时任务如何实现。定时任务的管理至少包含以下几个功能:

    (1)定时任务展示 :展示出定时任务的功能,执行策略,通知策略,当前状态等信息。如果有必要,需要添加上搜索和翻页功能。

    (2)定时任务的创建:有相应操作权限的用户可以创建相应的定时任务,应该包含定时任务名称,选择需要执行的测试用例集,触发策略,通知策略,以及接收通知人的邮件或是手机号列表等。

    (3)   定时任务的停止及删除:定时任务修改的价值不大,可以直接删除了,再创建即可。根据相应的权限对定时任务进行停止,启动和删除等操作。

    3.5测试报告管理功能

          测试报告是我们查看测试计划执行结果的重要手段,如果做数据分析的话,这也是重要的数据来源。所以我们也分两部分进行介绍此处的功能.

    一,     简化版本

        如果是简化版本的测试报告管理的话,需要具备以下功能:

    (1)测试报告的展示:展示出测试报告的基本情况,如:测试计划名,测试计划功能,执行时间,执行策略,执行结果,执行人等。而且要提供搜索的翻页功能。

    (2)测试报告的查看:单击执行结果,能打开具体的测试报告页面,如果使用的测试框架能自动生成,就打开相应的报告,如果不能先生成详情的测试报告。

    二,     详情版本

         简化版提供查看相应的测试报告信息即可,如果要做复杂一点儿,需要对报告进行数据统计,主要统计的维度有:

    (1)报告维度

    统计每个测试用例集的执行情况,成功或是失败的次数,当然如果能再细度化的话,还可以细化到测试用例细别。这样可以分析出测试用例集的执行情况,里面有用例是否合理等。出错的原因,以出错的概率。

    (2)执行用户维度

    以执行测试用例集的用户为维度来统计成功失败情况,以此来分析每个用户的执行习惯 ,测试范围,以及失败的原因,创建的测试用例集是否合适等。

    (3)执行时间维度

    以测试用例集的时间来统计测试用例集的执行情况,以此来分析每个时间段的执行情况,用户的使用习惯,以便错开执行峰值或是做成异步多线程等执行方法。

    (4)统计展示

    在上面做了相应的统计后,我们需要做相应的展示,如果不展示就失去了统计的意义。所以要借助于第三方的前端开源框架或是插件展示出来,这个就要看个人使用的熟练程度与审美了。

    3.6日志管理功能

         一个完善的系统都会有相应的日志功能,用来记录执行情况,错误信息,以便进行更好的错误排查与跟踪。我们接口自动化平台需求记录的日志不是太多,因为对应的测试框架会记录错误信息的。但是我们也要记录如下信息:

    (1)出错接口的出错现场:出错时的参数,出错的接口输出,执行时间等等。因为测试框架只对比对信息进行出错记录,如实际结果与预期结果不符之类的。

    (2)平台出错信息:如接口请求不通,或是页面加载出错,执行函数出错等。

    (3)日志分析:根据自己的业务需求,对日志做相应的分析 ,以便统计出相应的数据以供后期使用。

    (4)数据展示:我们对日志分析的数据,要做相应的展示,不能仅仅放到数据库中,这不符合我们平台开发的目的。

    3.7用户管理功能

             用户权限管理对任何一个系统来说都非常重要,因为一个系统的数据不可能对所有人都无限的使用。所以我们的接口自动化测试平台也需要做相应的权限管理,大致先将用户分为以下几个权限:

    (1)访客:可以查看接口文档,执行接口测试用例,接口测试用例集,查看测试报告及相关的统计数据。简单来说只有查看和执行权限,也可以视情况而定,不授于其执行权限。

    (2)接口开发人员:接口开发人员可以对接口文档拥有所有权限,以便管理所有的接口文档。同时可以执行现成的接口测试用例,可以用来验证开发的接口以及查看相关统计信息。

    (3)接口测试人员:编写接口测试用例,接口测试用例集以及设置相应的定时任务等,可以查看接口文档以及相关统计信息。

    (4)系统管理员:拥有系统所有权限。

    而用户管理功能包括以下几个方面:

    (1)用户权限申请:申请系统相应的权限,填写必要的信息,以便管理员审核。

    (2)用户管理功能:审批用户申请,更改用户权限,以及删除用户信息。

    (3)申请记录管理:管理用户的申请记录,以便分析用户的申请行为。

    以上功能只有系统管理员可以进行相应的操作。

    3.7 相关技术简介

           上面我们详情介绍了一个接口自动化平台的相关模块的功能,总体来说就是表格以及对数据的相关操作,所以就完成上面的功能我们分析一下可能用到的技术: 

    开发框架

         可以是现成的php的CI,python的django,java我们公司有现成的框架,而开源的我不太了解,大家可以根据需要去选择。

    测试框架:

        php的phpunit,python的unittest,java的TestNG等都是不错的选择。

    前端框架:

        Bootstrap+jquery,当然选择bootstrap table加上相关的插件就能很好地完成前端设计。

    数据库:

         建议用mysql,轻量级的,sql操作也比较熟悉,也有用mangodb的,自己根据需要选择即可。

    服务器:tomcat+nginx足以完成需求。

    3.8 总结

            本章我们详情介绍了接口自动化平台的各个相关功能模块,如果很好地完成了这些模块,一个不错的接口自动化平台就已经呈现在你面前了。当然这仅仅是一个基本的平台,而我们大部分人也玩的就是这个套路,在知识不断积累,眼界越来越开阔的时候,也会有很多深入的玩法,下节我们将介绍几种比较新颖的接口测试平台设计案例,大家来相互交流一下。

  • 相关阅读:
    《2048》开发5——实现计分功能
    《2048》开发4——继续编辑GameView类,实现游戏逻辑
    《2048》开发3——编辑Card类
    robotframework(rf)中对时间操作的datetime库常用关键字
    弹框和单选框,复选框
    Selenium IDE安装与使用
    全面的功能测试点总结
    RF新手常见问题总结--(基础篇)
    常用断言关键字(rf中)
    jmeter录制(ios)app脚本
  • 原文地址:https://www.cnblogs.com/eagleking0318/p/7207765.html
Copyright © 2011-2022 走看看