我想使用PhantomJS 2.0/GhostDriver代替ChromeDriver,因爲我已經閱讀過我可以加速我的UI測試。 這是我跑的測試代碼,作爲JUnit測試的一部分:PhantomJS比ChromeDriver慢,使用硒
@Override
public void runTestCase() throws Exception {
long startTime = System.currentTimeMillis();
// log in as admin
Login.loginAs("admin", "password");
System.out.println(System.currentTimeMillis() - startTime);
}
的loginAs
功能的用戶名和密碼的文本字段填寫,然後點擊提交按鈕,最後在移動新返回頁面的主頁部分。
現在,我運行一次這個簡單的測試,同時使用Phantomjs和ChromeDriver作爲Selenium在Java(v2.45)中的驅動程序。 他們被初始化爲:
ChromeDriver
System.setProperty("webdriver.chrome.logfile", workingDirectory + "\\chromedriver.log"); service = new ChromeDriverService.Builder().usingDriverExecutable(new File(workingDirectory + "\\chromedriver.exe")).build(); capabilities = DesiredCapabilities.chrome(); options = new ChromeOptions(); options.addArguments("--allow-file-access-from-files"); options.addArguments("--verbose"); capabilities.setVersion(""); capabilities.setCapability(ChromeOptions.CAPABILITY, options); driver = new ChromeDriver(service, capabilities);
PhantomJS
System.setProperty("phantomjs.binary.path", workingDirectory + "\\phantomjs.exe"); cliArgsCap = new ArrayList<String>(); capabilities = DesiredCapabilities.phantomjs(); cliArgsCap.add("--web-security=false"); cliArgsCap.add("--ssl-protocol=any"); cliArgsCap.add("--ignore-ssl-errors=true"); cliArgsCap.add("--webdriver-loglevel=INFO"); cliArgsCap.add("--load-images=false"); capabilities.setCapability(CapabilityType.SUPPORTS_FINDING_BY_CSS, true); capabilities.setCapability(CapabilityType.TAKES_SCREENSHOT, true); capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, cliArgsCap); driver = new PhantomJSDriver(capabilities);
我跑我在64位的Windows 7機器的測試。所以,看看測試所花的時間,我總是注意到ChromeDriver比PhantomJS更快。總是。例如,如果使用ChromeDriver進行測試大約需要3-4秒,與PhantomJS相同則需要大約5-6秒。
有沒有人遇到過這個問題?或者有人能給我任何理由嗎?我是否設置了錯誤?
此外,如果您需要更多的細節,請告訴我。
你的設置是正確的。我和Ghostdriver有過相同的經歷。但是,我發現Ghostdriver很有用,以防萬一您需要刮掉網站或將其作爲後臺進程運行。您是否嘗試過命令行/ javascript phantomjs? – LittlePanda 2015-04-03 11:03:58
不幸的是沒有。我怎麼能把我的JUnit測試與那個?此外,我無法修改我想測試的服務器。 – 2015-04-03 11:23:06
對我而言,性能似乎不錯。對你來說太慢了嗎?我知道需要3-4秒才能顯示日誌,然後腳本執行開始。我不會推薦HtmlUnitDriver,因爲我遇到了太多的異常。 GhostDriver也有一些問題,但它比HtmlUnitDriver更好。 – LittlePanda 2015-04-03 11:29:06