使用Selenium和PhantomJS模拟浏览器访问是一种非常常见的自动化测试技术,而修改HTTP代理也是一个常见需求,因为有时候我们需要测试在不同地理位置下的网站性能,或者需要绕过一些IP限制等等。
在不重新启动PhantomJS的情况下修改HTTP代理,可以使用PhantomJS的Web Driver服务(PhantomJSDriverService)来实现。具体步骤如下:
1.首先,创建一个PhantomJS驱动服务对象,并设置需要的参数,包括HTTP代理和端口号等等。代码如下:
PhantomJSDriverService service = new PhantomJSDriverService.Builder() .usingPhantomJSExecutable(new File("path/to/phantomjs.exe")) .usingAnyFreePort() .withProxy("proxy-ip-address:proxy-port") .build();
2.然后,使用PhantomJS驱动服务对象创建一个PhantomJS WebDriver对象,如下所示:
WebDriver driver = new PhantomJSDriver(service);
3.当需要修改HTTP代理时,可以使用PhantomJS WebDriver的executePhantomJS()方法来执行JavaScript代码,以修改HTTP代理。示例代码如下:
String script = "phantom.setProxy('new-proxy-ip', new-proxy-port);"; ((JavascriptExecutor) driver).executePhantomJS(script);
4.最后,当测试完成后,需要关闭WebDriver和服务对象。示例代码如下:
driver.quit(); service.stop();
通过以上步骤,我们可以在不重新启动PhantomJS的情况下,通过修改HTTP代理来模拟不同的网络环境,从而完成自动化测试。
当然,如果你使用HTTP代理质量不给力,也很难完成自动化测试。工欲善其事必先利其器,所以我们需要挑选到好的HTTP代理才能更有助于我们的工作完成。
那,要如何挑选HTTP代理呢?
首先,我们需要根据自己项目的成本来核算采购HTTP代理的预算是多少,多看看市面上常见的几家价格:快代理、青果网络、小象代理、熊猫代理、阿布云亿牛云等。
这边会给大家一个市面上隧道HTTP代理比较成熟的厂商价格:
HTTP代理类型 |
分类 |
代表厂商 |
通道数 |
并发请求 |
月费 |
隧道代理 |
定时换IP周期 (1分钟) |
快代理 |
1 |
5 |
272 |
青果网络 |
10 |
5 |
390 |
||
小象代理 |
1 |
5 |
399 |
||
熊猫代理 |
1 |
5 |
420 |
||
阿布云 |
1 |
5 |
429 |
||
亿牛云 |
1 |
5 |
399 |
||
动态转发 |
快代理 |
1 |
5 |
388 |
|
青果网络 |
1 |
5 |
360 |
||
小象代理 |
1 |
5 |
399 |
||
熊猫代理 |
1 |
5 |
420 |
||
阿布云 |
1 |
5 |
429 |
||
亿牛云 |
1 |
5 |
399 |
⭐ 这边值得一提的是,青果网络的通道数是10,其他几家都是1。
我们根据自己需要的业务场景来选择隧道代理的具体种类,是适合定时切换周期的,还是适合动态转发类型的?适合自己的才是最好的。
其次,最重要的当然要属:测试
如果我们在购买前做好了测试,会避免很多坑,就拿我针对青果网络的隧道HTTP代理产品做的测试部分截图:
总而言之,效果还是很不错的。
有相关需求的可以去找他们要产品测试。
ps:看重其他厂商的,也建议多测试哈,效果为王!