在 Protractor 中为 e2e-tests 设置 https 代理

Setting https proxy for e2e-tests in Protractor

我想在使用 Protractor 进行 e2e 测试期间将网络请求存入第三方服务,同时保持浏览器与我的 api 之间的通信。此外,我希望能够将一些特定的调用存根到我的api,同时保持其他调用不变。

我正在测试的应用程序被容器化到 Docker 个容器中。 e2e 测试在 Firefox 中 运行 在一个容器中,而 API 服务器在另一个容器中。

所以我想做的是设置一个带有代理节点服务器的容器(我们称这个容器为 proxy)。我希望来自浏览器的所有网络流量都通过代理服务器,其中一部分流量可以根据需要进行存根。

这几乎行得通。但是,我观察到只有 http 流量通过代理,而 https 流量逃脱了代理。我想知道为什么会这样。

这里是量角器配置的相关部分:

exports.config = {

    ...

    capabilities: {
        'browserName': 'firefox',
        'proxy': {
            'proxyType': 'manual',
            'httpProxy': 'proxy:3000',
            'sslProxy': 'proxy:3000'
        }
    },
    ...
}

我尝试了 sslProxyhttpsProxy 选项,就像我在各种在线讨论中看到的那样,但是 none 通过我的代理帮助定向 https 请求。例如,我在一个页面上添加了两张图片——一张 Google 徽标通过 http 提供,另一张通过 https 提供。我可以在 proxy docker 日志中看到,通过 http 提供的图像请求通过代理服务器传递,但通过 https 提供的图像请求没有。

所以我的问题是,我做的事情明显有问题吗?您能否建议是否也可以通过代理服务器将浏览器的 https 请求定向?

目前 似乎不支持 proxy 的功能。

与其尝试通过量角器或 /etc/hosts 文件将您的调用重定向到代理服务器,您可能需要考虑更改 Web 应用程序以进行依赖注入,以将这些调用更改为指向您的第三个派对服务器到代理服务器。