<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Marc Guillemot's blog</title>
	<atom:link href="http://mguillem.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://mguillem.wordpress.com</link>
	<description>Java, Groovy, HtmlUnit, WebTest, NekoHTML and more. Contact me for rates.</description>
	<lastBuildDate>Tue, 24 Jan 2012 08:14:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='mguillem.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Marc Guillemot's blog</title>
		<link>http://mguillem.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://mguillem.wordpress.com/osd.xml" title="Marc Guillemot&#039;s blog" />
	<atom:link rel='hub' href='http://mguillem.wordpress.com/?pushpress=hub'/>
		<item>
		<title>WebDriver: capture JS errors while running tests</title>
		<link>http://mguillem.wordpress.com/2011/10/11/webdriver-capture-js-errors-while-running-tests/</link>
		<comments>http://mguillem.wordpress.com/2011/10/11/webdriver-capture-js-errors-while-running-tests/#comments</comments>
		<pubDate>Tue, 11 Oct 2011 09:07:14 +0000</pubDate>
		<dc:creator>Marc Guillemot</dc:creator>
				<category><![CDATA[WebDriver]]></category>

		<guid isPermaLink="false">http://mguillem.wordpress.com/?p=162</guid>
		<description><![CDATA[The stack trace of an exception in a log file is a sign that something went wrong. Even if nobody complains it is wise to take a bit time and investigate it before it really hurts. Exactly the same applies to JavaScript errors in a web application. I believe that each JavaScript error should be [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mguillem.wordpress.com&amp;blog=991744&amp;post=162&amp;subd=mguillem&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The stack trace of an exception in a log file is a sign that something went wrong. Even if nobody complains it is wise to take a bit time and investigate it before it really hurts.</p>
<p>Exactly the same applies to JavaScript errors in a web application. I believe that each JavaScript error should be considered as a bug and they should all be fixed before delivering, no matter if they directly impact the user experience or not.</p>
<p>Many great tools (JavaScript Console, <a href="http://getfirebug.com/">Firebug</a>, <a href="http://chrispederick.com/work/web-developer/">WebDeveloper Toolbar</a>, &#8230;) allow to see the JavaScript errors while developing with Firefox as well as with other browsers and a wisely used error handler can report JavaScript errors to the server in production.</p>
<p>Sadly the support is not good while running automated tests. <a href="http://htmlunit.sourceforge.net/">HtmlUnit</a> provides a great help for that (see for instance <a href="http://mguillem.wordpress.com/2008/09/10/why-google-should-better-use-htmlunit/">this</a>) but often integration tests should run in &#8220;real&#8221; browsers and not in HtmlUnit (for some good and many bad reasons). I don&#8217;t know currently any browser automation tool providing access to the JavaScript errors and to other information available in browsers like Firefox or Chrome that can be helpful for developers conscientious of the quality of their work</p>
<p><a href="http://code.google.com/p/selenium/">WebDriver</a> is here not better than its concurrents and the issue <a href="http://code.google.com/p/selenium/issues/detail?id=148">&#8220;API for checking for JavaScript errors on the page&#8221;</a> is opened since 2 1/2 years without any sign of life from the project&#8217;s members. The Selenium 1 issues <a href="http://jira.openqa.org/browse/SEL-522">SEL-522</a> and <a href="http://jira.openqa.org/browse/SEL-613">SEL-613</a> are equally asleep. Luckily WebDriver provides the possibility to configure additional extensions when using the FirefoxDriver, what allows to improve the situation.</p>
<h2>Tester&#8217;s friendly application and injected error handler</h2>
<p>The simpliest way to catch JavaScript errors for later retrieval is to add something like that</p>
<p><pre class="brush: xml; gutter: false;">
&lt;script type=&quot;text/javascript&quot;&gt;
window.jsErrors = [];
window.onerror = function(errorMessage) {
  window.jsErrors[window.jsErrors.length] = errorMessage;
}
&lt;/script&gt;
</pre><br />
in every page of your application (see for instance <a href="http://www.silverwareconsulting.com/index.cfm/2010/6/7/Checking-for-JavaScript-Errors-with-Selenium">this post</a>).</p>
<p>This allows you to retrieve the captured errors with<br />
<pre class="brush: java; gutter: false;">
((JavascriptExecutor) driver).executeScript(&quot;return window.jsErrors&quot;);
</pre></p>
<p>This is a simple solution but it has different drawbacks. First you need to add this code at the beginning of all your HTML pages. If you&#8217;re in the ideal situation to be both developer and tester of the application it&#8217;s &#8220;just&#8221; one Ctrl+C and a lot of Ctrl+V. If you need to convince your colleagues or your management that the web pages should be modified for testability, it will be more difficult. From my experience it is not always easy to make such a requirement accepted.<br />
To overcome this problem we could imagine injecting the handler while running the test:</p>
<p><pre class="brush: java; gutter: false;">
String script = &quot;window.collectedErrors = [];&quot;
  + &quot;window.onerror = function(errorMessage) { &quot;
  + &quot;window.collectedErrors[window.collectedErrors.length] = errorMessage;&quot;
  + &quot;}&quot;;
((JavascriptExecutor) driver).executeScript(script);
</pre></p>
<p>but besides the fact that it has to be done on every page, we can&#8217;t do it early enough: a lot of JavaScript may already have been executed in the page when our <code>executeScript</code> statement is reached.</p>
<p>The second problem of an error handler per window is the difficult access to the captured errors. The JavaScript errors won&#8217;t necessarily occur in the currently focused window forcing you to iterate through all (i)frames and windows to check for errors. This can still be seen as a minor issue but the real problem is that captured errors get lost when a new document is loaded. At the end <strong>this solution allows to capture some JavaScript errors but not all JavaScript errors</strong>.</p>
<h2>Add support within the FirefoxDriver</h2>
<p>Firefox allows extensions to get notified of JavaScript errors, no matter where they occur.<br />
This mechanism is used for instance by Chris Pederick&#8217;s famous <a href="http://chrispederick.com/work/web-developer/">Web Developer Toolbar</a> to display a warn/error icon when an error has occurred on a page. Once you&#8217;ve succeeded in overcoming the sandbox mechanism separating extensions and loaded pages, it is quite easy to write a new Firefox extension that captures the JavaScript errors and makes them available in each content window.<br />
WebDriver on its side allows to add custom extensions to run in a <code>FirefoxDriver</code>. If you simply add this errors capturing extension to the <code>FirefoxProfile</code> you&#8217;ll have access to all JavaScript errors from within your tests. Luckily you don&#8217;t need to write it again and you can simply use my <a href="https://github.com/mguillem/JSErrorCollector">JSErrorCollector</a> (Apache 2 Licence). It allows to write following:</p>
<p><pre class="brush: java; gutter: false;">
...
import net.jsourcerer.webdriver.jserrorcollector.JavaScriptError;
...
final FirefoxProfile profile = new FirefoxProfile();
JavaScriptError.addExtension(profile);
final WebDriver driver = new FirefoxDriver(profile);
// ...
// navigate to some pages
// ...
List jsErrors = JavaScriptError.readErrors(driver);
assertThat(jsErrors, is(empty())
</pre></p>
<p>The <code>JavaScriptError</code> class holds the message, source name and line number of a JavaScript error just like what you can see in Firefox&#8217;s JavaScript console.</p>
<h2>Next steps</h2>
<h3>Other browsers</h3>
<p>It would be nice to have a simple access to JavaScript errors as well in the other browsers supported by WebDriver. For HtmlUnit it is a no-brainer. For Chrome it should be quite simple as an extension can register a global error listener. No idea what concerns IE and Opera.</p>
<h3>Integration</h3>
<p>Ideally the API should be provided natively by WebDriver, let&#8217;s see what will be the interest in my JSErrorCollector (follow <a href="http://code.google.com/p/selenium/issues/detail?id=148">issue 148</a> to stay informed).<br />
Retrieving the JavaScript errors is a first step on which different interesting features could be based. Verifying the absence of JavaScript errors after each test (using for instance JUnit&#8217;s @After) works fine but is tedious. One interesting feature would be to let the tests directly fail on the first JavaScript error (I&#8217;ll address wrapping drivers in a future post). Alternatively a precise dedicated reporting would have great benefits too. Some filtering features to ignore errors in third party libraries would be a nice feature as well.</p>
<p><a href="https://github.com/mguillem/JSErrorCollector">JSErrorCollector</a> is open source therefore patches are welcome. If you can&#8217;t/don&#8217;t want to contribute directly, I&#8217;m available to work on it on a contract base.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mguillem.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mguillem.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mguillem.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mguillem.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mguillem.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mguillem.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mguillem.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mguillem.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mguillem.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mguillem.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mguillem.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mguillem.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mguillem.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mguillem.wordpress.com/162/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mguillem.wordpress.com&amp;blog=991744&amp;post=162&amp;subd=mguillem&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mguillem.wordpress.com/2011/10/11/webdriver-capture-js-errors-while-running-tests/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/18dab424dacf9b928440691f700b1565?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mguillem</media:title>
		</media:content>
	</item>
		<item>
		<title>WebDriver: subclass the By class to define own locators</title>
		<link>http://mguillem.wordpress.com/2011/10/06/webdriver-subclass-the-by-class-to-define-own-locators/</link>
		<comments>http://mguillem.wordpress.com/2011/10/06/webdriver-subclass-the-by-class-to-define-own-locators/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 09:26:36 +0000</pubDate>
		<dc:creator>Marc Guillemot</dc:creator>
				<category><![CDATA[WebDriver]]></category>

		<guid isPermaLink="false">http://mguillem.wordpress.com/?p=147</guid>
		<description><![CDATA[WebDiver (alias Selenium 2) uses the By class to hold the mechanism used to locate elements within a document. It&#8217;s fluent API allows to write nice code like this: WebDriver&#8217;s API offers currently eight locators allowing to retrieve elements by id, name attribute, tag name, complete or partial link text, XPath, class name, and css [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mguillem.wordpress.com&amp;blog=991744&amp;post=147&amp;subd=mguillem&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://code.google.com/p/selenium/">WebDiver</a> (alias Selenium 2) uses the <a href="http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/By.html">By class</a> to hold the mechanism used to locate elements within a document. It&#8217;s fluent API allows to write nice code like this:</p>
<p><pre class="brush: java; gutter: false;">
driver.findElement(By.id(&quot;someId&quot;));
</pre></p>
<p>WebDriver&#8217;s API offers currently eight locators allowing to retrieve elements by <strong>id</strong>, <strong>name attribute</strong>, <strong>tag name</strong>, <strong>complete or partial link text</strong>, <strong>XPath</strong>, <strong>class name</strong>, and <strong>css selector</strong>. These location mechanisms are (always?) backed directly by the driver implementation what ensures that the best execution method is used for each browser.</p>
<p>These locators are very powerful but often too low level. Luckily it is easy to write your own ones.</p>
<h2>Locate input fields by associated label</h2>
<p>Do you know the HTML tag <em><strong>&lt;label &#8230;/&gt;</strong></em>? Even if it is quite an old tag as it was introduced in <a href="http://www.w3.org/TR/1998/REC-html40-19980424/interact/forms.html#h-17.9">HTML 4.0</a> back in 1998, it is not as widely used as it should. Besides its ability to <a href="http://www.w3.org/TR/WCAG10-HTML-TECHS/#forms-labels">improve accessibility</a>  it can be a wonderful help when writing test code.<br />
The <em><strong>&lt;label &#8230;/&gt;</strong></em> tag allows to associate some content (the label) to a form control. When a label element is clicked, it passes the event to the associated control.<br />
This means that you don&#8217;t need to precisely target the small box/circle area to check/uncheck a checkbox (or a radio button) but rather the, mostly larger, associated description. For text fields, a click on the label will bring the focus to the field, allowing to enter content. Just nice.</p>
<p>Example:</p>
<p><pre class="brush: xml; gutter: false;">
 &lt;label for='firstName'&gt;First name&lt;/label&gt; &lt;input name='firstname' id='firstName'&gt;
</pre></p>
<p>This clear association between label text and input field can be used for test automation.<br />
Instead of</p>
<p><pre class="brush: java; gutter: false;">
driver.findElement(By.id(&quot;firstName&quot;))
</pre></p>
<p>or</p>
<p><pre class="brush: java; gutter: false;">
driver.findElement(By.name(&quot;firstName&quot;))
</pre></p>
<p>with a bit XPath experience, you can write:</p>
<p><pre class="brush: java; gutter: false;">
driver.findElement(By.xpath(&quot;id(//label[text() = 'First name']/@for)&quot;));
</pre></p>
<p>but it would be nicer to write</p>
<p><pre class="brush: java; gutter: false;">
driver.findElement(By.label(&quot;First name&quot;)); // doesn't compile!
</pre></p>
<p>The bad news is that there is no such a label method in WebDriver&#8217;s By class. The good news is that it is quite easy to implement your own By subclass and to pack it in a static method:</p>
<p><pre class="brush: java; gutter: false;">
public static By byLabel(final String label)
{
  return new By() {
    @Override
    public List&lt;WebElement&gt; findElements(final SearchContext context)
    {
      final String xpath =
         &quot;//*[@id = //label[text() = \&quot;&quot; + label + &quot;\&quot;]/@for]&quot;;
      return ((FindsByXPath) context).findElementsByXPath(xpath);
    }

    @Override
    public WebElement findElement(final SearchContext context)
    {
      String xpath =
        &quot;id(//label[text() = \&quot;&quot; + label + &quot;\&quot;]/@for)&quot;;
      return ((FindsByXPath) context).findElementByXPath(xpath);
    }

    @Override
    public String toString()
    {
      return &quot;ByLabel: &quot; + label;
    }
  };
}
</pre></p>
<p>Now we can retrieve the input field in a short and readable way, relying only on information directly visible in the rendered HTML page rather than on (sometime ugly and volatile) name or id attributes:</p>
<p><pre class="brush: java; gutter: false;">
driver.findElement(byLabel(&quot;First name&quot;));
</pre></p>
<h2>Write custom locators tailored for YOUR application</h2>
<p>I encourage my customers to write custom locators. WebDriver is not targetted to any particular web framework or page layout neither does it know anything about<br />
your application domain therefore it can only contain general purpose locators.<br />
When you write tests, you know about the application under test and you can easily leverage WebDriver&#8217;s API to write dedicated locators. This allows you to avoid duplication of the location&#8217;s complexity by centralizing it in the locators and makes your code easier to read and to maintain.<br />
Candidates for custom locators are for instance menu item or tab by name, spreadsheet cell by column and row index, or product quantity field by product description.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mguillem.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mguillem.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mguillem.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mguillem.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mguillem.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mguillem.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mguillem.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mguillem.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mguillem.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mguillem.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mguillem.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mguillem.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mguillem.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mguillem.wordpress.com/147/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mguillem.wordpress.com&amp;blog=991744&amp;post=147&amp;subd=mguillem&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mguillem.wordpress.com/2011/10/06/webdriver-subclass-the-by-class-to-define-own-locators/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/18dab424dacf9b928440691f700b1565?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mguillem</media:title>
		</media:content>
	</item>
		<item>
		<title>WJAX 2010: WebApp Monitoring &amp; JUnit 4</title>
		<link>http://mguillem.wordpress.com/2010/11/16/wjax-2010-webapp-monitoring-and-junit-4/</link>
		<comments>http://mguillem.wordpress.com/2010/11/16/wjax-2010-webapp-monitoring-and-junit-4/#comments</comments>
		<pubDate>Tue, 16 Nov 2010 10:54:06 +0000</pubDate>
		<dc:creator>Marc Guillemot</dc:creator>
				<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://mguillem.wordpress.com/?p=139</guid>
		<description><![CDATA[I&#8217;ll present two sessions at this year&#8217;s W-JAX conference in Munich: Monitoring von Webanwendungen (together with my friend Peter Roßbach of Apache Tomcat&#8216;s fame) JUnit 4 ist nicht nur @Test! We will hold our session about web application monitoring twice as conference&#8217;s organisation expects a high number of attendees. If you read this post and are [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mguillem.wordpress.com&amp;blog=991744&amp;post=139&amp;subd=mguillem&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://jax.de/wjax2010/"><img class="size-full wp-image-140 aligncenter" title="W-JAX 2010" src="http://mguillem.files.wordpress.com/2010/11/wjaxbutton_de.png?w=477" alt=""   /></a></p>
<p>I&#8217;ll present two sessions at this year&#8217;s <a href="http://jax.de/wjax2010/">W-JAX conference</a> in Munich:</p>
<ul>
<li><strong>Monitoring von Webanwendungen</strong> (together with my friend <a href="http://www.objektpark.org/">Peter Roßbach</a> of <a href="http://tomcat.apache.org/">Apache Tomcat</a>&#8216;s fame)</li>
<li><strong>JUnit 4 ist nicht nur @Test!</strong></li>
</ul>
<p>We will hold our session about web application monitoring twice as conference&#8217;s organisation expects a high number of attendees.</p>
<p>If you read this post and are present at W-JAX 2010, come to say hello. I offer a beer to the first one who tells me that he has read this post.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mguillem.wordpress.com/139/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mguillem.wordpress.com/139/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mguillem.wordpress.com/139/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mguillem.wordpress.com/139/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mguillem.wordpress.com/139/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mguillem.wordpress.com/139/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mguillem.wordpress.com/139/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mguillem.wordpress.com/139/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mguillem.wordpress.com/139/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mguillem.wordpress.com/139/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mguillem.wordpress.com/139/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mguillem.wordpress.com/139/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mguillem.wordpress.com/139/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mguillem.wordpress.com/139/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mguillem.wordpress.com&amp;blog=991744&amp;post=139&amp;subd=mguillem&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mguillem.wordpress.com/2010/11/16/wjax-2010-webapp-monitoring-and-junit-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/18dab424dacf9b928440691f700b1565?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mguillem</media:title>
		</media:content>

		<media:content url="http://mguillem.files.wordpress.com/2010/11/wjaxbutton_de.png" medium="image">
			<media:title type="html">W-JAX 2010</media:title>
		</media:content>
	</item>
		<item>
		<title>HtmlUnit 2.8 released</title>
		<link>http://mguillem.wordpress.com/2010/08/05/htmlunit-2-8-released/</link>
		<comments>http://mguillem.wordpress.com/2010/08/05/htmlunit-2-8-released/#comments</comments>
		<pubDate>Thu, 05 Aug 2010 09:24:27 +0000</pubDate>
		<dc:creator>Marc Guillemot</dc:creator>
				<category><![CDATA[HtmlUnit]]></category>
		<category><![CDATA[Test Automation]]></category>

		<guid isPermaLink="false">http://mguillem.wordpress.com/?p=135</guid>
		<description><![CDATA[Nearly 6 months after release 2.7, HtmlUnit-2.8 is finally ready. This release comes later as originally planned as we wanted to avoid as most as possible any side effect of the large internal changes. I&#8217;m now quite confident that we have reached a really good status. Here is an extract of the change log: single [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mguillem.wordpress.com&amp;blog=991744&amp;post=135&amp;subd=mguillem&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Nearly 6 months after release 2.7, <a href="http://htmlunit.sf.net">HtmlUnit-2.8</a> is finally ready.</p>
<p>This release comes later as originally planned as we wanted to avoid as most as possible any side effect of the large internal changes. I&#8217;m now quite confident that we have reached a really good status.</p>
<p>Here is an extract of the <a href="http://htmlunit.sourceforge.net/changes-report.html">change log</a>:</p>
<ul>
<li>single thread for background JS execution</li>
<li>migration to HttpClient 4</li>
<li>initial support for FF3.6 simulation</li>
<li>support for SOCKS proxy</li>
<li>initial support for <a href="http://appengine.google.com/">Google AppEngine</a></li>
<li>support for large (binary) download</li>
<li> &#8230;</li>
</ul>
<p>Download: <a class="moz-txt-link-freetext" href="http://sourceforge.net/project/showfiles.php?group_id=47038">http://sourceforge.net/project/showfiles.php?group_id=47038</a></p>
<p>The support for <a href="http://appengine.google.com/">Google AppEngine</a> which is based on contributions from Google&#8217;s GWT team is exciting as it will open the door to new usage of HtmlUnit.</p>
<p>The number of HtmlUnit users continuously grows and, as the consequence, so does the number of reported issues and feature wishes. We will try to address it in next release.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mguillem.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mguillem.wordpress.com/135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mguillem.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mguillem.wordpress.com/135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mguillem.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mguillem.wordpress.com/135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mguillem.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mguillem.wordpress.com/135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mguillem.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mguillem.wordpress.com/135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mguillem.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mguillem.wordpress.com/135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mguillem.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mguillem.wordpress.com/135/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mguillem.wordpress.com&amp;blog=991744&amp;post=135&amp;subd=mguillem&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mguillem.wordpress.com/2010/08/05/htmlunit-2-8-released/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/18dab424dacf9b928440691f700b1565?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mguillem</media:title>
		</media:content>
	</item>
		<item>
		<title>WebTest with Groovy, Maven and Eclipse</title>
		<link>http://mguillem.wordpress.com/2009/04/30/webtest-with-groovy-maven-and-eclipse/</link>
		<comments>http://mguillem.wordpress.com/2009/04/30/webtest-with-groovy-maven-and-eclipse/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 09:59:19 +0000</pubDate>
		<dc:creator>Marc Guillemot</dc:creator>
				<category><![CDATA[Groovy]]></category>
		<category><![CDATA[Test Automation]]></category>
		<category><![CDATA[WebTest]]></category>

		<guid isPermaLink="false">http://mguillem.wordpress.com/?p=115</guid>
		<description><![CDATA[WebTest is in fact &#8220;only&#8221; a set of Ant tasks therefore it&#8217;s not a surprise that WebTest tests are traditionally written in XML. Grails WebTest plugin has shown that Groovy can be a very pleasant alternative thanks to the AntBuilder. Even if you don&#8217;t use Grails, you can write WebTest tests in Groovy using the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mguillem.wordpress.com&amp;blog=991744&amp;post=115&amp;subd=mguillem&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://webtest.canoo.com">WebTest</a> is in fact &#8220;only&#8221; a set of <a href="http://ant.apache.org">Ant</a> tasks therefore it&#8217;s not a surprise that WebTest tests are traditionally written in XML. <a href="http://www.grails.org/Functional+Testing">Grails WebTest plugin</a> has shown that Groovy can be a very pleasant alternative thanks to the <a href="http://groovy.codehaus.org/Using+Ant+from+Groovy">AntBuilder</a>. Even if you don&#8217;t use Grails, you can write WebTest tests in Groovy using the support provided by WebTest&#8217;s distribution but if you plan to write all your tests in Groovy, this is surely not optimal. This post shows step by step a way to write WebTest tests that is near to a traditional setup for unit tests using Groovy and <a href="http://maven.apache.org/">Maven</a>.</p>
<p>Note: I&#8217;m not a Maven expert. The proposed code works but it can perhaps be improved.</p>
<ol>
<li><strong>Create a new Maven project</strong><br />
<pre class="brush: php;">
mvn archetype:create -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=my.domain -DartifactId=myWebTestApp
</pre></p>
<p><code> </code></li>
<li><strong>Edit the generated <code>pom.xml</code></strong>
<ol>
<li>Add WebTest as dependency:<br />
<pre class="brush: xml;">
    &lt;dependencies&gt;
        ...
        &lt;dependency&gt;
            &lt;groupId&gt;com.canoo.webtest&lt;/groupId&gt;
            &lt;artifactId&gt;webtest&lt;/artifactId&gt;
            &lt;version&gt;3.1-SNAPSHOT&lt;/version&gt;
        &lt;/dependency&gt;
    &lt;/dependencies&gt;
</pre></li>
<li>Add reference to WebTest&#8217;s Maven snapshot repository<br />
<pre class="brush: xml;">
	    &lt;repositories&gt;
	        &lt;repository&gt;
	            &lt;id&gt;webtest_dependencies_snapshot&lt;/id&gt;
	            &lt;name&gt;WebTest dependencies&lt;/name&gt;
	            &lt;url&gt;http://webtest.canoo.com/webtest/m2-repo-snapshots&lt;/url&gt;
	        &lt;/repository&gt;
	    &lt;/repositories&gt;
</pre></p>
<p>Note that this is needed only if you want to use the latest WebTest snapshot (which is always the best one). You don&#8217;t need it if you use a version that is available on the central repository. As of Apr. 30, WebTest 3.0 has not been uploaded to the central repository. The upload request is available here: <a href="http://jira.codehaus.org/browse/MAVENUPLOAD-2439">MAVENUPLOAD-2439</a>.</p>
<p><span style="color:#ff0000;">Update: WebTest 3.0 is available in Maven central repository since May 19.</span></li>
<li>Configure the GMaven plugin<br />
<pre class="brush: xml;">
&lt;build&gt;
	&lt;plugins&gt;
		&lt;plugin&gt;
			&lt;groupId&gt;org.codehaus.groovy.maven
			&lt;/groupId&gt;
			&lt;artifactId&gt;gmaven-plugin&lt;/artifactId&gt;
			&lt;version&gt;1.0-rc-5&lt;/version&gt;
			&lt;executions&gt;
				&lt;execution&gt;
					&lt;goals&gt;
						&lt;goal&gt;compile&lt;/goal&gt;
						&lt;goal&gt;testCompile&lt;/goal&gt;
					&lt;/goals&gt;
				&lt;/execution&gt;
			&lt;/executions&gt;
		&lt;/plugin&gt;
		&lt;plugin&gt;
			&lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
			&lt;artifactId&gt;build-helper-maven-plugin&lt;/artifactId&gt;
			&lt;executions&gt;
				&lt;execution&gt;
					&lt;id&gt;add-test-source&lt;/id&gt;
					&lt;phase&gt;generate-sources&lt;/phase&gt;
					&lt;goals&gt;
						&lt;goal&gt;add-test-source&lt;/goal&gt;
					&lt;/goals&gt;
					&lt;configuration&gt;
						&lt;sources&gt;
							&lt;source&gt;src/test/groovy&lt;/source&gt;
						&lt;/sources&gt;
					&lt;/configuration&gt;
				&lt;/execution&gt;
			&lt;/executions&gt;
		&lt;/plugin&gt;
	&lt;/plugins&gt;
&lt;/build&gt;
</pre></li>
</ol>
</li>
<li><strong>Create the Eclipse project</strong><br />
<pre class="brush: php;">
mvn -Declipse.downloadSources=true eclipse:eclipse
</pre></p>
<p>I guess that something similar exists for other IDEs.</li>
<li><strong>Import the project in your workspace</strong></li>
<li><strong>Add Groovy support in the IDE</strong><br />
The <a href="http://groovy.codehaus.org/Eclipse+Plugin">Groovy support in Eclipse</a> is not as good as in other IDEs but it is better than nothing.</li>
<li><strong>Write your first WebTest in Groovy</strong> <code>src/test/groovy/my/domain/FirstWebTest.groovy</code><br />
<pre class="brush: java;">
package my.domain

import com.canoo.webtest.WebtestCase

/**
 * My first WebTest in Groovy.
 */
class FirstWebTest extends WebtestCase {

	void testGoogleSearch() {
		webtest(&quot;My first test&quot;) {
			invoke &quot;http://www.google.com/ncr&quot;, description: &quot;Go to Google (in English)&quot;
			verifyTitle &quot;Google&quot;
			setInputField name: &quot;q&quot;, value: &quot;WebTest&quot;
			clickButton &quot;I'm Feeling Lucky&quot;
			verifyTitle &quot;Canoo WebTest&quot;
		}
	}
}
</pre></li>
<li><strong>Run the test </strong>
<ul>
<li>As normal unit test from the IDE<br />
As it is a normal unit test and you can use the IDE support for that. In Eclipse this can be done with <code>right mouse click / Run As... / Junit Test</code> or with the shortcut <code>Alt + Shift + X Z</code></li>
<li>Or from the command line<br />
<pre class="brush: php;">
mvn test
</pre></li>
</ul>
</li>
<li><strong>Enjoy the results!</strong><br />
Running a WebTest this way produces &#8220;normal&#8221; JUnit reports as well as the traditional reports of WebTest that contain precise information to quickly find the cause of failed tests.</li>
<li><strong>(optional) Run headless</strong><br />
Per default WebTest shows a console that informs about the running tests and opens the reports in your browser once the tests are finished. This is often useful on a workstation but it may be really annoying on a build server.  To avoid that, you just need to set the <code>wt.headless</code> property:<br />
<pre class="brush: php;">
mvn test -Dwt.headless
</pre></li>
</ol>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mguillem.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mguillem.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mguillem.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mguillem.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mguillem.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mguillem.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mguillem.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mguillem.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mguillem.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mguillem.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mguillem.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mguillem.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mguillem.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mguillem.wordpress.com/115/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mguillem.wordpress.com&amp;blog=991744&amp;post=115&amp;subd=mguillem&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mguillem.wordpress.com/2009/04/30/webtest-with-groovy-maven-and-eclipse/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/18dab424dacf9b928440691f700b1565?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mguillem</media:title>
		</media:content>
	</item>
		<item>
		<title>Call for Papers: FrOSCon Java Sub-Conference, Sankt-Augustin 22-23.08.09</title>
		<link>http://mguillem.wordpress.com/2009/04/21/call-for-papers-froscon-java-sub-conference-sankt-augustin-22-230809/</link>
		<comments>http://mguillem.wordpress.com/2009/04/21/call-for-papers-froscon-java-sub-conference-sankt-augustin-22-230809/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 10:48:54 +0000</pubDate>
		<dc:creator>Marc Guillemot</dc:creator>
				<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://mguillem.wordpress.com/?p=111</guid>
		<description><![CDATA[The 4th edition of the Free Open Source Conference (in short FrOSCon) in Sankt Augustin (near to Bonn, Germany) will take place on 22. and 23. August 2009. This year I&#8217;m involved in the organization of a small part of the event: the Java sub conference. If you have some interesting topic(s) that you want [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mguillem.wordpress.com&amp;blog=991744&amp;post=111&amp;subd=mguillem&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The 4th edition of the <a href="http://www.froscon.de/">Free Open Source Conference</a> (in short FrOSCon) in Sankt Augustin (near to Bonn, Germany) will take place on 22. and 23. August 2009.</p>
<p>This year I&#8217;m involved in the organization of a small part of the event: the <a href="http://www.froscon.de/index.php?id=15&amp;mid=96&amp;ret=15&amp;L=1&amp;L=1">Java sub conference</a>. If you have some interesting topic(s) that you want to present around Java and Open Source, don&#8217;t wait any longer, go to the <a href="http://www.froscon.de/en/program/call-for-papers.html">Call for Paper site</a> and submit your proposal.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mguillem.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mguillem.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mguillem.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mguillem.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mguillem.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mguillem.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mguillem.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mguillem.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mguillem.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mguillem.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mguillem.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mguillem.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mguillem.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mguillem.wordpress.com/111/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mguillem.wordpress.com&amp;blog=991744&amp;post=111&amp;subd=mguillem&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mguillem.wordpress.com/2009/04/21/call-for-papers-froscon-java-sub-conference-sankt-augustin-22-230809/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/18dab424dacf9b928440691f700b1565?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mguillem</media:title>
		</media:content>
	</item>
		<item>
		<title>HtmlUnit 2.5 released</title>
		<link>http://mguillem.wordpress.com/2009/04/21/htmlunit-25-released/</link>
		<comments>http://mguillem.wordpress.com/2009/04/21/htmlunit-25-released/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 10:37:11 +0000</pubDate>
		<dc:creator>Marc Guillemot</dc:creator>
				<category><![CDATA[HtmlUnit]]></category>
		<category><![CDATA[NekoHTML]]></category>

		<guid isPermaLink="false">http://mguillem.wordpress.com/?p=108</guid>
		<description><![CDATA[The HtmlUnit team is pleased to announce the release of HtmlUnit 2.5. This release brings another round of improvements and bug fixes. Here is an extract of the change log: improved JS support, particularly full support for MooTools repackaged Rhino classes to allow to use HtmlUnit and a regular Rhino version in the same project [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mguillem.wordpress.com&amp;blog=991744&amp;post=108&amp;subd=mguillem&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://htmlunit.sf.net">HtmlUnit</a> team is pleased to announce the release of HtmlUnit 2.5. This release brings another round of improvements and bug fixes.</p>
<p>Here is an extract of the <a href="http://htmlunit.sourceforge.net/changes-report.html">change log</a>:</p>
<ul>
<li> improved JS support, particularly full support for <a href="http://mootools.net/">MooTools</a></li>
<li> repackaged <a href="http://www.mozilla.org/rhino">Rhino</a> classes to allow to use HtmlUnit and a regular Rhino version in the same project</li>
<li> experimental <a href="http://htmlunit.sourceforge.net/apidocs/com/gargoylesoftware/htmlunit/WebClient.html#waitForBackgroundJavaScript(long)">WebClient.waitForBackgroundJavaScript()</a> and <a href="http://htmlunit.sourceforge.net/apidocs/com/gargoylesoftware/htmlunit/WebClient.html#waitForBackgroundJavaScriptStartingBefore(long)">WebClient.waitForBackgroundJavaScriptStartingBefore()</a> for simple, fast and deterministic AJAX testing</li>
<li> reworked handling of background JS tasks using JDK5 executors</li>
<li> &#8230;</li>
</ul>
<p>Download: <a class="moz-txt-link-freetext" href="http://sourceforge.net/project/showfiles.php?group_id=47038">http://sourceforge.net/project/showfiles.php?group_id=47038</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mguillem.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mguillem.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mguillem.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mguillem.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mguillem.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mguillem.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mguillem.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mguillem.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mguillem.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mguillem.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mguillem.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mguillem.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mguillem.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mguillem.wordpress.com/108/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mguillem.wordpress.com&amp;blog=991744&amp;post=108&amp;subd=mguillem&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mguillem.wordpress.com/2009/04/21/htmlunit-25-released/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/18dab424dacf9b928440691f700b1565?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mguillem</media:title>
		</media:content>
	</item>
		<item>
		<title>HtmlUnit @ JavaOne 09</title>
		<link>http://mguillem.wordpress.com/2009/03/02/htmlunit-javaone-09/</link>
		<comments>http://mguillem.wordpress.com/2009/03/02/htmlunit-javaone-09/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 10:11:19 +0000</pubDate>
		<dc:creator>Marc Guillemot</dc:creator>
				<category><![CDATA[HtmlUnit]]></category>

		<guid isPermaLink="false">http://mguillem.wordpress.com/?p=102</guid>
		<description><![CDATA[Great news: the proposal of HtmlUnit committers Daniel Gredler and Ahmed Ashour for the next JavaOne conference has been accepted! They will present &#8221; HtmlUnit: An Efficient Approach to Testing Web Applications &#8221; at the biggest Java conference in San Francisco (May 31 &#8211; June 05). This is an additional very good sign for the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mguillem.wordpress.com&amp;blog=991744&amp;post=102&amp;subd=mguillem&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Great news: the proposal of <a href="http://htmlunit.sf.net">HtmlUnit</a> committers <a href="http://daniel.gredler.net">Daniel Gredler</a> and <a href="http://asashour.blogspot.com">Ahmed Ashour</a> for the next <a href="http://java.sun.com/javaone/index.jsp">JavaOne</a> conference has been accepted!</p>
<p>They will present &#8221; <strong>HtmlUnit: An Efficient Approach to Testing Web Applications</strong> &#8221; at the biggest Java conference in San Francisco (May 31 &#8211; June 05).</p>
<p>This is an additional very good sign for the constantly growing recognition of HtmlUnit and I hope that it will be the occasion for them to meet a lot of HtmlUnit users.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mguillem.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mguillem.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mguillem.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mguillem.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mguillem.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mguillem.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mguillem.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mguillem.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mguillem.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mguillem.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mguillem.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mguillem.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mguillem.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mguillem.wordpress.com/102/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mguillem.wordpress.com&amp;blog=991744&amp;post=102&amp;subd=mguillem&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mguillem.wordpress.com/2009/03/02/htmlunit-javaone-09/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/18dab424dacf9b928440691f700b1565?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mguillem</media:title>
		</media:content>
	</item>
		<item>
		<title>Should HtmlUnit move to Apache Foundation?</title>
		<link>http://mguillem.wordpress.com/2009/01/09/should-htmlunit-move-to-apache-foundation/</link>
		<comments>http://mguillem.wordpress.com/2009/01/09/should-htmlunit-move-to-apache-foundation/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 10:07:23 +0000</pubDate>
		<dc:creator>Marc Guillemot</dc:creator>
				<category><![CDATA[HtmlUnit]]></category>
		<category><![CDATA[Apache Foundation]]></category>

		<guid isPermaLink="false">http://mguillem.wordpress.com/?p=98</guid>
		<description><![CDATA[Should HtmlUnit move to Apache Foundation? (the first step would be to make a proposal for the Apache Incubator) Nothing is decided, we&#8217;re just thinking loud and are interested to hear what our users think of this idea. I&#8217;ve started the discussion in HtmlUnit user mailing list but comments are welcome here too.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mguillem.wordpress.com&amp;blog=991744&amp;post=98&amp;subd=mguillem&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Should <a href="http://htmlunit.sf.net">HtmlUnit</a> move to <a href="http://www.apache.org">Apache Foundation</a>? (the first step would be to make a proposal for the <a href="http://incubator.apache.org/">Apache Incubator</a>)</p>
<p>Nothing is decided, we&#8217;re just thinking loud and are interested to hear what our users think of this idea. I&#8217;ve started the <a href="http://htmlunit.markmail.org/message/j7c2iolrzef7wjhg">discussion</a> in HtmlUnit user mailing list but comments are welcome here too.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mguillem.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mguillem.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mguillem.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mguillem.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mguillem.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mguillem.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mguillem.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mguillem.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mguillem.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mguillem.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mguillem.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mguillem.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mguillem.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mguillem.wordpress.com/98/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mguillem.wordpress.com&amp;blog=991744&amp;post=98&amp;subd=mguillem&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mguillem.wordpress.com/2009/01/09/should-htmlunit-move-to-apache-foundation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/18dab424dacf9b928440691f700b1565?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mguillem</media:title>
		</media:content>
	</item>
		<item>
		<title>TheServerSide Java Symposium: &#8220;HtmlUnit: An Efficient Approach to Testing Web Applications&#8221;</title>
		<link>http://mguillem.wordpress.com/2009/01/09/htmlunit-theserverside-symposium/</link>
		<comments>http://mguillem.wordpress.com/2009/01/09/htmlunit-theserverside-symposium/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 09:56:09 +0000</pubDate>
		<dc:creator>Marc Guillemot</dc:creator>
				<category><![CDATA[HtmlUnit]]></category>
		<category><![CDATA[TheServerSide Symposium]]></category>

		<guid isPermaLink="false">http://mguillem.wordpress.com/?p=91</guid>
		<description><![CDATA[I will present &#8220;HtmlUnit: An Efficient Approach to Testing Web Applications&#8221; together with Daniel Gredler at TheServerSide Java Symposium in Las Vegas (March, 18). This will be funny because I work together with Daniel in the HtmlUnit project since a few years and I&#8217;ve never met him until now. I think that this will be [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mguillem.wordpress.com&amp;blog=991744&amp;post=91&amp;subd=mguillem&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://javasymposium.techtarget.com/"><img class="size-full wp-image-92 alignleft" title="tssjs-imspeaking" src="http://mguillem.files.wordpress.com/2009/01/tssjs-imspeaking.gif?w=477" alt="tssjs-imspeaking"   /></a></p>
<p>I will present &#8220;<a href="http://javasymposium.techtarget.com/html/tools_tech.html#MGuillemotHtmlUnit">HtmlUnit: An Efficient Approach to Testing Web Applications</a>&#8221; together with <a href="http://daniel.gredler.net">Daniel Gredler</a> at <a href="http://javasymposium.techtarget.com">TheServerSide Java Symposium</a> in Las Vegas (March, 18).</p>
<p>This will be funny because I work together with Daniel in the <a href="http://htmlunit.sf.net">HtmlUnit</a> project since a few years and I&#8217;ve never met him until now.</p>
<p>I think that this will be a great occasion to show HtmlUnit&#8217;s potential and I hope that we will meet a lot of HtmlUnit users.</p>
<p>Thanks to Tools &amp; Techniques chair <a href="http://javasymposium.techtarget.com/html/speakers.html#FCohen">Frank Cohen</a> for inviting us.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mguillem.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mguillem.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mguillem.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mguillem.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mguillem.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mguillem.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mguillem.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mguillem.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mguillem.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mguillem.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mguillem.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mguillem.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mguillem.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mguillem.wordpress.com/91/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mguillem.wordpress.com&amp;blog=991744&amp;post=91&amp;subd=mguillem&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mguillem.wordpress.com/2009/01/09/htmlunit-theserverside-symposium/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/18dab424dacf9b928440691f700b1565?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mguillem</media:title>
		</media:content>

		<media:content url="http://mguillem.files.wordpress.com/2009/01/tssjs-imspeaking.gif" medium="image">
			<media:title type="html">tssjs-imspeaking</media:title>
		</media:content>
	</item>
	</channel>
</rss>
