You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Postman原生Windows客户端捕获Protractor测试中的API请求?

解决Protractor执行时用Postman捕获API请求的方案

我之前也碰到过一模一样的问题!Protractor启动的Chrome实例默认是禁用扩展的,直接用Postman代理抓请求确实踩了不少坑,不过后来试出来几个可行的办法,分享给你:

方法一:配置Protractor使用Postman代理(最直接的方式)

这个方法需要让Protractor启动的Chrome通过Postman的代理发送请求,步骤如下:

  1. 设置Postman代理
    打开Postman原生客户端,点击右上角的齿轮图标进入Settings → 切换到Proxy标签:

    • 开启「Capture requests」
    • 手动设置HTTP和HTTPS代理地址为localhost:5555(Postman默认代理端口,也可以自定义)
    • 点击「Install Certificate」,按照提示把Postman的根证书安装到系统信任区(这步很重要,否则HTTPS请求会被拦截失败)
  2. 修改Protractor配置文件
    在你的conf.js里,给Chrome添加启动参数,指定代理并绕过证书验证:

    capabilities: {
      browserName: 'chrome',
      chromeOptions: {
        args: [
          '--proxy-server=http://localhost:5555', // 和Postman设置的端口保持一致
          '--ignore-certificate-errors', // 绕过SSL证书错误,避免请求失败
          '--allow-insecure-localhost' // 如果API部署在本地,建议加上这个
        ]
      }
    }
    
  3. 启动测试并捕获请求
    先启动Postman的代理捕获,再运行Protractor测试。此时Postman的「History」里应该就能看到所有API请求了。

方法二:用Chrome DevTools协议直接捕获请求(无需Postman代理)

如果代理方式始终有问题,可以借助Protractor访问Chrome的DevTools协议,直接在测试中收集API请求,再导入Postman:

  1. 在测试脚本中添加监听代码
    在你的E2E测试里,添加以下代码开启网络请求监听:
    // 启用DevTools的Network模块
    await browser.driver.sendCommand('Network.enable', {});
    
    // 监听请求发送事件
    browser.driver.on('Network.requestWillBeSent', (requestData) => {
      const apiRequest = requestData.request;
      // 可以把请求的URL、方法、 headers、body等信息保存到JSON文件
      console.log(`捕获到API请求: ${apiRequest.method} ${apiRequest.url}`);
    });
    
  2. 导出并导入Postman
    跑完测试后,把收集到的请求整理成Postman Collection的JSON格式(可以参考Postman导出的结构),然后直接导入Postman即可。

方法三:借助第三方代理工具中转(更稳定的备选)

如果Postman代理还是不好用,可以先用Charles或MitmProxy捕获请求,再导出到Postman:

  • 启动Charles,默认代理端口是8888,安装Charles的根证书
  • 在Protractor的conf.js里配置Chrome使用localhost:8888作为代理,同样加上证书忽略参数
  • Charles捕获到请求后,右键选择「Export」→ 选择「Postman Collection」格式,然后导入Postman

注意事项

  • 确保代理端口没有被其他程序占用,比如Postman默认的5555、Charles的8888
  • 对于HTTPS请求,必须安装代理工具的根证书到系统信任区,否则请求会被浏览器拒绝
  • 有些应用会检测代理设置,可能需要在测试脚本中手动设置浏览器的代理配置,而不是只依赖Chrome启动参数

内容的提问来源于stack exchange,提问作者Chris Traynor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:54:11