新浪接口管理与测试平台

摘自:https://weibo.com/ttarticle/p/show?id=2309404141691887072285

https://git.oschina.net/zhoujingjie/apiManager.git

一. 简介

为什么需要接口管理与测试平台

随着系统业务增长,模块间的交互复杂化,我们在测试接口时总会碰到各种各样问题,比如:

因为接口文档更新不及时导致的接口歧义

测试时总会有思维发散的测试用例,在测试用例文档中维护起来很麻烦

市面上的测试工具各有特色,测试人员找不到合适自己测试的工具,或者说在不同的工具间切换不方便

因为接口的加密或者验证功能,给测试带来麻烦,而工具又很难进行扩展

自动化测试需要大量编码维护工作

        为了改善这些问题,让接口测试更加流畅。我们在开源系统上进行二次开发,综合了常用的接口测试工具的功能,开发了新浪接口管理与测试平台,功能更加全面,且易于扩展。

接口管理与测试平台的主要特点

功能全面

       平台实现了项目接口编辑,文档导出,接口测试,用例记录,自动化测试,团队管理等功能,涵盖文档编辑,在线测试,自动化等各种场景,实现一站式测试。

简单易用

在传统的接口开发过程中,我们会用到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,我们在小幺鸡的基础上做的二次开发,增加了很多功能,开发和封装了接口管理与测试平台

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,163评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,301评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,089评论 0 352
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,093评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,110评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,079评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,005评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,840评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,278评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,497评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,394评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,980评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,628评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,649评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,548评论 2 352

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,061评论 25 707
  • 1.测试与软件模型 软件开发生命周期模型指的是软件开发全过程、活动和任务的结构性框架。软件项目的开发包括:需求、设...
    Mr希灵阅读 21,957评论 7 278
  • 文章来自:http://blog.csdn.net/mj813/article/details/52451355 ...
    好大一只鹏阅读 9,191评论 2 126
  • 1.测试与软件模型 软件开发生命周期模型指的是软件开发全过程、活动和任务的结构性框架。软件项目的开发包括:需求、设...
    宇文臭臭阅读 6,723评论 5 100
  • 把你藏在五月蔷薇花的花苞里 夜里 我悄悄地去找你 可好?
    摽有梅其实七兮阅读 200评论 2 3