我想使用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