您现在的位置是:首页 > 技术文章 > 详情<<文章列表阅读 君子性非异也,善假于物也——功能强大的Postman API Postman wjyuian 2020-05-31 642 0 > 君子性非异也,善假于物物也! 相信大部分开发人员,尤其是后端开发,都听过`postman`这款堪称神器的软件吧。它的一切都是为`API`而生的: + 管理API:创建、更新、删除、执行我们开发的接口 + 分享API:可以将我们编写的接口共享给小组其他成员,比如将写好的并经过良好自测的接口提供给前端同学 + 控制API版本:通过版本号,我们可以同时管理接口的多个版本 + API的自动化测试:通过postman,我们可以很简单的就是实现接口的断言测试 下面我们就先从入门使用开始介绍postman的常用功能和技巧吧。 ------ ### 基础 我使用的是postman的`mac`版本,所以后续的介绍都是基于这个版本的。当我们打开postman之后,在Collections菜单中默认是没有内容的,不过官网已经为我们准备了一个[完整的学习样例](https://docs.postman-echo.com/)。打开这个网站之后,你会看到如下页面:  这是学习样例的共享API页面,也就是接口文档页面,我们直接点击右上角的`Run in Postman`按钮,浏览器会打开我们本地的Postman软件然后倒入整个学习样例接口:  #### 集合(Collection)+文件夹(Folder) 左边Collections中,`Postman Echo`就是一个API集合,而里面的`Request Methods`或者`Headers`就是这个集合下的细分文件夹。 所以,我们针对一个独立的项目可以创建一个`Collections`,然后为不同的模块创建不同的文件夹。 你可以随意运行学习样例中的几个Request,有个初步的感觉。 #### 接口文档 当我们完成了一些接口的开发及自测之后,就可以将这些API先分享给同事了。  点击`Postman Echo` > 右侧上面菜单 > 'View in web'。  然后,将这个文档地址发给他们即可。以后你在这个Colleciton中做所的更新、新增接口,他们刷新页面就能看到最新内容。 ------ ### 入门 当我们在``本地``开发完接口并自测通过之后,接下来就是发布``测试环境``。在测试环境通过之后发布`克隆环境`,最后就是发布`生产环境`。 #### 多环境(Environment) `本地`、`测试环境`、`克隆环境`、`生产环境`一般是每个上线流程会涉及到的四个环境。不同环境需要测试的接口都是一致的,区别就是`API`地址与`Cookie`不同。所以按环境定义API地址与Cookie等信息就很实用,恰好Postmant就给我们提供了这个功能。  当然这里的环境参数配置你可以分享(就是按钮Share)给同一个工作组(Workspace)的其他同事。 点击其中的``本地``环境,可以看下我配置的参数,都是不同应用的本地地址,还包含了其它的常用参数,比如Cookie等。  #### 全局参数设置(Globals) 我们可以将每个环境的参数看成是局部参数,所以自然就有对应的全局参数Globals。入口就在环境配置页面上,下方最左侧有一个`Globals`按钮:  点击按钮进入全局参数定义页面,设置方式与环境参数一致,仅仅是生命周期不同。 看到这里可能会有疑问,如果全局参数和局部参数的参数名相同时,取值优先级如何?截止发文,我测试过这个优先级,Postman是没有进行优先级处理的。比如,`本地`和`全局`都有同一个参数`testHdToken`,那么当你在输入参数名的时候,Postman会给你选择,让你自己选择`E`还是`G`。`E`表示`Environment`,`G`表示`Globals`。  #### API分享 前面介绍过,我们可以将自测通过的接口,直接以接口文档的形式分享给其他同事。如果,我想将接口的测试配置分享给同组的其它开发呢?Postman早已经考虑到,还记得上面提到的`Workspace`吗?我们可以将整个集合中的所有接口都分享给其他开发同事,他们就不用进行重复设置了。  不过,免费账号的分享额度比较低。 ------ ### 进阶 有些系统用的认证方式是自定义的,比如我上面的一些项目,都是根据账号密码换取Token,然后通过将Token信息设置在Cookie中进行认证判断的。 不过也有许多项目是标准的认证方式,比如`OAtuh2.0`,`SpringSecurity`就比较方便的支持这种认证。Postman提供了很多种认证方式的快捷配置。  由于我这个项目中,`/oauth/token`接口获取token时需要设置`Headers`参数,而Postman的`OAtuh2`认证模块默认不支持设置`Headers`(可能是我没发现)。所以,我先通过Post请求,根据认证参数要求,先获得token。 然后在`Auth`菜单下选择`Bearer Token`的认证模式,在`Token`参数上,选择之前获取的token内容。  #### 公共认证(Authorization) 不过这个项目中,几乎所有的接口都要进行token验证才能方法,我们总不能每个Request请求都进行`Auth`配置吧。当然,Postman为我们提供了`Collections`、`Folder`和`Request`三个级别的`Authorization`配置。 `Request`级别的认证配置上面已经介绍过了,下面看下`Collections`和`Folder`的配置。 `Collections`和`Folder`两个级别的认证配置方式是一样的,通过其右侧菜单中的`Edit`按钮:  进入配置页面,后续的设置也与`Request`级别的设置一样:  #### 断言测试(Tests) 在设置`Collections`和`Folder`级别的认证界面,可以看到边上有一个子菜单是`Tests`,这就是针对接口`Response`的断言测试。 针对这一块内容,我也不甚了解,所以只做简单的功能介绍,具体的断言语法可以自行查阅相关资料。  断言参考文章:[官方TestScripts介绍](https://learning.getpostman.com/docs/postman/scripts/test_scripts/)、[https://www.cnblogs.com/CyLee/p/9749767.html](https://www.cnblogs.com/CyLee/p/9749767.html) 栏目导航 关于我 不止技术 工程化应用(23) 技术学习/探索(32) 自娱自乐(2) 还有生活 随便写写(1) 娱乐/放松(1) 点击排行 SpringBoot2从零开始(二)——多数据源配置 搜索引擎进阶——IK扩展之动态加载与同义词 从零开发参数同步框架(二)—— 前期准备之工具类 Nginx的nginx.conf配置部分解释 springMVC中controller参数拦截问题处理 Maven项目一键打包、上传、重启服务器 微信小程序深入踩坑总结 微信小程序的搜索高亮、自定义导航条等踩坑记录 标签云 Java(19) 搜索引擎(13) Solr(7) 参数同步(6) SpringBoot(4) ES(3) ElasticSearch(3) JVM(3) Netty(3) Spring(3) mongoDB(3) 设计模式(3) Curator(2) Docker(2) Dubbo(2) 大家推荐 魔神重返战场!厄祭战争的巴巴托斯:第四形态 搜索引擎入门——Solr查询参数详解以及如何使用Java完成对接 来聊一聊这个被淘汰的图片验证码 搜索引擎入门——聊聊schema.xml配置 搜索引擎入门——启动第一个Solr应用 君子性非异也,善假于物也——功能强大的Postman 择其善而从之——我为什么开始学习ElasticSearch 实现一个关于队列的伪需求是一种怎样的体验