使用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代理比較成熟的廠商價格:
⭐ 這邊值得一提的是,青果網路的通道數是10,其他幾家都是1。
我們根據自己需要的業務場景來選擇隧道代理的具體種類,是適合定時切換週期的,還是適合動態轉發型別的?適合自己的才是最好的。
其次,最重要的當然要屬:測試
如果我們在購買前做好了測試,會避免很多坑,就拿我針對青果網路的隧道HTTP代理產品做的測試部分截圖:
總而言之,效果還是很不錯的。
有相關需求的可以去找他們要產品測試。
ps:看重其他廠商的,也建議多測試哈,效果為王!