[keycloak-dev] Htmlunit vs PhantomJS vs Chrome

Stian Thorgersen sthorger at redhat.com
Thu Jun 8 02:01:48 EDT 2017

Is it always using HTTP? Surely it could be using some sort of sockets for
better perf. I think you're right though and we'll probably end up sticking
with htmlunit for most tests.

On 7 June 2017 at 21:53, Marek Posolda <mposolda at redhat.com> wrote:

> Just a note, the main reason why htmlUnit web driver is so faster than
> other browsers is, that it is fully embedded in the same JVM like tests.
> There is no additional overhead in the communication with other processes.
> The only exception are the HTTP requests for the communication with the
> tested Keycloak server and adapters.
> On the other hand, the other web driver implementations, including
> phantomJS, are using external process and there is remote selenium server
> with which the webDriver needs to communicate. It means that all the
> webDriver calls including the most simple (like driver.getTitle() ) need to
> send additional HTTP request to the remote selenium server under the
> covers. All of this adds an additional overhead.
> I suspect that headless chrome will also use remote selenium, hence I
> don't expect that performance will be much better comparing to phantomJS.
> But maybe I am wrong..
> Marek
> On 07/06/17 12:14, Stian Thorgersen wrote:
>> We've picked Htmlunit as the default browser to run tests with due to it
>> being the fastest. Downside is that it simply doesn't work very well for
>> all tests, especially those heavy on the javascript side of things like
>> testing the JavaScript adapter and admin console.
>> Just saw that Chrome is actually bringing a headless option to Chrome 59
>> [1]. This is really nice as it allows headless testing with a real
>> browser,
>> not just an emulated browser.
>> Ideally if this is fast we could use it as the default browser instead of
>> htmlunit. Obviously waiting until it's released on all platforms. If it's
>> not as fast as htmlunit then maybe there is a compromise.
>> The default browser would still be htmlunit. Then individual tests could
>> be
>> marked (with an annotation on the class or on the WebDriver field). Those
>> marked would use Chrome in headless mode instead of htmlunit. Obviously
>> -Dbrowser would continue to override the browser in either case.
>> Thoughts? Anyone interested in giving the new headless Chrome option a
>> spin
>> and evaluating how fast it is compared to htmlunit?
>> [1] https://developers.google.com/web/updates/2017/04/headless-chrome
>> _______________________________________________
>> keycloak-dev mailing list
>> keycloak-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/keycloak-dev

More information about the keycloak-dev mailing list