鼠年全马铁人挑战 WEEK 12:API 测试工具 - Postman


              Photo on Business Wire

在文章还没开始之前,小弟先附上 Postman 官方网站的传送门。
有兴趣或是觉得小弟写得不清楚的,都可以再到官方网站来看看~
( ~'ω')~ <<< Postman 官方网站 >>> ~('ω'~ )


前言

在上週的 "鼠年全马铁人挑战 WEEK 11:API 测试工具 - Insomnia" 文章中已经介绍过 Insomnia API 的测试工具了,而在这礼拜要介绍的是另一个 API 测试工具 "Postman"。

小弟以前都是用 Insomnia 来做 API 的测试,但是近期的某些需求在 Insomnia 无法达成,因此在同事的推荐下,我决定来了解一下 Postman 顺便写成笔记文章。所以如果内容有错误或不清楚的,也欢迎各位大哥大姐们提点。


介绍 Postman

Postman 在官方网站上就可以进行操作了,前提是要为登入的状态。
如果想要直接在网页上使用,可以参考连结:Postman Dashboard。
如果觉得在网页操作太麻烦的话,安装应用程式就可以在本机端直接操作了。
小弟在这篇的文章会以 Postman 的应用程式操作来做说明。

在免费使用的情况下 Postman 所提供的功能就很多了,多到我都觉得有点乱了。
但是最基本的功能一样还是那些

清楚划分的工作区。快速的汇入与汇出。便捷环境变数切换。多型别的 http request。

上述的内容,在这週的文章小弟将一一写成笔记,为大哥大姐们做介绍。


安装 Postman

一开始当然是要先把 Postman 安装下来啦~
Postman 适用于 Mac, Windows 和 Linux 作业系统。
那就废话不多说,赶快到官方网站的下载处下载吧!
官方网站下载处: Download Postman

使用 Postman

开启 Postman

确认 Postamn 安装成功后,就可以开启 Postman。
刚开启 Postman 的时后样子会长下面这张图的样子。
那就让我们一起开始进行接下来的奇幻旅程吧~

创建一个 HTTP Request

点击左上角的 + New 按钮,或是直接点击 + 的页籤。

选择 Create New 中,左上角的 Request。

填写 Request 输入框内容。

在 Request name 的栏位中填写 request 的名字。 (必填)在 Request description 的栏位中可以做一些详细描述。 (选填)Search for a collection or folder 可以搜寻现有的资料夹。Create Folder 可以新增资料夹并把该 request 归纳于此。当一切资料填妥后就可以按下 Save 的按钮储存了。

设置 http request 的 URL 并且送出执行。

完成新增 http request 后,就可以在请求方式的旁边填写 URL。
小弟这边的範例将使用,六角学院大大释出的马拉松 API 资料。
https://raw.githubusercontent.com/hexschool/w3hexschool-API/master/data.json

送出 request 并查看 request 的回传讯息。

点击 URL 旁边的 Send 按钮,执行 request 请求。
详细的讯息会在下方的视窗中显示。
在这个区块中可以得到的资讯有:

状态代码 (200 OK)
执行时间 (569 ms)
内容大小 (47.05 KB)
回传内容 (Body, Cookies, Headers, Test Results)

筛选回传回来的讯息。

在 Postman 这点就没有 Insomnia 快速且方便。
首先,先点击 request 工具列中的 Tests 页籤。
然后贴上下方连结中附上的程式码。 (为了让 filter 功能在 postman 可用)
因为内容有点多所以我就写到 Gist Github 了。 点我 "Code Link"

接着就可以执行 request,然后等待回传。
资料回传后点选最下面 Body 中的 Visualize 选项。
最后就是输入上次说过的筛选指令。
小弟这边的範例将使用,自己的名字来筛选出文章名称。
(因为小弟上週名字有更新过,所以筛选的名字跟上週不太一样)
$..[?(@.name=="谢昌谚 (Ron Hsieh)")].blogList[*].title

看完以上内容的大哥大姐们。
恭喜你,跟我一样已经会使用 Postman 的基本功能了~
接下来的内容将会进一步的介绍其他功能。

灵活运用 Postman

工作区 (Workspaces)

当你有许多专案都会使用到 API。
这个时候有效的分类工作区会是一个很好的选择。

点选上方工作区的下拉式选单。

点击 Create New 来新增一个新的工作区。
其中 Type 的选项可以选择 Team 或是 Personal。
如果选的是 team 的话,可以邀请其他成员共同编辑。
(记得你邀请的伙伴也必须有使用 Postman 才会邀请成功喔~)

汇入/汇出资料 (Import/Export)

不得不说,虽然功能差不多,但是我觉得还是 Insomnia 的比较好一点。
因为在 Ibsomnia 中,会有个视窗让你勾选要 export 的 request。
这样一来就不会把 workspace 中不想公开的资讯也 export 出来。
但是既然 Postman 也有这个功能就来笔记一下好了。

进入 Postman 的 "设定" 专区。

也可以使用快捷键 command/control + ,

进入 Settings 后,选择 Data 的页籤。

进入该页面后就可以依照自己的需求 import/export。

环境变数 (Manage Environments)

在测试的时候经常会遇到一种情况。
就是同一支 API 要打到不同的环境。
但是 API 的内容并没有差太多,只是 host 不同而已。
环境较常会被分成:开发环境、测试环境、正式环境。
所以为了解决重複创建类似的 http request。
就可以透过 环境变数 的设计方式来达成。
小弟这边的範例会把 base_url 变数,用来储存 URL 部分的资讯。

点选右上角 齿轮 icon 的 Manage Environments 按钮。

可以点击下方的 Add 来新增一个 Environment 来管理。
也可以点击预设的直接使用 "My Workspace - globals"。
或是是点击 Add 旁边的旁边的 Globals,编辑全域变数。

定义环境变数,与变数值。

出现编辑栏位后,在 Variable 填上变数名 与 Initial value 填上变数值。
确认输入完之后,就可以点击右下角的 Update 完成编辑。

使用自行设定的环境变数。

在使用的栏位先打上 {{}} 之后,在把环境变数的名字填入。
如果未打完的话,会跳出对应的选项可以选择。
自行设定的环境变数,在选择时通常是绿色带有 E 的符号。

更进一步的使用环境变数。

在第二步的编辑中
使用相同的 key 但是不同的 value,存在不同的 environment 中。
这样一来就可以达到快速切换环境来使用变数了。

Request 前的脚本 (Pre-request Script)

有些时候在打 API 之前必须先做好一些处理。
这也是小弟会使用 Postman 的最大原因之一。
因为小弟这支 API 要处理的事情太多。

body 要带 timestamp,整包的 body 又要转成 base64。
header 的密钥要带 十六进位 的 SHA-384 的 密钥。

一支 API 需要做的事情真的是太多太複杂。 (小弟只是想抱怨)
但是使用 Pre-request Script 的功能就可以轻鬆达成了。
想要使用的话直接点击 Pre-request Script,就可以撰写了~

代码产生器 (Generate Code)

当 API 使用 Postman 完成进行后。
想要把该 API 的内容应用到程式设计中。
就可以透过此功能来快速生成所需的代码。

点击 "Code" 按钮。 (在 Save 按钮下方)

出现编辑器后就可以选择程式语言。


结尾

因为上週已经介绍过了 Insomnia 的 API 测试工具。
所以这週的 Postman 工具在使用上都会与 Insomnia 做比对。
但是小弟个人认为还是 Insomnia 较为好用。
可能是因为小弟自己不习惯 Postman 的操作。
但是不得不说 Postman 的 Pre-request-Script 真的很好用。
如果 Insomnia 也有这个功能,我可能就没机会使用 Postman 了。 ( σ՞ਊ ՞)σ
这週的内容其实跟上週一模一样。 (抱歉,小弟太混了 ( ˊ•̥̥̥ω•̥̥̥ˋ ))
但基本上还是在介绍一些操作方式,希望让第一次使用的人比较好上手。
如果有疑问或是有错误,还请各位大哥大姐提点。
小弟将继续往下週迈进。 ─=≡Σ((( つ•̀ω•́)つ


参考文件:

Postman | The Collaboration Platform for API Development
GitHub: hexschool/w3hexschool-API


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章