在日常的开发过程中,大家使用过最多的接口测试工具是什么呢? 
相信不少同学,脑海中浮现的第一个答案就是postman。
在博主日常使用过程中,发现了一款比它更好用的工具,并且,它居然还是国产软件!今天国产之光它来了,接下来,我将闪耀的介绍这位后起之秀:ApiPost! 
前言:Apipost 是什么呢?
简单来说: Apipost = postman + Swagger +Mock,集大成者! 
从功能上来讲 ,它集众多功能于一身,能够化繁为简,还是一款国产软件,网络速度更快,中文更贴心!从费用上来讲 ,它对15人以下的团队和个人完全免费,针对高校、培训机构完全免费。无论是自用,还是小团队使用,都没有问题!从安全性上来讲 ,它可根据企业需要进行私有化部署,数据更安全!同时能够实现内外网隔离,扩展性更强,兼容性更高! 从软件发展目标上来讲 ,它的目标是为不同职能的研发技术团队提供一个通用可协作的工具,提高整体工作效率。版本积极 ,能在国内严酷的环境中不断成长和变化,目前全新Apipost 6.1 推出了很多强力的功能。
官网描述与Postman的对比:  博主亲身体验,大概总结了下大致有这些功能:  接下来,和我一起走进apipost 的世界吧!  可供学习参考的资料:
- 官网地址: https://www.apipost.cn?token=131a4d3089559305c769f700d6229525
- Web在线使用:https://console.apipost.cn/register?token=131a4d3089559305c769f700d6229525
- 客户端下载: https://www.apipost.cn/download.html?token=131a4d3089559305c769f700d6229525
- 使用文档
- 官方视频培训教程
- 更新日志
一、初识Apipost
1.1 安装Apipost
- 点击官方网站,可以看到有两种方式:一种是客户端下载,另外一种是WEB版下载;客户端支持类型非常多,基本包含了市面95%以上使用的系统环境,如图所示:
 - 由于博主电脑为Windows系统,所以我直接选择了64位系统直接下载;
- 选择目录点击安装:
 - 安装完成后进入首页界面,不需要登录即可开始扬帆起航~
 - WEB版功能的支持,能够在不下载客户端的情况下方便快捷的使用apipost功能,并且天然支持跨机器数据共享,接下来我们来讲讲Web版本的界面及功能吧!
1.2 Apipost 功能介绍
- 登录apipost的首页。博主使用WEB版进行登录,(由于博主已经注册,不详细描述注册过程,这过程非常简单,只需要验证手机号。)它支持账号密码、以及微信登录的功能,符合国人使用习惯。
 - 初始界面内置了团队管理、项目管理,能够添加多个团队和项目;同时能够对团队里面的人员以及对应权限进行设置。对于项目细节,它支持分享项目、添加协作人员、查看文档、跨团队转移项目、克隆项目等功能,同时,也支持一些项目统计分析,能够match到一些Project Manager 的痛点,如图所示:
  - 进入工作台,可以看到主要由APIs、测试、以及笔记功能,测试和开发同学能够在这个地方比较方便的完成各自所需的工作,功能支持丰富齐全。
 - APIs菜单,可以看到API调用界面与Postman风格保持一致,在减少切换工具的学习成本同时,友好的中文界面有助于初入职场的新手快速入门;
 - 测试菜单中,提供了对测试同学很友好的功能,比如:
- 对目录和各状态的接口进行搜索
- 对流程的切换、新建、设置和执行
- 统计测试接口的成功、失败数量
- 支持测试结果的导出
 - 笔记菜单中,提供了笔记分组、笔记标题内容、丰富的内容格式、支持markdown和实时预览功能
 - 通过在上一小节中,我们初步从登陆开始到首页,再到工作台,了解到了Apipost的大致功能,当然远不止我介绍的这些,它还支持日志记录、团队和项目消息通知、背景切换(程序员当然要好好保护眼睛啦~)、环境、参数库等众多功能,等你来发现啦!
二、使用Apipost 测试第一个Api接口
看了章节一的大致介绍,可能已经有同学产生了测试一下的冲动啦 
- 这件事,博主替大家完成,首先我会讲一下大致的参数介绍,然后将用java实现GET、POST、PUT、DELETE 四种请求方式,通过Apipost来进行接口测试;
2.1 请求参数介绍
-
我们先来看API请求参数: 1)Header参数: 可以设置或者导入Header参数,cookie也在Header进行设置;  2)Query参数:支持构造URL参数,同时支持RESTful的PATH参数  3)Body参数:Body 提供三种类型 form-data/x-www-form-urlencoded/raw,每种类型提供三种不同的UI界面: -
当我们要做一些操作时,有这些情况选择: 1)当你需要提交表单时,切换到 x-www-form-urlencoded  2)当你需要提交有文件的表单时,切换到 form-data  3)当您需要发送JSON对象或者其他对象时,切换到对应的raw类型即可 -
然后我们来看看返回值和可视化界面: 1)返回类型中可选:美化、原生、预览、断言和可视化。  2)看一下可视化,它能够将数据以表格等形式展示出来:  -
其他功能,比如分享接口:在apipost中,分享接口以接口文档的形式发送给接收人;同时它也支持postman中的类似的代码形式,如图所示:  大致的介绍已经完毕,接下来我们一起来进入实战阶段,展开对Apipost的实际测试!
2.2 使用Apipost进行实战测试
- 编写被测试的接口代码:(Java 的框架部分不是本文重点,故不进行深入描述,只贴接口代码)
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("demo")
public class DemoController {
@GetMapping("ceshi_get")
public String ceshiGet(){
return "GET 请求成功";
}
@PostMapping("ceshi_post")
public String ceshiPost(){
return "POST 请求成功";
}
@PutMapping("ceshi_put")
public String ceshiPut(){
return "PUT 请求成功";
}
@DeleteMapping("ceshi_Delete")
public String ceshiDelete(){
return "DELETE 请求成功";
}
}
- 装配GET 请求方式并进行调用:
  - 装配POST 请求方式并进行调用:
 - 装配PUT 请求方式并进行调用:
 - 装配DELETE 请求方式并进行调用:
 - 以上,为博主自行编写的demo。官方非常贴心,刚安装完成客户端时,apipost已自带一些各种类型的请求示例:

我们成功执行了常用的四种请求体,除此以外还支持其他的请求方式;其他高级功能可以通过官方文档、官方视频得到解答。接下来,我们来看看它的核心功能吧!
三、Apipost 核心亮点功能

-
亮点1:一键快速生成文档。
- 快速生成文档的意义?接口文档的撰写非常麻烦,很多属于重复工作,效率低下。不写的话,测试不理解接口含义,沟通麻烦;写的话,又挤压开发时间,导致项目周期紧张;一键快速文档能够在提升团队协作效率的同时,大幅度减少不必要的时间消耗;
- apipost支持一键快速生成文档,只需要在apipost按下“分享文档”按钮,就会一键自动生成漂亮、规范的文档,并且可以自定义分享有效期及权限。
- 文档可设置有效期、开放和密码查看、批量分享、分享管理、导出文档(支持word、html、markdown格式)等功能
  -
亮点2:团队间可实时协作。
- 团队协作的意义?APIPOST中的团队是为了隔离项目。设计的初衷是为了便于人员流动,可以把它一个公司理解为一个团队。
- 当人员离职或者更换公司时,可以通过新建团队和切换团队来实现不同公司间项目数据的隔离。
- 同时,以项目划分,对接口进行隔离。项目的意义在于我们可以把不同的业务创建为不同的项目,从而实现接口数据的隔离。可以理解为分组,以项目划分更贴近我们实际工作;
- 针对团队成员间协作不同步,数据保存有冲突,无法追溯变更记录的情况,多人在线协作时,Apipost支持数据实时同步,有冲突解决机制,并且可以追溯协作日志。
- 同步按钮,可以手动、被动触发:
 - 消息能告诉我们项目、团队变化进展:
 - 协作日志能追踪每个操作变化,方便我们溯源:
 -
亮点3:客户端支持不登录使用。
- 用户处于局域网环境时(或者公司对网络限制严格),Apipost客户端支持不登录使用。
- 博主自测关闭网络,能够正常调用内网api;即便在内网环境下,也能够很方便的使用它。毕竟咱们开发、测试就是在内网环境。
-
亮点4:客户端支持离线脱机使用。
- 即使在拔掉网线的情况下,仍可以正常打开Apipost客户端的进行大部分操作。
-
亮点5:参数库描述。
- 很多接口往往具有大量相同名称、相同意义的参数,每次手动重复录入,非常耗时、低效。Apipost通过自定义参数描述库,可以将大量参数进行预注释,并在输入参数时支持自动填充描述,节省了我们不少重复录入参数描述的时间。
- 我们创建了卖家、买家、用户、订单编号等参数描述,在后续api填写参数时,能够自动去匹配参数库,并自动填充参数描述,非常棒这个功能!,如下图所示:
 
- 亮点6:websocket测试功能。
- 全新Apipost6.1版本重点推出用户屡次提到的Websocket测试功能;
- 新建api时,选择websocket类型,即可创建websocket请求:

四、Apipost 其他功能
- 无缝迁移:支持Postman一键导入,能够快速便捷的将postman数据迁移到新的工具上来;
- 官方自带博客社区,活跃度很高。
 - 官方自带问答社区
 提了问题后,官方也会协助解决问题,效率非常快; 同时,平台也有微信群,正在博主写这篇博客的时候,他们下班还在免费为大家解决问题: 
写在结尾,使用后的一些心得体会
-
刚开始博主也不是很熟悉这款软件,听到它同时支持Postman/Swagger/Mock等很多功能,开始有了一些关注; -
后来在使用的过程中,很符合我的个人使用习惯,感觉还是很容易上手,可能是postman用多了吧,发现契合度真的很高;
官方提到了一些核心亮点,我觉得多人协作,文档管理,以及参数库描述非常棒;大部分这类工具的多人协作、文档管理都是要收费的;对于参数库描述也算作一个创?新,能够自动的为字段加上注释,很贴心有木有~~
-
当然,值得改进的地方也有:接口新建名称、url路径填写的时候,目前还不支持ctrl+箭头快速移动、ctrl+shift+箭头快速筛选,相信这个小功能会在后续版本中得到改进; -
官网说的一句话,站在巨人的肩膀上前进。咱们也是站在众多的工具上前行;如何提高工作效率,不卷不996,那就得当好“伯乐”,找到那匹“千里马”。只要能够提高工作效率,就值得去试一试,不然怎么有时间摸鱼呢?  好啦,咱们下期再见!
|