接口管理与测试平台-小幺鸡
转载:https://baijiahao.baidu.com/s?id=1575717194591812&wfr=spider&for=pc
一. 简介
为什么需要接口管理与测试平台
随着系统业务增长,模块间的交互复杂化,我们在测试接口时总会碰到各种各样问题,比如:
因为接口文档更新不及时导致的接口歧义
测试时总会有思维发散的测试用例,在测试用例文档中维护起来很麻烦
市面上的测试工具各有特色,测试人员找不到合适自己测试的工具,或者说在不同的工具间切换不方便
因为接口的加密或者验证功能,给测试带来麻烦,而工具又很难进行扩展
自动化测试需要大量编码维护工作
为了改善这些问题,让接口测试更加流畅。我们在开源系统上进行二次开发,综合了常用的接口测试工具的功能,开发了新浪接口管理与测试平台,功能更加全面,且易于扩展。
接口管理与测试平台的主要特点
功能全面
平台实现了项目接口编辑,文档导出,接口测试,用例记录,自动化测试,团队管理等功能,涵盖文档编辑,在线测试,自动化等各种场景,实现一站式测试。
简单易用
在传统的接口开发过程中,我们会用到wiki,postman,soapUI等工具来辅助开发和测试,该平台集以上功能于一体,使整个项目的接口开发和测试工作更方便快捷
解决了什么问题
消除接口文档歧义
接口即文档,可用于团队内外分享接口文档,开发在更新接口的同时,对外发布的文档也同时更新,再加上分享和在线测试功能,不会引起接口歧义
一站式测试
集在线测试,用例维护,自动化测试于同一平台,而且可以对参数进行常用的加密等处理,并支持扩展,再也不用在各种测试工具之间切换
测试用例共享
测试用例和测试数据都可以随时保存,且与团队成员分享
简化自动化测试
保存的用例可直接用于自动化,不用专门维护
二. 系统功能模块
【图1 功能模块图】
1. 项目管理
包括可视化接口编辑/预览,文档分享/导出等功能,还通过webSocket机制实时通知团队中成员的操作,与传统的wiki管理项目和接口的方式相比,有很多优势:
以项目->模块->分类->接口的层级关系,让接口自然分类,一目了然。省去了wiki中复杂的层级结构规划工作
支持markdown编辑器
编辑页面更人性化,接口的所有属性清晰明了,参数类型,描述都有严格定义,减少接口文档带来的歧义
浏览模式自动生成格式化文档,省去了wiki复杂的格式排版工作
测试模式可以进行在线模拟测试,未上线之前可以进行环境切换,在接口联调时可以减少沟通成本
可直接导出PDF,方便接口文档传阅
2. 用户管理
包括用户信息,团队成员的管理。无需注册,用LDAP域帐号直接登录,可以维护自己团队的成员来实现项目的权限控制。
3. 接口测试
可进行在线测试,并设置校验规则,测试过的用例可以保存下来在团队中共享。与普通的接口测试工具(如postman,soapUI)相比,也有很多优势:
支持多种接口协议,如http、webSocket测试(postman不支持webSocket)
支持多种请求类型如form-data,x-www-form-urlencoded ,raw,binary ,根据不同响应类型可对返回结果进行格式化,如json,xml,txt,jsonp等格式(postman做的比较全面,其他工具就比较少)
支持变量,测试环境和请求参数都可以用变量形式,且无限扩展(其他工具或者不支持扩展,或者只有少量的既定变量)
支持团队中分享项目,接口和测试用例。无需注册,用LDAP域账号登录后,即可加入团队,查看接口(postman需要借助google账号实现分享,且收费项目)
支持将单个项目或者接口分享给其他人进行浏览(postman只能导出)
支持测试用例管理(soapUI有测试用例管理,但操作比较复杂)
支持对返回值进行校验,校验规则可以扩展(其他工具只能使用既定的校验规则)
4. 自动化测试
从数据库读取自动化用例进行回放并校验返回结果。支持设置执行计划,单次执行或预约执行。为了解耦,分为三个模块:
Server:提供接口供前端调用,传入执行计划
Task Runner:后台轮询检测数据库,获取未执行的任务,执行并置状态
Email Sender:读取数据库,发送邮件给执行者
流程图如下:
【图2 自动化运行流程图】
三. 系统架构
前端静态页面基于nodejs,webpack gulp,vuejs,jqueryjs开发;
后端API 使用java开发,运行在tomcat8以上版本;
自动化运行程序使用python开发,轮询获取数据库中需要自动化运行的case,运行并回写结果;
系统架构图如下:
【图3 系统架构图】
四. 功能亮点展示
新浪接口测试平台实现了大部分日常接口开发和测试流程中所用到的功能,我们通过二次开发,也对许多功能进行了优化,并支持在使用过程中随时进行扩展。界面设计和操作步骤都非常简易,下面主要介绍一下功能亮点:
可视化编辑与分享,让接口撰写变简单
可视化编辑器,可随时修改并且浏览接口基本信息及参数,让开发在设计接口和撰写接口文档时更加方便。
完善的分享机制,通过权限控制,可以将某个项目或者接口分享给团队内外的人员,在线测试和mock功能可以增强团队合作的紧密程度。
多功能导出,支持导出PDF或JSON格式,PDF即为格式化的接口文档
【图4 接口可视化编辑界面】
在线接口测试,消除接口文档歧义
支持在线测试,接口文档撰写好后即可在线测试,方便前后端开发联调,降低错误率
支持参数变量化,简化接口因加密带来的测试工作量,方便测试
支持多种协议,目前有http,webSocket协议,可扩展
支持返回结果校验,方便回归测试
【图5 在线接口测试演示】
测试用例管理,使测试过程有迹可循
支持测试用例保存和查看,团队成员可互相审阅测试用例,减少项目交接带来的工作量
支持多种格式校验,测试用例可以对返回结果设置校验,包括http返回码,json值校验等,方便回归测试以及自动化测试
【图6 测试用例管理界面】
在线编写自动化测试,让大家都能够参与测试
自动化用例编辑可视化,使自动化过程更加简单明了
完善的自动化运行机制,支持接口参数和环境变量化,实现不同环境下运行同样的测试用例
丰富的结果展示,方便问题查询
【图7 自动化测试界面】
五. 参考文档
小幺鸡项目源码地址:
https://git.oschina.net/zhoujingjie/apiManager.git,我们在小幺鸡的基础上开发和封装了接口管理与测试平台
接口管理与测试平台-小幺鸡相关推荐
- 见到他你会爱上他的“接口管理与测试平台-小幺鸡”
今天发现了一个很好用的接口管理与测试平台.解决了一直以来在开发或测试过程中遇到的问题,没有说明文档或是说明不够详细不能直接使用.在这里小幺鸡都可以解决了!并且还附带了在线执行测试的功能,非常方便,真的 ...
- 如何发布接口_Devops下的接口全生命周期管理与测试
什么是devops?随着时间的推移,devops的定义也在不断的演进.对于其定义可能出现千人千面,但从核心观点,整体业界还是保持着一致的认识.DevOps不是单一的技术或者工具,甚至不只是一个流程,而 ...
- 【ARUN】FastAPIVue 拥有无敌颜值且易用的全栈测试平台 第三弹——测试追踪
前言 我又又又来分享啦!!之前分享的接口测试不仅局限于普通的 http 接口,dubbo/开放平台接口通过深度定制已完美集成~ 接口.UI 任务已作为上线流程中重要的一环,并具有发现异常问题的能力~ ...
- 盘点一款程序员常用的API接口管理利器!
如今,API 已在软件.Web 和移动应用程序开发领域无处不在,从企业内部到面向公众的应用以及与合作伙伴进行系统集成.通过使用 API,开发人员可以创建满足各种客户需求的应用程序.而软件架构也在随着应 ...
- 国内几款接口管理平台,使用体验分析对比:总有一款是你想要的!
在项目开发测试中,接口文档是贯穿始终的.前后端开发需要在开发前期进行接口定义并形成文档,QA在功能测试和接口测试的环节也需要依赖于这些接口文档进行测试.接口文档往往以最简单的静态文档的形态存在.然而在 ...
- java nei_NEI 接口管理平台
原标题:NEI 接口管理平台 对于现代 Web 产品来说,API 的重要性不言而喻,相信前后端工程师都深有体会. 关于 API 的开发流程,笔者咨询过一些朋友,也在面试的过程中问过一些候选人,抱随意的 ...
- 【开源】接口管理平台eoLinker AMS 开源版3.1.5同步线上版!免费增加大量功能!...
概要:eoLinker是一个免费开源的针对开发人员需求而设计的接口管理工具,通过简单的操作来帮助开发者进行接口文档管理.接口自动化测试.团队协作.数据获取.安全防御监控等功能,降低企业的接口管理成本, ...
- 接口管理平台DOClever5.2.0 发布,大幅增强自动化测试,支持可视化UI
接口管理平台 DOClever 是一个商业化开源产品,完全免费,支持线下部署.无论你是前端工程师,还是后端工程师,接口永远都是两者交互的桥梁,所以 DOClever 专为中小型团队量身打造,旨在解决接 ...
- 接口入参形式_花椒测试平台 接口篇
背景 先来说说花椒测试平台的由来: 目的1,降低接口测试对测试人员代码能力的要求.测试人员只需要知道接口的url,请求参数,以什么样的格式传个服务端,接口的响应数据里需要验证哪个字段的值即可进行测试, ...
最新文章
- 中国伺服电机行业运营现状及前景趋势展望报告2022-2028年版
- shell脚本一键同时推送代码至github和gitee
- 深入浅出单实例Singleton设计模式
- Android平台实现Unity3D下RTMP推送
- 远程推送,集成极光的SDK,证书制造
- mysql ssh通道_详解如何通过SSH通道来访问MySQL
- java生成iso9660工具_基于数据库的代码自动生成工具,生成JavaBean、生成数据库文档、生成前后端代码等(TableGo v7.0.0版)...
- [Android Samples视频系列之ApiDemos] App-Activity-Recreate
- springboot中得注解_SpringBoot 中的基本注解
- 看看世界各地牛人的彪悍乘车功夫
- Sublime Text 3.0汉化教程
- RGB格式转换的实现
- 电脑时间倒流,程序拒绝穿越:应用程序发生异常 未知的软件异常(0xe06d7363)
- mysql客户端用什么 知乎_知乎面试记
- Flutter Ink,InkWell,InkResponse水波纹实现(2.3)
- Java回炉之语言基础
- 网络安全学习笔记——红队实战攻防(上)
- 软件设计交流系统-用户手册与帮助文档
- 学习管理!!中国历史上最经典的7个智慧案例
- flutter 微信聊天输入框
热门文章
- CORDEX(Coordinated Regional Climate Downscaling Experiment )——协调降尺度实验
- 计算Jaccard相似性
- win10输入法设置
- 态度决定命运,将自己的梦想抛向天空,你就能飞翔
- Django:使用channels创建websocket,实现消息推送
- Spark 线性代数库 Breeze API 详解
- 2020-12-17 Scopus文献检索 TargetDetection|Dim|Infrared Image
- 关于LattePanda开发板安装Linux-Ubuntu-Debian重启的解决办法
- 错误1未能加载文件或程序集“System.Windows.Interactivity, Version=4.0.5.0, Culture=neutral, PublicKeyToken=31bf3
- k8s的系统组件构成