About Me

My name is Marc Guillemot. I’m a French software contractor living near to Bonn (Germany). I specialize in JSE and JEE development, and in test automation of web applications.

I’m very involved in a variety of open source projects. I am currently the lead developer of the HtmlUnit and Canoo WebTest projects as well as commiter of NekoHtml and a (not so active) Groovy committer.

Please contact me directly per email to mguillemot@yahoo.fr if you’re interested in getting first class support for one of the above mentioned open source tools or, more generally, for Java development or test automation.

For questions concerning HtmlUnit, WebTest, NekoHTML or Groovy, please post to the corresponding mailing list.

19 Comments

  1. gerard walsh said,

    March 21, 2008 at 3:34 am

    hello marc sorry for bothering you with something trivial but i googled in my date of birth and discovered we both came into the world on the same day! dont know anything about you but it looks like you do interesting stuff ! anyway good luck from ireland. always said 59 was a vintage year !!!

  2. Marc Guillemot said,

    March 28, 2008 at 3:26 pm

    Bad guess, this is not 59… but I have nothing against such an old wine bottle ;-)

  3. Madhuri said,

    March 28, 2008 at 11:57 pm

    Hi Marc,
    I have been looking up the internet and the WebTest tutorials for a way to set a https header value inside section.
    Our test needs to perform 2 or 3 https post and a header variable(XYZ) needs to be unique for every post. Iam using to generate the unique value and am able to set it once within the config section of webtest, so the first https post works fine.But I could not find a way to update that header parameter/property in the steps section, with a unique value for the second and third https posts.

  4. Madhuri said,

    March 28, 2008 at 11:59 pm

    Sorry hit submit before finishing. :)

    Could you please point out a way to do it, or a tutorial that explains how to update config/header values inside WebTest steps? I would greatly appreciate any help from you.

    Thanks,
    Madhuri

  5. Marc Guillemot said,

    April 1, 2008 at 3:26 pm

    Madhuri,

    the best place to get WebTest support is the WebTest mailing list. If you’re looking for paid support and want to know my rates, please contact me directly.

  6. Raghu said,

    July 17, 2009 at 2:34 pm

    Hi Marc,

    I used Webtest … It gives fabulous outcome. For that I am thanking you ever.

    One thing I want to ask you is in Webtest there isn’t support for Modal Dialog …for ex., simple javascript alert dialog.

    So when this problem possibly be resolved?

    Thanks for all the great work you are doing once again !

    • Marc Guillemot said,

      July 20, 2009 at 4:17 pm

      Hi Raghu,

      thanks for the nice comment.

      Concerning modal dialog, I think that it is supported since a long time. Please bring the issue to the mailing list if you have problem with it using a recent WebTest build.

  7. Paresh said,

    August 18, 2009 at 12:51 pm

    Hi Mark,

    I am writing a webtest for web application which is using a javascript library called jQuery.

    I am getting following error while running a webtest.

    JavaScript error loading page http://nitra.wip.motorplace.com/test-dgpautomation/HomePage?disableBundling=true: Wrapped java.lang.NullPointerException: sourceCode (http://assets.cobaltnitra.com/websites/websitesEar/websitesWebApp/common/js/jquery.main.js#646)

    On line 646 in jquery.main.js

    following code is there:
    head.insertBefore( script, head.firstChild );
    head.removeChild( script );

    These 2 lines available under following function in jQuery

    // Evalulates a script in a global context
    globalEval: function( data ) {
    data = jQuery.trim( data );

    if ( data ) {
    // Inspired by code by Andrea Giammarchi
    // http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html
    var head = document.getElementsByTagName(“head”)[0] || document.documentElement,
    script = document.createElement(“script”);

    script.type = “text/javascript”;
    if ( jQuery.browser.msie )
    script.text = data;
    else
    script.appendChild( document.createTextNode( data ) );

    // Use insertBefore instead of appendChild to circumvent an IE6 bug.
    // This arises when a base node is used (#2709).
    head.insertBefore( script, head.firstChild );
    head.removeChild( script );
    }
    },

    Do you have any idea about this error ?

  8. Alex said,

    May 5, 2010 at 11:43 am

    Hi, Marc!

    Would you be interested reviewing our RoutineBot automation software (www.routinebot.com)? It is would be possible to use a backlink to our web-site into the post, then I’ll be interested in paying you via paypal.

    Thank you!

  9. john said,

    June 1, 2010 at 3:07 am

    XX-XXX-XXXX 03:35:01 com.gargoylesoftware.htmlunit.
    IncorrectnessListenerImpl notify
    WARNING: Obsolete content type encountered: ‘text/javascript’.

    I get this error repeatedly while trying to scrape test few sites
    using htmlUnit. I tried Web-harvest that does scrape few and doesnt
    do for others.Same is the case with HtmlUnit. Problem lies that
    web-harvest does scrape ones not done by htmlUnit and visa versa.

    What is the above problem in HtmlUnit. I thought HtmlUnit is
    better than Web-Harvest, but now getting this error …..
    XX-XXX-XXXX 03:35:01 com.gargoylesoftware.htmlunit.
    IncorrectnessListenerImpl notify
    WARNING: Obsolete content type encountered: ‘text/javascript’.

    site: http://www.marvel.com/

  10. Vikrant said,

    October 25, 2010 at 10:47 am

    Hi marc i am using htmlunit in my project.but i need to connect through NTLM proxy but all my efforts are in vain..I am able to connect through NTLM proxy.I am using the same Authsccope ,NTCredentials object as used in HttpClient library.HttpClient is easily connecting through the proxy.But the html unit keeps on throwing 407 error of authentication required.Please can you help me .I am really stuck at this point.

    i am using

    webClient.getCredentialsProvider().setCredentials(
    new AuthScope(“xxx.xxx.co.in”, 8080, “xxx”),
    new NTCredentials(“x_xx”, “xxxx”, “xxx”, “xxx”));
    webClient.setProxyConfig(new ProxyConfig(“xxx.persistent.co.in”, 8080));

    this is what i am using in html unit.

  11. A. Renaud said,

    February 20, 2011 at 6:38 am

    As I was trying to emulate a web browser HTTPS behaviour in a recent project, with much problems, HtmlUnit truly ‘saved my ass’ with that. Really remarkable and thanks for it. Now, can you be serious a minute, come back on planet Earth, see the hundreds of web postings of people scratching their head trying to find how to do this very simple and common thing, and implement an .enter() method instead of the silly .type(‘\n’) ? … Merci bien, A.R.

    • Marc Guillemot said,

      February 21, 2011 at 7:44 am

      Improvements to HtmlUnit’s API are always welcome but the right place for such improvements is HtmlUnit’s bug tracking system (or the mailing list), not my blog ;-)

  12. Jagdev said,

    February 23, 2011 at 5:50 am

    Hi Marc,

    I am using HtmlUnit as browser for automated testing of my web application.My web application is ajax enabled so if I am using other browsers they are working fine but my requirement is I have to use HtmlUnit but it is not handling ajax properly .Currently I am using crawljax with HtmlUnit browser.

    Thanks in advance

    • Marc Guillemot said,

      February 23, 2011 at 7:54 am

      Jagdev, please use HtmlUnit mailing list for questions concerning HtmlUnit!

  13. February 23, 2012 at 7:11 am

    [...] introduced by Marc Guillemot [0] in HtmlUnit [1] and already implemented by GroovyTestCase.notYetImplemented [2], this time it [...]

  14. Benny said,

    July 17, 2012 at 7:06 am

    Hallo Marc,

    da ich gelesen habe, dass du bei Bonn wohnst, schreibe ich mal auf deutsch.
    Wie ich gelesen habe, hast du dich ja mit JMeter, Selenium und Canoo WebTest auseinander gesetzt. Kann eines der drei Tools die GUI einer Software erkennen bzw. einen Bildvergleich machen?
    Über eine zeitnahe antwort würde ich mich freuen.

    MfG
    Benny

  15. Jack said,

    October 23, 2012 at 8:55 pm

    Hey Marc,

    I reviewed your blog and discussion about JMeter’s integration with HtmlUnit and it makes sense to me. You hit the pain point we have currently testing AJAX heavy web applications, regardless of what load testing tools we use, JMeter or commercial tools. Like you said, it’s a huge burden and maintenance issue to duplicate what the application has done on the JavaScript side to simulate the client behavior. In some cases we found this is not possible, for example with GWT, we actually have to re-record and re-script every time there is a new release of this GWT based application. What a pain.

    Other people’s argument that the load generation tool need to be fast and efficient, I agree with that. However, if there is a tool that is both fast/efficient, and also can solve the maintenance issue, I think that’s a winner. If the headless browser is lightweight enough so that an average machine can run 300 simultaneous virtual users, I think this is an attractive approach.

    Therefore I encourage you to re-open the discussion on JMeter and HtmlUnit integration. Speaking from my own experience, I think this is a valid approach worth pursuing.

    I’ll also send this content to your email using my personal email.

    Jack

  16. March 27, 2013 at 4:46 pm

    Bonjour Marc, Je suis vraiment un junior dans Webtest et mon projet utilise NTLM proxy, donc j’utilise le groovy trouver sur internet pour me connecter avec NTLM proxy. Malgré tout mes efforts, je n’y arrive pas à me connecter. Voici le groovy que j’utilise
    def prov = new com.gargoylesoftware.htmlunit.DefaultCredentialsProvider();
    prov.addNTLMCredentials(“username”,”password”,””,-1,”mymachinename”,”mydomaine”);
    def webClient = step.context.webClient;
    webClient.setCredentialsProvider(prov);

    Webtest failli toujours sur l’invoke et me donne l’erreur 401-Unauthorized:access is denied due to invalid credentials. Comment résoudre ce problème?


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: