第三章,平台开发设计与实现

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

(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 总结

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

时间: 2024-10-12 09:04:31

第三章,平台开发设计与实现的相关文章

MiS603开发板 第三章 多路分频器设计

作者:MiS603开发团队 日期:20150911 公司:南京米联电子科技有限公司 论坛:www.osrc.cn 网址:www.milinker.com 网店:http://osrc.taobao.com EAT博客:http://blog.chinaaet.com/whilebreak 博客园:http://www.cnblogs.com/milinker/ MiS603开发板 第三章 多路分频器设计 设计思想:利用FPGA内部的逻辑单元对FPGA输入的50MHZ高频时钟信号进行计数分频,得到

第三章 经典场景设计

图片缓存: ImageLoader的知识点讲的比较老,暂不总结(题外话:推荐Glide或者Fresco,但是一定要进行二次封装,否则谁知道哪天心血来潮,想着换个框架试试呢) 图片加载利器Fresco: 配置文件配置: <uses-permissionandroid:name="android.permission.INTERNET"/> 在application中进行初始化: Fresco.initialize(context); 将程序中显示图片的ImageView替换为

《FPGA全程进阶---实战演练》第三章之PCB设计之去耦电容

1.关于去耦电容为何需要就近摆放? 大多数资料有提到过,去耦电容就近放置,是从减小回路电感的角度去谈及摆放问题,其实还有一个原则就是去耦半径的问题,如果电容离着芯片位置较远,超过去耦半径,会起不到去耦效果. 考虑去耦半径的最好办法就是考察噪声源和电容补偿电流之间的相位关系.当芯片对电流的需求发生变化时,会在电源平面的一个很小的局部区域内产生电压扰动,电容要补偿这一电流(电压),就必须感知到这一电压扰动.信号在介质中传播需要一定的时间,因此发生局部电压扰动到电容感知到需要有一定的时间延迟,因此必然

《FPGA全程进阶---实战演练》第三章之PCB设计之电感、磁珠和零欧姆电阻

2.电感.磁珠和零欧姆电阻的区别 电感:电感是储能元件,多用于电源滤波回路.LC振荡电路.中低频滤波电路等,其应用频率很少超过50MHz.对电感而言,其感抗值和频率成正比.XL = 2πfL来说明,其中XL是感抗,单位是Ω,例如一个理想的10mH电感,在10KHz时,感抗是628Ω,在100MHz时,增加到6.2MΩ,因此在100MHz时,若让一个信号通过此电感,必将会造成信号品质的下降. 磁珠:磁珠的材料是铁镁或铁镍合金,这些材料具有很高的电阻率和磁导率,在高频率和高阻抗下,电感内线圈之间的电

微信公众平台开发教程(三) 基础框架搭建

微信公众平台开发教程(三) 基础框架搭建 上一章,我们已经初步讲解了微信公众账号开发的基本原理,今天我们来探索设计实现. 首先我们设计了模块层次图,当然图中只是给出一种实现方式,不局限于此.具体见下图. 主要功能介绍如下: 1)请求接口层.处理HTTP请求,及响应 2)分发层.由接口层传入请求,然后具体分析请求类型,分发至不同的处理器 3)业务逻辑层.这里是我们的具体业务逻辑了,根据请求,实现具体的业务逻辑. 4)数据层.我们在实现某个应用时可能需要访问数据,可以是数据库或者是文件.如果是简单应

安卓移植和驱动开发第三章心得体会

第三章学习了安卓移植平台工具的介绍,三星公司生产的FS -S5PC100开发平台,是基于Cortex-A8内核的S5PC100处理器设计而成的,此平台主要用于嵌入式系统教学,来适应只能操作系统的发展及市场需求,以它为例,该开发平台具有丰富的硬件资源,包括硬件加速器,比如动态视频处理,显示控制和缩放,支持多种格式的硬件编解码,其视频解码能力很强大并且省电,支持电视输出,支持2D 和3D 加速,广泛用于智能手机,平板电脑等产品,通过学习,我们还了解的该开发平台的各种功能,比如摄像头功能的展示,高清播

《移动平台开发实践》第三周学习任务

目录 20189230杨静怡 2018-2019-2 <移动平台开发实践>第3周学习总结 学习<Java和Android开发学习指南(第二版)>第5.6.8.9章-- 教材学习中的问题和解决过程 代码调试中的问题和解决过程 [代码托管] statistics.sh脚本运行结果的截图 上周考试错题总结 学习进度条 参考资料 20189230杨静怡 2018-2019-2 <移动平台开发实践>第3周学习总结 学习<Java和Android开发学习指南(第二版)>

微信开放平台 公众号第三方平台开发 教程三 一键登录授权给第三方平台

原文:微信开放平台 公众号第三方平台开发 教程三 一键登录授权给第三方平台 教程导航: 微信开放平台 公众号第三方平台开发 教程一 平台介绍 微信开放平台 公众号第三方平台开发 教程二 创建公众号第三方平台 微信开放平台 公众号第三方平台开发 教程三 一键登录授权给第三方平台 微信开放平台 公众号第三方平台开发 教程四 代公众号调用接口的SDK和demo 公众号第三方平台的开放,是为了让公众号运营者,在面向垂直行业需求时,可以一键登录授权给第三方的公众号运营平台,通过第三方开发者提供的公众号第三

第三章:更新异常与规范化设计

前言 在前两章中,主要讲了ER建模和关系建模.在具体分析如何用数据库管理软件RDBMS(Relational Database Management System)实现这些关系前,我想有必要思考下面这个问题: 问什么要这么麻烦?为什么又是ER建模又是关系建模的? 本章的出发点就是回答这个问题.然而某种程度上,也是回答另一个本质性的问题:为什么要有数据库? 更新异常 数据库的四大操作:增,删,改,查中,除了查,其他三个都可归为更新操作.而总的来说,ER建模和关系建模的目的,就是为了避免因大量冗余数