这么好用的接口工具,请允许我油腻一次!

简介: 年前的时候,测试负责人刘哥说“为了保证每次迭代质量上线,除了原有的功能(UI)层面的测试以外,必须把API接口自动化测试提上日程。

我与 “Apifox ”的网络情缘

亲爱的朋友们,想借此机会跟大家分享一个Love Story:我与Apifox的网络情缘。

网络异常,图片无法展示
|

1 引言

简单介绍一下故事人物:

角色 姓名 说明
男一 阿哲 故事主人公“我”,是PMS领域的后起之秀,已支持数万家酒店正常运营"。
女一 睿狐 Apifox,昵称:小狐
月老 刘哥 测试负责人 ( 他是为了我的终身大事,开挂的"月老" )
前女友 Postman
曾经们 Jmeter, swaggerUI,MeterSphere, SoapUI, Katalon Studio,Robotframework

PS:性别为故事剧情需要,莫过于较真 ~

网络异常,图片无法展示
|

2 缘起

年前的时候,测试负责人刘哥说“为了保证每次迭代质量上线,除了原有的功能(UI)层面的测试以外,必须把API接口自动化测试提上日程。  更早的介入接口测试,可更早的发现软件缺陷,而且接口测试更稳定!每次回归跑一跑他不香么blabla”。从那以后他就开起来当“月老”的暴走模式。介绍的对象中印象深刻的有:Jmeter,swaggerUI,MeterSphere,soapUI,  Katalon Studio,Robotframework,Postman 。  这几个相信测试的童鞋比较熟悉。各花入各眼,都个有优缺点,就不展开说了。 在相处的过程中,Jmeter  终处成了闺蜜,压测的时候经常一起玩耍;该说不说提一嘴,不得不好好提下Postman,毕竟“前任”。必须得给画面:

网络异常,图片无法展示
|
Postman有很多优点:

  • ①支持http、https协议,做接口调试非常的优秀
  • ②保留历史记录,方便组织测试用例及支持多终端同步用例
  • ③支持读取csv,json数据文件
  • ④支持创建不同权限的Workspaces,能支持团队协作(按照团队规模和团队协作的功能模块收费),但免费版的团队合作支持跟没有是差不多,差评...
    网络异常,图片无法展示
    |
    缺点就不当众说了吧;刘哥结合我的具体情况,也对下一”对象”明确了几点要求:
  • ①必须很好的支持团队合作,
  • ②零学习成本
  • ③ 方便做API自动化测试
  • ④能对数据库进行相关操作
  • ⑤要能MOCK数据
  • ⑥ 长得要好看

不能说我阿哲渣,确实是几经波折相处下来发现真的都不是最合适的。

网络异常,图片无法展示
|

3 相遇想识

有人说”前世500次的回眸才换来今生的相遇”;一次偶然,刘哥带你(Apifox)走进了我的视野。没错,只是因为在人群中多看了你一眼,再也没能忘掉你容颜。从对视的那一刻起,我知道这就是“缘”!

网络异常,图片无法展示
|

  • 阿哲:“你好,我是阿哲”
  • Apifox:“你好,我是小狐” ...
    网络异常,图片无法展示
    |

4 相知相爱

相识后,我用尽所有一切能知道的办法探索、努力尝试,只为走进你的世界,也带你了解我的世界;增进了解,拉近彼此距离。 经历了这段时间的磨合,我们相爱了,爱的那么深,爱的那么认真!我深知你所有的好。

4.1 Apifox下载安装

Apifox支持 桌面版和WEB版 , 受制于各种网络、硬件等环境影响,经过长时间使用,个人推荐大家直接下载桌面版安装使用,更稳定。小狐支持各Windows,macOS,Linux系统桌面版。 官网下载地址:www.apifox.cn

网络异常,图片无法展示
|

4.2 创建团队和项目

要创建自己的团队和项目,首先需要在Apifox上注册个账号(邮箱注册),也可以直接微信扫码登录,这种方式是也是他们比较推荐的登录方式。

网络异常,图片无法展示
|
无论哪种方式操作都很简单根据提示来就行了,不赘述。 非常有意思的是 Apifox支持多样的外观,也就是她有非常多样的衣服颜色搭配 在注册登录界面的时候就可以选择自己喜欢的界面风格(外观、主色、字体大小任意搭):
网络异常,图片无法展示
|

有了账号就可以创建自己的团队和项目了:

网络异常,图片无法展示
|

若有多个团队 可以拖动换位置, 多个项目同理:

网络异常,图片无法展示
|

项目这多说一句可以你容易克隆、移动、删除项目,删除项目需人工输入项目名称确认 ,这个设计很好,避免误操作一下子把项目干掉了:

网络异常,图片无法展示
|

4.3 邀请成员/设置权限

既然我们要团队协作, 团队成员进来是必须的,Apifox提供了3中邀请方式:链接要求、邮箱要求、账号邀请,不管哪一种操作都比较方便。

网络异常,图片无法展示
|

网络异常,图片无法展示
|

4.4 接口文档设计

使用Apifox设计接口方便快捷,遵循OpenAPI规范,完全可视化 。光标移动至已创建的项目的

网络异常,图片无法展示
|
位置 ,点击【新建接口】,然后根据接口的设计要求,填入接口路径、名称、分组、状态、参数、责任人、标签、服务、请求参数、返回响应及其相应的数据结构等。
网络异常,图片无法展示
|

设计文档这里还有个亮点,就是 自定义接口文档字段的使用, 我们希望接口文档 跟 产品需求文档 一一对应, 于是我们在接口文档中自定义了 “Confluence需求链接”:

网络异常,图片无法展示
|

若是已经实现的功能,在Apifox里补充接口文档, 有个快速的方法, 通过JSON/XML智能识别/快速导入,很好用:

网络异常,图片无法展示
|

网络异常,图片无法展示
|

4.5 接口数据导入

之前API大部分都在Postman 和RAP上,Apifox导入数据的功能异常强大,几乎你用到的数据格式都支持,这个必须点赞!我的数据很多都来自Postman 和RAP,先从Postman和RAP上导出数据。

网络异常,图片无法展示
|
然后通过【项目设置】的  【导入数据(手动导入)】把数据导入Apifox;导入后正常运行。只是在Postman导入的过程中,发现了小问题,就是我的有些接口的请求参数默认导成了  form-data格式,而我们都是JSON的,这个问题还需要深入研究下 WHY。
网络异常,图片无法展示
|

网络异常,图片无法展示
|

4.6 接口调试

4.6.1 Apifox调试之”自动校验”:

小狐调试接口基本操作跟Postman操作无差别。而且调试时亮点不少,比如调试时 小狐 会 ”自动校验” 数据结构,她会根据接口文档的定义,“自动校验“”返回的数据结构正确与否。无需任何脚本非常奈斯。

网络异常,图片无法展示
|

4.6.2 Apifox调试之”环境、变量管理”:

调试时难免用到不同的环境,需要设置环境变量、全局变量、全局参数什么的,Apifox全都有而且易操作。

网络异常,图片无法展示
|

4.6.3 Apifox调试之”断言”

网络异常,图片无法展示
|

4.6.4 Apifox调试之”接口依赖”

(下一个接口的请求依赖于上一个接口返回的数据)。 拿我们的项目为例, 我们有些接口都会用到登录接口返回的token值,具体怎么做呢? 如下:

登录接口的【后置操作】 提取变量:

网络异常,图片无法展示
|

阿哲项目的某接口用到的登录接口返回的token值,在请求参数中加入前面提取的变量即可:

网络异常,图片无法展示
|

4.7 测试用例

Apifox中组织管理测试用例超级方便,对接口文档执行【运行】操作,然后 【保存为用例】就会生成一条测试用例;并且用例会自动跟随这接口改变而变。

网络异常,图片无法展示
|

修改请求参数,点击 发送 保存为用例 ,可再生成用例,以此类推 一个接口轻松设计多条正异常测试用例。

网络异常,图片无法展示
|

4.8 接口MOCK数据

Apifox的亮点在于,智能MOCK数据很人性化,我们测试人员在用的时候更多的是使用“自动生成”功能。

网络异常,图片无法展示
|

网络异常,图片无法展示
|

4.9 自动化测试

自动化测试用例的组织以及测试套件的组织与管理是我们测试小伙伴工作的重点。

网络异常,图片无法展示
|

网络异常,图片无法展示
|

网络异常,图片无法展示
|

我们刘哥也是推荐测试组内小伙伴用 “从【接口用例】导入(推荐)”,【接口管理】模块中组织好每个接口相关的测试用例,然后到【自动化测试】模块针对需求场景组织测试用例。

无论是测试用例还是测试套运行后都会生产测试报告

网络异常,图片无法展示
|

测试报告方便查看、导出:

网络异常,图片无法展示
|

4.10 API Hub

小狐自身带了很多第三方平台,如企业微信、钉钉等的开放 API ,相信通过对他们的学习研究,可以让自己变的更优秀。

网络异常,图片无法展示
|

网络异常,图片无法展示
|

网络异常,图片无法展示
|

官网下载地址:www.apifox.cn

5 相守

相爱中的人儿总是你侬我侬,容易被爱情冲昏头脑。但是我们是理智的, Apifox已经很优秀,但仍有很多进步空间,比如:

  • 持续集成-- 感觉持续集成的方便度还不够,有优化空间
  • 增加对gRPC、WebSocket 等协议接口的支持

有人说过”1000个项目心中有1000个小狐”,愿我跟“小狐”的相遇、相识、相知、相爱终能相守一生。

网络异常,图片无法展示
|

相关文章
|
5月前
一款测试接口的好插件
一款测试接口的好插件
35 0
|
7月前
LabVIEW在应用程序和接口中使用LabVIEW类和接口
LabVIEW在应用程序和接口中使用LabVIEW类和接口
68 0
|
7月前
|
JSON 数据格式
如何创建接口,设计过接口
项目遵循Restful规范设计接口,请求路径基于资源命名,如查询用GET,新增用POST,修改用PUT,删除用DELETE。GET参数通过问号或路径传递,POST/PUT用JSON。统一的接口规范规定:返回数据多时,用VO过滤或整合数据。
48 0
|
Arthas JSON 前端开发
在接口自动化测试过程中,如何开展接口自动化测试?单个模块和多个模块关联又怎么去做测试?
在接口自动化测试过程中,如何开展接口自动化测试?单个模块和多个模块关联又怎么去做测试?
|
安全 测试技术 API
python接口自动化(一)--什么是接口、接口优势、类型(详解)
经常听别人说接口测试,接口测试自动化,但是你对接口,有多少了解和认识,知道什么是接口吗?它是用来做什么的,测试时候要注意什么?坦白的说,笔者之前也不是很清楚。接下来先看一下接口的定义。
227 0
python接口自动化(一)--什么是接口、接口优势、类型(详解)
|
jenkins 测试技术 持续交付
python接口自动化(三十五)-封装与调用--流程类接口关联(详解)
流程相关的接口,主要用 session 关联,如果写成函数(如上篇),s 参数每个函数都要带,每个函数多个参数,这时候封装成类会更方便。在这里我们还是以博客园为例,带着小伙伴们实践一下。
389 0
python接口自动化(三十五)-封装与调用--流程类接口关联(详解)
|
测试技术
Appium自动化框架从0到1之 公共方法的封装
Appium自动化框架从0到1之 公共方法的封装
127 0
|
存储 JSON 前端开发
接口测试平台代码实现30:接口库-接口列表
接口测试平台代码实现30:接口库-接口列表
接口测试平台代码实现30:接口库-接口列表
|
存储 测试技术 数据安全/隐私保护
RobotFrameWork接口项目分层及通用控制方式
RobotFrameWork接口项目分层及通用控制方式
1005 0
RobotFrameWork接口项目分层及通用控制方式