在日常的开发过程中,大家使用过最多的接口测试工具是什么呢?相信不少同学,脑海中浮现的第一个答案就是postman。
最近经同行介绍发现了一款比它更好用的工具,并且,它居然还是国产软件!今天国产之光它来了,接下来,我将闪耀的介绍这位后起之秀:Apipost!
Apipost 是什么呢?
简单来说: Apipost = postman + Swagger +Mock,集大成者!
1、从功能上来讲,它集众多功能于一身,能够化繁为简,还是一款国产软件,网络速度更快,中文更贴心!
2、从费用上来讲,它对15人以下的团队和个人完全免费,针对高校、培训机构完全免费。无论是自用,还是小团队使用,都没有问题!
3、从安全性上来讲,它可根据企业需要进行私有化部署,数据更安全!同时能够实现内外网隔离,扩展性更强,兼容性更高!
4、从软件发展目标上来讲,它的目标是为不同职能的研发技术团队提供一个通用可协作的工具,提高整体工作效率。
5、版本积极,能在国内严酷的环境中不断成长和变化,Apipost 6.1 推出了很多强力的功能。
可供学习参考的资料:
1、官网地址: https://www.apipost.cn
2、桌面端下载: https://www.apipost.cn/download.html
3、使用文档
4、官方视频培训教程
5、更新日志
一、初识Apipost
1.1 安装Apipost
1、点击官方网站,可以看到有两种方式:一种是客户端下载,另外一种是WEB版下载;客户端支持类型非常多,基本包含了市面95%以上使用的系统环境,如图所示:
2、由于本人电脑为Windows系统,所以我直接选择了64位系统直接下载;
5、WEB版功能的支持,能够在不下载客户端的情况下方便快捷的使用apipost功能,并且天然支持跨机器数据共享,接下来我们来讲讲Web版本的界面及功能吧!
1.2 Apipost 功能介绍
1、登录apipost的首页。博主使用WEB版进行登录,(由于博主已经注册,不详细描述注册过程,这过程非常简单,只需要验证手机号。)它支持账号密码、以及微信登录的功能,符合国人使用习惯。
2、初始界面内置了团队管理、项目管理,能够添加多个团队和项目;同时能够对团队里面的人员以及对应权限进行设置。对于项目细节,它支持分享项目、添加协作人员、查看文档、跨团队转移项目、克隆项目等功能,同时,也支持一些项目统计分析,能够match到一些Project Manager 的痛点,如图所示:
3、进入工作台,可以看到主要由APIs、测试、以及笔记功能,测试和开发同学能够在这个地方比较方便的完成各自所需的工作,功能支持丰富齐全。
4、APIs菜单,可以看到API调用界面与Postman风格保持一致,在减少切换工具的学习成本同时,友好的中文界面有助于初入职场的新手快速入门;
5、测试菜单中,提供了对测试同学很友好的功能,比如:
6、笔记菜单中,提供了笔记分组、笔记标题内容、丰富的内容格式、支持markdown和实时预览功能
7、通过在上一小节中,我们初步从登陆开始到首页,再到工作台,了解到了Apipost的大致功能,当然远不止我介绍的这些,它还支持日志记录、团队和项目消息通知、背景切换(程序员当然要好好保护眼睛啦~)、环境、参数库等众多功能,等你来发现啦!
二、使用Apipost 测试第一个Api接口
这件事,博主替大家完成,首先我会讲一下大致的参数介绍,然后将用java实现GET、POST、PUT、DELETE 四种请求方式,通过Apipost来进行接口测试;
2.1 请求参数介绍
1、我们先来看API请求参数:
1)Header参数: 可以设置或者导入Header参数,cookie也在Header进行设置;
2)Query参数:支持构造URL参数,同时支持RESTful的PATH参数
3)Body参数:Body 提供三种类型 form-data/x-www-form-urlencoded/raw,每种类型提供三种不同的UI界面:
2、当我们要做一些操作时,有这些情况选择:
1)当你需要提交表单时,切换到 x-www-form-urlencoded
2)当你需要提交有文件的表单时,切换到 form-data
3)当您需要发送JSON对象或者其他对象时,切换到对应的raw类型即可
3、然后我们来看看返回值和可视化界面:
1)返回类型中可选:美化、原生、预览、断言和可视化。
2)看一下可视化,它能够将数据以表格等形式展示出来:
4、其他功能,比如分享接口:在apipost中,分享接口以接口文档的形式发送给接收人;同时它也支持postman中的类似的代码形式,如图所示:
大致的介绍已经完毕,接下来我们一起来进入实战阶段,展开对Apipost的实际测试!
小标题
2.2 使用Apipost进行实战测试
1、编写被测试的接口代码:(Java 的框架部分不是本文重点,故不进行深入描述,只贴接口代码)
import org.springframework.web.bind.annotation.*;
/**
* @author CSDN 暗余
* @since 2022/4/23
*/
@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 请求成功";
}
}
3、装配POST 请求方式并进行调用:
4、装配PUT 请求方式并进行调用:
5、装配DELETE 请求方式并进行调用:
6、以上,为博主自行编写的demo。官方非常贴心,刚安装完成客户端时,apipost已自带一些各种类型的请求示例:
我们成功执行了常用的四种请求体,除此以外还支持其他的请求方式;其他高级功能可以通过官方文档、官方视频得到解答。接下来,我们来看看它的核心功能吧!
三、Apipost 核心亮点功能
亮点1:一键快速生成文档。
- 快速生成文档的意义?接口文档的撰写非常麻烦,很多属于重复工作,效率低下。不写的话,测试不理解接口含义,沟通麻烦;写的话,又挤压开发时间,导致项目周期紧张;一键快速文档能够在提升团队协作效率的同时,大幅度减少不必要的时间消耗;
- apipost支持一键快速生成文档,只需要在apipost按下“分享文档”按钮,就会一键自动生成漂亮、规范的文档,并且可以自定义分享有效期及权限。
文档可设置有效期、开放和密码查看、批量分享、分享管理、导出文档(支持word、html、markdown格式)等功能
小标题
亮点2:团队间可实时协作。
- 团队协作的意义?APIPOST中的团队是为了隔离项目。设计的初衷是为了便于人员流动,可以把它一个公司理解为一个团队。
- 当人员离职或者更换公司时,可以通过新建团队和切换团队来实现不同公司间项目数据的隔离。
- 同时,以项目划分,对接口进行隔离。项目的意义在于我们可以把不同的业务创建为不同的项目,从而实现接口数据的隔离。可以理解为分组,以项目划分更贴近我们实际工作;
- 针对团队成员间协作不同步,数据保存有冲突,无法追溯变更记录的情况,多人在线协作时,Apipost支持数据实时同步,有冲突解决机制,并且可以追溯协作日志。
- 同步按钮,可以手动、被动触发:
- 消息能告诉我们项目、团队变化进展:
- 协作日志能追踪每个操作变化,方便我们溯源:
亮点3:客户端支持不登录使用。
- 用户处于局域网环境时(或者公司对网络限制严格),Apipost客户端支持不登录使用。
- 博主自测关闭网络,能够正常调用内网api;即便在内网环境下,也能够很方便的使用它。毕竟咱们开发、测试就是在内网环境。
小标题
亮点4:客户端支持离线脱机使用。
- 即使在拔掉网线的情况下,仍可以正常打开Apipost客户端的进行大部分操作。
亮点5:参数库描述。
- 很多接口往往具有大量相同名称、相同意义的参数,每次手动重复录入,非常耗时、低效。Apipost通过自定义参数描述库,可以将大量参数进行预注释,并在输入参数时支持自动填充描述,节省了我们不少重复录入参数描述的时间。
- 我们创建了卖家、买家、用户、订单编号等参数描述,在后续api填写参数时,能够自动去匹配参数库,并自动填充参数描述,非常棒这个功能!,如下图所示:
小标题
亮点6:websocket测试功能。
四、Apipost 其他功能
1、无缝迁移:支持Postman一键导入,能够快速便捷的将postman数据迁移到新的工具上来;
2、官方自带博客社区,活跃度很高。
3、官方自带问答社区
提了问题后,官方也会协助解决问题,效率非常快;
同时,平台也有微信群,正在博主写这篇博客的时候,他们下班还在免费为大家解决问题:
写在结尾,使用后的一些心得体会
刚开始博主也不是很熟悉这款软件,听到它同时支持Postman/Swagger/Mock等很多功能,开始有了一些关注;
后来在使用的过程中,很符合我的个人使用习惯,感觉还是很容易上手,可能是postman用多了吧,发现契合度真的很高;
官方提到了一些核心亮点,我觉得多人协作,文档管理,以及参数库描述非常棒;大部分这类工具的多人协作、文档管理都是要收费的;对于参数库描述也算作一个创•新,能够自动的为字段加上注释,很贴心有木有~~
当然,值得改进的地方也有:接口新建名称、url路径填写的时候,目前还不支持ctrl+箭头快速移动、ctrl+shift+箭头快速筛选,相信这个小功能会在后续版本中得到改进;
官网说的一句话,站在巨人的肩膀上前进。咱们也是站在众多的工具上前行;如何提高工作效率,不卷不996,那就得当好“伯乐”,找到那匹“千里马”。只要能够提高工作效率,就值得去试一试,不然怎么有时间摸鱼呢?