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


             Photo by Greg Schier on Twitter

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


前言

Insomnia 在免费使用的情况下所提供的功能也是应有尽有。

清楚划分的工作区,让你身兼多职无烦恼。简单的汇入与汇出,让你分享资讯不卡卡。快速切换环境变数,让你快速切换超省事。多型别的 http request,让你一次满足多请求。

(为什么感觉在打广告一样(๑•́ ₃ •̀๑)~ 小弟没有接业配啊(|||゚д゚))

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


安装 Insomnia

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

而在 Mac 与 Linux 的作业系统中,也支援透过指令来进行安装呦。

Mac: brew cask install insomniaLinux: sudo snap install insomnia

使用 Insomnia

开启 Insomnia

确认 Insomnia 安装成功后,就可以开启 Insomnia。
刚开启 Insomnia 时会长下面这个样子。
那就让我们开始进行接下来一连串的简单教学吧~

创建一个 HTTP Request

点击左上角搜寻栏位旁边的加号的 icon。

可以选择新增一个 http request 或是新增一个资料夹 (Folder)。

点选 + New Request 或是使用快捷键来新增 http request。

点选 new request 将会跳出一个输入框。
该输入框可以为该 http request 命名,以及选择 http 的请求方式。

Get, Post, Put, Patch, Delete, Options, Head

小弟这边的範例将使用 "Get request",并且名为 "全马铁人挑战赛"。

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

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

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

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

状态代码 (200 OK)
执行时间 (618 ms)
内容大小 (150.6 KB)
执行纪录 (A Minute Ago)
回传内容 (Preview, Header, Cookie, Timeline)

筛选回传回来的讯息。

点击回传讯息处最底部的输入栏位。
可以筛选出你所需要的资讯。
最右边有 ? 的 icon 可以查看更多的操作说明。
小弟这边的範例将使用,自己的名字来筛选出文章名称。
$..[?(@.name==“Ron”)].blogList[*].title

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

灵活运用 Insomnia

工作区 (Workspaces)

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

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

点击 Create Workspaces 来新增一个新的工作区。
或是点击 Workspaces Settings 编辑该工作区。

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

当你整理了一堆 API 想要分享给别人。
或是别人也整理了一堆 API 想要分享给你。
这个时候就可以使用汇入/汇出的功能来达成。

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

点击 Import/Export 的选项来 汇入/汇出 资讯。
因为内容较为单纯,就不再赘述了~

嵌入执行按钮。

一样在 Import/Export 的页面中,点击最右边的 Create Run Button。

点击后将会开启一个视窗,输入 API 的名字并贴上 Curl。

複製下面的连结,可以嵌入到 HTML 或是 Markdown。
Run in Insomnia}

环境变数

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

点选左上角搜寻栏位上方的 No Environment 下拉式选单。

选择最下方的 Manage Enironment 来新增环境变数。

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

出现编辑器后,以 json 的方式写入 变数名(key) 与 变数值 (value)。
确认输入完之后,就可以点击右下角的 Done 结束编辑。

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

在使用的栏位打上环境变数的 key 就会跳出对应的选项可以选择。
点选所需的环境变数或是按 Enter 键来完成选择。
自行设定的环境变数,在选择时通常是紫色带有 x 的符号。

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

在第二步的编辑器中,可以使用左边栏位的 Sub Environments 选项。
使用相同的 key 但是不同的 value。
这样一来就可以快速切换环境来使用。

连接请求

当你所用的 "A" API 的内容需要使用到 "B" API 的回传值。
就可以使用连接请求的方式。
直接将 "B" API 的回传值带到 "A" API。
以下的内容会使用到上一个小节 "筛选回传回来的讯息" 的功能。
小弟这边的範例一样使用六角学院的 API 捞文章的资讯。

创建一个 Get http request (我将其命名为 "我的文章")。在 URL 的栏位中输入 Response 选择 "Response Body Attribute"。

选择青色 function 带有 f 的符号。

点选反红的 "Response Body Attribute" function。

在 "Request" 的栏位中,选择说明时提到的 "B" API。
也就是 "GET 全马铁人挑战赛"。

接这在 "Filter (JSONPath or XPath)" 的栏位中,输入搜寻内容。

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

Curl 的使用

Insomnia 提供的功能当中我觉得最方便的一个功能之一。
Curl 是一个利用 URL 的语法在 cmd 运行的文件传输工具。
简单来说就是只要有 cmd 也可以做到 Imsomnia 的事情。
而他的方便之处就在于可以产生出 curl。
也可以使用 curl 产生出 Insomnia 介面的内容。

在左边栏位的 http request 上点击右键

选择 Copy as Curl 的选项
此时你就回得到一串 curl 的指令了
curl --request GET \ --url https://raw.githubusercontent.com/hexschool/w3hexschool-API/master/data.json

在请求方式旁边的 URL 贴上 curl。

当你手上有一个 curl 的指令,也可以尝试看看这个方式。
如果没有的话,就拿上面的 curl 来试试吧~
先新增一个 http request 然后直接把 curl 贴在 URL 的栏位。
(可以故意把请求方式设定成非 Get 的试试~)

代码产生器

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

在左边栏位的 http request 上点击右键

选择 Generate Code 的选项

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


结尾

这次内容所介绍 API 的工具。
希望可以帮助需要测试 API 测试人员或开发人员。
内容大部分都有图片,希望不会太乱~
小弟将继续往下週迈进。 ─=≡Σ((( つ•̀ω•́)つ


参考文件:

Insomnia REST Client
GitHub: hexschool/w3hexschool-API


关于作者: 网站小编

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

热门文章