1 对于接口合作平台的畅想
软件界倒退至今,API(接口)的重要性日益凸显——不同的端,不同的模块都在通过 API 交互,不同角色的成员也都在围绕着接口开展工作。在这个前提下,一款集文档、接口调试、Mock、接口自动化测试一体的接口合作平台变得尤为必须。市面上优良的接口调试工具如 Postman、JMeter 如雨后春笋般涌现,各大厂也在自研接口合作平台。
那么问题来了,如果你是一名测试开发,想要自研一款接口测试平台,你该如何设计它?或者你是一名测试经理,想要为团队引入一款测试平台,你要思考哪些内容?下来简略说下我的认识。
一图胜千言,上面图里这几项是一款接口合作平台必须具备的因素。
一个偶尔的机会,一款叫做 Apifox 的 API 合作工具引起了我的留神,很好地符合了我对一款接口平台的期许。
官网下载地址:www.apifox.cn
2 Apifox 的六把武器
初识 Apifox,诧异于它那超高的颜值,与略显粗粝的 JMeter 相比,Apifox 深色款尽显粗劣的神秘,浅色款又走漏着清爽典雅,让人仅凭直觉就认为它是一款好软件。一番试用下来,我释然发现,在它的高颜值之下,领有着毫不逊色于颜值程度的弱小应用价值,Apifox,曾经有限靠近我心目中那个现实的接口测试平台!
接下来,让咱们深刻分析它到底好在哪里。
2.1 便捷的接口即时调试
【接口即时调试】是日常工作中十分罕用的场景,以往咱们个别应用 Postman,当初试试 Apifox。关上 Apifox,顺手新建一个【快捷申请】,一个简洁的页面跃然眼前,申请参数区、申请响应区诸多元素收纳于 tab 页中,以最节俭的空间,蕴藏最丰盛的性能!
纵览全局,申请地址和办法、申请参数、响应体等设计很好地连续了咱们的应用习惯,十分棘手,无需赘述。令人惊喜的是【前置操作】、【后置操作】、【Auth】这些性能,极大地拓展了接口调用的应用场景。
以【后置操作】为例,断言、数据库操作信手拈来,应用丝滑,如果这些还不够,那么自定义脚本帮你解决所有懊恼。
自定义脚本 100% 兼容 Postman 语法,并且反对运行 javascript、java、python、php、js、BeanShell、go、shell、ruby、lua 等各种语言代码
退出【断言】和【数据库操作】后运行的效果图中,断言后果和数据库执行后果十分直观地展现在下方:
2.2 良好的团队合作和数据管理
如果说【接口调试】是一款接口测试平台的车间,那么团队合作和数据管理就是这个平台的基石和框架,是由集体工具向团队平台逾越的关键点。
📕 组织结构设计
Apifox 采纳【团队】、【我的项目】、【成员】三个概念去架构组织构造,一个团队下能够有多个我的项目和多个成员。团队新增成员时能够抉择须要开明权限的我的项目以及成员在我的项目中的角色,不同的角色对应不同的操作权限。
可见在 Apifox 中,我的项目是一个外围概念,承载着数据隔离与数据归集治理的重任,上面这个图很清晰地展现了这种设计:
如果你的组织很宏大,有很多垂直业务线,那么就能够为每个垂直业务线设立一个团队,各个团队之间互不烦扰。如果你的组织很小,那么能够只设立一个团队,淡化团队的概念而以我的项目做辨别。这个设计模式很好地适配不同规模的组织。
📕 接口文档
在前后端拆散开发时代,接口文档有多重要不需多说吧。Apifox 开创性地设计了接口调试和接口文档的双向绑定机制,每个接口调试结束后主动生成一份接口文档,文档反对批改并主动同步到接口运行中。
Apifox 生成得接口文档能够通过【在线分享】分享到云端,其余团队能够在浏览器查看,十分不便。
以往,令后端最头疼就是接口文档的保护,当初有了 Apifox,再无此懊恼,只有把 Swagger 的 URL 填到 Apifox 外面去,Apifox 就会主动导入 API 定义,而后就能生成这个好用的文档!后端轻易改代码,前端随时能够在线调试!
更人性化的是,接口调试时能主动比照返回数据是否合乎文档设计,这样就能及时裸露前后端联调的问题了,前端开发肯定很爱这个性能!
2.3 功能完善的接口自动化
接口自动化是测试团队最关怀的性能,也是一个接口平台的外围性能。接口自动化要思考因素有哪些呢?我集体感觉有以下几个:
- 如何组织和串联接口自动化的用例数据?
- 接口的断言性能,这是断定一条接口自动化用例运行胜利还是失败的根底,除了惯例的断言之外,数据库校验、自定义脚本校验(应答简单校验场景)也很必要。
- 接口之间的关联解决。无需多言,多个接口串联起来无可避免要进行接口间的关联。
- 接口自动化用例的执行策略设置,也就是接口用例什么时候运行,运行多少次,是否发送告诉给相干人。
- 接口自动化执行报告是否信息丰盛、好看?
咱们看下 Apifox 是怎么做得。
📕 数据管理
首先,数据管理方面,Apifox 设计了【测试用例】–【分组】–【测试步骤】这样的设计,让测试用例数据收纳清晰有序:
一个测试用例内蕴含多个测试步骤(一个测试步骤对应一个接口)
📕 断言
断言搁置在后置操作中,相熟 JMeter 的敌人应用起来毫无阻碍。
📕 关联
Apifox 的接口关联设计遵循了支流模式,先提取后援用,留神设置成【长期变量】,这样就把整个用例位于该步骤之后的接口都能够援用 orderId 这个变量了。
后续的接口应用援用变量时,依照下图中格局写就能够了:
📕 测试报告
测试报告是接口自动化运行的最终产物,当然是重中之重了。
查看某条测试报告的详情,信息十分详尽,上方汇总展现整个用例执行详情,上面列举着每个步骤执行状况。
还能够进入步骤更多详情查看单个步骤的详细情况:
2.4 弱小的 mock 性能
作为前端,最苦楚的是什么时候?那就是我前端动态页面很快写好了,但后端接口还没提供,前后端联调难以发展,白白浪费工夫。等到后端好不容易把接口写进去了,一对接联调,好多字段的数据又跟我 本人 Mock 的数据对不上,又得从新改代码。
Apifox 针对这个痛点,研发出弱小的 mock 性能,堪称全国前端程序员的福音。
📕 智能 mock
Apifox Mock 数据的根底也是 API 文档,当你创立好一个接口文档,Apifox 曾经主动启动一个本地的 Mock 服务,或者间接应用云端 mock 更不便,在没有实在后端接口的状况下返回一个模仿的响应,数据结构与文档保持一致!
这还不算,连字段值都高度智能,例如 username 会返回一个姓名,city 会返回一个城市名称,甚至如果你的字段名称叫 icon,就会返回一个图片 URL,关上就真的是一张 png 图片!
零配置,享受智能 mock!就是这么简略不便!
📕 自定义 mock 规定
有人会问,智能 mock 诚然不便,但我想有本人的想法怎么办?好,这就是 Apifox Mock 性能的第二层:自定义 Mock 规定。
Apifox 内置了一整套 Mock 规定,当咱们的返回字段名匹配上了其中的某条规定,就会依据对应规定生成随机值(Mock.js 语法规定)。
字段名称的匹配形式反对通配符和正则表达式,比方字段只有以“url”结尾,就会失去一个正确的网址;以“mail”打头,就会失去一个邮箱地址。
要是以“time”结尾,那还会主动依据字段的数据类型来 Mock 值:string 类型的话就返回一个‘yyyy-mm-dd hh:mm:ss’格局工夫;integer 类型的话就返回一个工夫戳。是不是很智能?!
有内置规定,当然就能够自定义新规定。
比方咱们公司的订单 id 是以“DD”打头的十位数字,我就能够新建一个 string 类型的规定,匹配规定写“*orderid”,mock 规定写一个正则表达式:@regexp(/DD\d{10}/)。这样,只有我任何一个接口返回字段是以“orderid”结尾,都会失去一个“DD1284918414”这样的返回值。
📕 接口级自定义 Mock
有同学提出了更刁钻的需要:我想要依据传参的不同失去不同的 mock 响应后果怎么办?这的确是个很事实的需要,Apifox 当然想到了。Apifox 针对每个接口文档提供了高级 mock,让咱们自在定制接口 mock。
如果以上性能你感觉还不够,那么反对 Mock.js 语法想必能满足你所有须要,只有 Mock.js 能做的,Apifox 也能做。
📕 高级 Mock 自定义脚本
最初,是高段位同学筹备的自定义脚本性能,堪称无所不能但应用门槛较高。
以上还只是 Apifox 的一部分性能,这座宝藏值得大家进一步去摸索。
2.5 数据同步与导入导出
作为一个 API 合作平台,通常保护着大量数据,那么数据同步与导入导出决定了这个平台的易用性,因为数据保护是件琐碎烦人的事件。
Apifox 在这方面有多强呢?一图以蔽之,【导入数据】性能简直反对市面上所有数据格式的导入,来者不拒。
主动同步性能更是懒人福音,节俭团队难以计数的工夫和精力,同时又能大幅提高数据的准确性。
导出性能也不在话下:
如果导出的文件不够不便在团队内合作,那么【在线分享】则是数据同步的利器!
分享后的在线文档:
2.6 丰盛的自定义设置
一个读者就会有一千个哈姆雷特,一千个使用者就会有一千个平台需要!如何在对立与个性化之间做出取舍是一个有难度的事件。
📕 多种外观
Apifox 丰盛的配色让抉择艰难症陷入抉择窘境:浅色系典雅,深色系粗劣,罗唆白天夜晚换着来吧。
充斥精密仪器感的深色系:
📕 我的项目级设置
Apifox 在零碎级设置之外,又提供了我的项目设置,让设置的颗粒度更细,以数据库连贯为例,我的项目内配置了数据库连贯后,我的项目内处处能够援用,防止了单次配置的繁琐。
另外,运行环境和全局变量当然也思考到了:
以上只是 Apifox 的性能中的一部分。Apifox = Postman + Swagger + Mock + Jmeter,果然不虚此言。技术团队,包含项目经理、产品人员、前后端开发、测试人员都能在 Apifox 中找到那款帮你提效的武器!
- 官网地址:www.apifox.cn