共计 1579 个字符,预计需要花费 4 分钟才能阅读完成。
背景
作为一个 Web 工程师,最熟悉的日常工作莫过于后台接口开发与联调测试,而在接口测试上,大家最喜爱的工具清单里,必然少不了 Postman 这一利器。然而,有时接口测试需要准备好登录态,或者其他状态数据,而这些数据往往就存在浏览器 Cookie 里边。结合本文介绍的工具,便可以无缝在 Postman Chrome app(为什么强调是 Postman Chrome app,文章末尾会说明)和 Chrome 浏览器之间共享 Cookie,而这个共享过程对用户是透明的。
工具清单
以下工具请自行安装,我只贴下官方的软件界面截图。
Chrome 浏览器
Postman Chrome app
Postman Interceptor
使用步骤
以下我们以 Github 网站为例,演示下如何实现 Cookie 共享。
一、确认 Postman Interceptor 插件安装成功(如图所示)
二、启动 Postman,在右上角的卫星小图标那里开启 Chrome Interceptor
三、在 Chrome 浏览器里正常登陆 GitHub 网站(此步骤没什么好演示的 ╭(╯^╰)╮)
四、在 Postman Chrome app 中直接模拟请求通知接口
接口路径:https://github.com/notificati… 也就是说,这个时候,我们虽然没有对 Postman 做特殊的 Cookie 设置,但是它的请求的登录态都被服务器验证通过了,cookie 共享成功!
假如这个时候退出浏览器的登录态呢?
我们先从 GitHub 退出登录,还是刚才的请求,这个时候的响应是:是的,因为 Chrome 里已经退出登录,所以 Postman 这边也自然失去登录态了,说明两边 Cookie 是同步的。
Postman Interceptor 的 Bonus
Postman Interceptor 还有一点比较爽的是,它的 Request Capture 支持捕捉 Chrome 浏览器里的请求记录,并且自动同步到 Postman Chrome app 里边,这样的话,我们就可以方便直接在 Postman 里获取到我们需要测试的网络请求,而不是一个一个自己填写参数之类的了。
缺陷
遗憾的是,按照官方说明,现在 Postman Interceptor 的这个 Cookie 共享还不能支持独立安装的桌面版(从官方下载而不是从 Chrome 应用市场下载)的 Postman Desktop,所以,如果你希望使用上述功能,你只能安装回 Postman Chrome app,而这个版本相对桌面版,功能自然也会少。
Note: Interceptor feature is supported only in our Postman Chrome Apps and is not available in Postman Desktop Apps at the moment.
另一方面,考虑到 Chrome 浏览器将会在不久的将来停掉 Chrome apps 的支持,可能这个方案也撑不了太久。
如果你真心希望 Postman 将上述功能加到他们的桌面版里,可以到他们的官方 GitHub issues 去请愿,他们正在收集大家的意见。但是……这个请愿帖已经两年多了,而就在我表达请求之前的几个小时到几天之前,都有人陆续去请愿,所以也不知道会不会真的如愿了。
总结
对于确实需要获取网站 cookie 才能完成接口测试的场景,上述方法有一定的便利性,也才有必要使用我的方法,其他场景的接口测试,你们就无视我吧。
参考链接
Postman: Using the Interceptor to read and write cookies
Postman Help Center: How do I access Chrome’s cookies in Postman’s Chrome App?
Postman Learning Center: Interceptor extension
Google is phasing out Chrome apps for Mac and Windows