【Software Testing】Postman 中的 Cookies 设置

Posted by 西维蜀黍 on 2019-10-19, Last Modified on 2021-09-21

Background - 认证(Authentication)通过后记下 Cookie

使用postman模拟接口测试的时候,一般都是需要先认证(Authentication)才可以后续业务测试的,否则直接调用接口会报错“Please Login First”。每一个接口用例都去新增一个cookie值太麻烦了,因为都是一样的,所有就想着有没有一种方法可以在进行认证后(同时得到了 cookie),之后发出的每一个 HTTP 包都带上这个 Cookie。

方法 1 - 愚蠢的 Manual Inject

完成认证(Authentication)

我们需要先调用特定的 HTTP 认证接口,通常需要输入账号和密码(当前也可以是其他相对更复杂的认证机制,比如 OAuth2)。最终我们就得到了一个 token,它存在 Cookie 中:

进到 Postman中,我们来设置一下这个 Cookie:

此后,每次访问这个域(127.0.0.1)时,都会带上这个 Cookie。

方法 2 - More Automatic Way

Prerequisite

下载以下工具:

安装 Postman Interceptor,它其实是一个 Google Chrome Extension。

安装并启动 Interceptor Bridge:

$ /Users/wei.shi/Downloads/InterceptorBridge_MacOS_1.0.0/install_host
Native messaging host com.postman.postmanapp for 'Postman Native App < > Interceptor integration' has been installed.
$ /Users/wei.shi/Downloads/InterceptorBridge_MacOS_1.0.0/nativeserver-MacOS

打开 Postman:

当显示”INTERCEPTOR CONNETED“时,意味着Postman 已经成功通过 Interceptor Bridge 与 Chrome extension Postman Interceptor建立连接了。

我们添加好要测试的 domain,并打开 Capture Cookies 开关。

此后,每次使用Postman发出 HTTP 请求时,Postman 都可以获取到在 Chrome 中的已经存在的 Cookies。

Show Time

我们先在 Chrome 中完成认证(登录):

类似地,对应的HTTP Response 中会包含一个 Set-Cookie 域,这就是我们想要的东西。

我们再去Postman 中发一个请求,可以看到,Postman 会自动帮我们带上这个名为 token 的 Cookie:

总结

Procedures

每次测试前:

  • 启动 Interceptor Bridge:
$ /Users/wei.shi/Downloads/InterceptorBridge_MacOS_1.0.0/install_host
Native messaging host com.postman.postmanapp for 'Postman Native App < > Interceptor integration' has been installed.
$ /Users/wei.shi/Downloads/InterceptorBridge_MacOS_1.0.0/nativeserver-MacOS
  • 在Chrome中,完成认证;
  • 进到Postman 中愉快的测试。

Reference