分类: JavaScript
2023-03-07 16:14:12
使用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.{BANNED}最佳后,当测试完成后,需要关闭WebDriver和服务对象。示例代码如下:
点击(此处)折叠或打开
- driver.quit();
- service.stop();
通过以上步骤,我们可以在不重新启动PhantomJS的情况下,通过修改HTTP代理来模拟不同的网络环境,从而完成自动化测试。
当然,如果你使用HTTP代理质量不给力,也很难完成自动化测试。工欲善其事必先利其器,所以我们需要挑选到好的HTTP代理才能更有助于我们的工作完成。
那,要如何挑选HTTP代理呢?
首先,我们需要根据自己项目的成本来核算采购HTTP代理的预算是多少,多看看市面上常见的几家价格:快代理、青果网络、小象代理、熊猫代理、阿布云亿牛云等。
? 这边值得一提的是,青果网络的通道数是10,其他几家都是1。
我们根据自己需要的业务场景来选择隧道代理的具体种类,是适合定时切换周期的,还是适合动态转发类型的?适合自己的才是{BANNED}最佳好的。
其次,{BANNED}最佳重要的当然要属:测试
如果我们在购买前做好了测试,会避免很多坑,就拿我针对青果网络的隧道HTTP代理产品做的测试部分截图:
总而言之,效果还是很不错的。
有相关需求的可以去找他们要产品测试。
ps:看重其他厂商的,也建议多测试哈,效果为王!