当前位置: 首页 > news >正文

Insomnia 简单使用方法

文章目录

  • 1. 新建工程
  • 2. 新建若干文件夹
  • 3. 设置环境变量
  • 4. 授权以及进行请求的链式调用 (chaining requests)
    • 4. 1 解决办法 1
    • 4. 2 解决办法 2

Insomnia 同 Postman, 用于测试后端 endpoint,很容易使用。
使用步骤如下:

1. 新建工程

2. 新建若干文件夹

目的是对请求进行归类,例如与 store 相关的请求都放到一个叫做 store 的文件夹中,下图所示的工程有4个文件夹:Store, User, Items, Tags

在这里插入图片描述

3. 设置环境变量

例如 url,如果修改了 url 或者端口号,设置并使用环境变量,就不需要每个请求手动修改。比方说,将所有请求中的 http://127.0.0.1:5000 手动改成 http://127.0.0.1:5005,会比较繁琐。
编辑环境变量可以点击 UI 中的 No Environment -> Managements,也可以使用 Ctrl + E 打开,然后设置 url,这里的名称可任意,但后面使用时要与其一致:

在这里插入图片描述

设置之后,请求的路径例如 http://127.0.0.1:5005/store 可以改成 {{url}}/store, {{url}} 会自动变成紫色,如下图所示:

在这里插入图片描述

4. 授权以及进行请求的链式调用 (chaining requests)

授权可以使用 jwt,jwt 在用户 login 之后获得,执行特定的操作需要此 token,例如 POST,DELETE,PUT 等,直观的测试方法是,先发送 login 请求,然后复制响应中的 jwt token,然后将其粘贴到需要授权的请求的 Header 中:Bearer <jwt_token>,如下图所示:

在这里插入图片描述

如果 token 过期,需要重新 login,再次复制 token 并粘贴到这里,粘贴复制的方法繁琐。

4. 1 解决办法 1

Bearer 后按 Ctrl + Space, 出现下拉列表,选择 Response =>Body Attribute (中文输入状态不会出现下拉列表,要切换成英文)

在这里插入图片描述

然后点击红色的文字进行设置。在 Filter(JSONPath or XPath) 一项,单独输入 $ 可看到完整的 login 响应, 其中有一项是 access_token, $.access_token 可获得 jwt,(这里的 access_token 可以是其他名称,根据 login 响应而定。最右端的设置图标不要点,默认就可以)

在这里插入图片描述

Trigger Behavior 可以选择当 jwt 过期后,如果执行此请求,Insomnia 自动发送一条 login 请求,重新获得 jwt token, 那么要多长时间后发送 login 请求呢,例如可以设成 300,即5分钟。
假如说 jwt 的有效时间是极短的 10 秒,而上图中的 Max age 设 60 秒,则 10 秒之后,jwt 失效,因此 10 秒之后的 50 秒内 post 请求全部失败,一直到第 61秒发送 post 请求时,Insomnia 自动发送 login 请求获取新的 token,post 请求 ok,以下是 Docker log:

在这里插入图片描述

设置完成后的界面:

在这里插入图片描述
此方法虽然可以自动获得 jwt token,不再需要从 login 响应中复制 jwt token 再粘贴到其他请求的 Header 里,但是每个需要授权的请求都要这样设置一遍,也不算特别理想。

4. 2 解决办法 2

同样设置环境变量,Ctrl + E,添加一项 access_token, 然后 Ctrl + Space, 同上面的设置步骤,(测试发现唯一有区别的地方是,这里 Max age 无法修改成 60 以外的值,每次重新打开 Edit Tag 界面都发现是 60) ,设置完成后如下图所示:

在这里插入图片描述

之后,Header 中的 Bearer 后直接加 {{access_token}} 就可以,每条需要授权的请求都可以这样加:

在这里插入图片描述

这样就实现了请求的链式调用,之后执行需要授权的操作,不再需要复制粘贴 jwt。

http://www.lryc.cn/news/59959.html

相关文章:

  • 2023接口自动化测试,完整入门篇
  • 2023年股票代持行业研究报告
  • 《Netty》从零开始学netty源码(三十九)之PoolSubPage的内存分配
  • 【目标检测论文阅读笔记】Reducing Label Noise in Anchor-Free Object Detection
  • 金融数字新型基础设施创新开放联合体今日成立
  • 编程语言的发展史
  • 巧用千寻位置GNSS软件|点测量采集技巧
  • DHCP原理与配置
  • 软件测试今天你被内卷了吗?
  • 做完自动化测试,但别让不会汇报毁了你...
  • 企业级信息系统开发讲课笔记2.4 利用MyBatis实现条件查询
  • 【天梯赛—不想坑队友系列】L2-003 月饼(java)
  • 电磁兼容(EMC)的标准与测试内容
  • 滑动平均算法
  • 个人职业发展
  • 剑指 Offer 51. 数组中的逆序对
  • 数字化转型迫在眉睫!药企如何应用AI技术加速创新?
  • 电脑显示屏是怎么显示出图像的?CPU与GPU又是什么关系?
  • 报名截至在即 | “泰迪杯”挑战赛最后一场赛前指导直播!
  • 经验分享:如何有效应对Facebook广告数据波动问题?
  • 【Python】逆向解析js代码
  • websorm启动vue项目修改内容后自动运行内存溢出
  • 第05章_数组
  • Spring Security --- 快速入门
  • 程序员挣够了钱,到中年失业真的很可怕吗?
  • 【Log and Dump Summary】
  • 软考证书找工作有用吗?软考找工作用处大吗
  • JavaWeb之谈论项目编码规范_Java版
  • Map排序
  • mycat读写分离