将传出的HTTPS请求重定向到HTTP假服务?

时间:2012-10-29 19:49:56

标签: web-services testing https mocking

我的标题可能过于具体 - 我在制定问题时遇到了麻烦,因为我没有处理过很多网络管理,尤其是SSL / HTTPS。换句话说,答案为“你为什么没有......”。就像是,“我不太了解......”

我正在测试,而受测试系统(SUT)是使用https://graph.facebook.com调用Facebook API的Web服务。

我在远程计算机上设置了测试服务器,该计算机将向http://graph.facebook.com页面提供服务。我可以使用SUT服务器上的主机文件将请求重定向到http://graph.facebook.com到测试服务器。当我输入时,这可以正常工作:

curl http://graph.facebook.com

测试服务器接收请求,并返回预期的页面。

但是,如前所述,SUT不使用HTTP站点,而是使用Facebook API的HTTPS站点(当然)。有什么方法可以拦截传出请求并将其重定向到我在另一个站点上运行的HTTP服务?我希望能够输入:

curl https://graph.facebook.com

并将其重定向到我在测试服务器上运行的假Facebook服务。我可以在两端配置服务器。

如果这非常困难,我可能还想提交功能请求,以便能够更改Facebook API请求的URL。但是,我认为开发人员正在使用预先存在的Facebook API模块,这可能不是直截了当的。 (好吧,我很好奇并且检查了......一个快速的调查表明,API支持处理实际HTTPS请求的代码的数据注入,因此他必须实现他自己的接口版本,以便他可以传入我可以从代码外部设置的可配置URL - 但除非确实有必要,否则我仍然不会分散他的注意力。)

我在端口80上使用asis-server伪造Facebook回复,如果这是相关的。

1 个答案:

答案 0 :(得分:1)

我们最终使用的解决方案是测试服务器上的一项服务,它拦截了HTTPS请求并将它们重定向到HTTP服务。我们的操作人员使用了nginx

我们仍然不确定这是否可以作为SUT的模拟 - 它取决于SUT是验证证书信息还是忽略它。我仍然可能需要让开发人员实现一个支持模拟的功能。