2013-10-01 27 views
0

这个想法是说,开发人员有一套测试运行在locahost:8000上,并且他在测试中对其进行了硬编码。我们可以模拟Python脚本中的浏览器代理机制吗?

当我们在浏览器中设置代理时,浏览器会处理代理,以便用户只关心输入localhost:8000而不输入localhost:proxy_port。浏览器实际上发送请求并从代理端口接收响应。

我们可以模拟这种方式,以便测试不必更改为localhost:proxy_port(并且代理服务器知道路由到端口8000)。相反,开发人员可以在其测试中继续以localhost:8000的身份运行,但是当他运行测试时,请求会自动通过代理服务器。

PS:也没有改变服务器的端口。由于假定端口8000作为应用程序服务器运行并将其更改为另一个端口可能会破坏其他事情!所以说“将代理服务器端口更改为8000,将我的webapp服务器更改为80001”并不能解决整个问题。

+0

''他在测试中硬编码''第一个错误。 –

+1

请参阅SO问题[如何在Python中编写Web代理](http://stackoverflow.com/questions/16524545/how-to-write-a-web-proxy-in-python)和Google代码项目[proxpy] (https://code.google.com/p/proxpy/)。 –

回答

0

设置HTTP_PROXY环境变量(并将其导出),并且Python将遵守(只要使用标准库)。

+0

听起来像一个可行的事情。我可以想象测试客户端需要一个参数代理IP和端口。例如,如果测试客户端正在使用请求库,它可以这样做。我会看看它是如何适合的。谢谢 – User007

相关问题