I too am testing ajax with webtest. There is always the option of manually
adding sleeps after a step that will cause ajax to be called, but this would
lead to wasted time as it will sleep for too long or false positives because
the ajax took just a little longer this time and ended up loading after your
sleep was done. Marc has added some config option called easyAjax, but that
just sleeps for two seconds in between steps and sometimes it takes longer than
that for our ajax to load. I have created a macro I called ajaxLoad that
accepts an implicit element, then the function retries that element 30 times
with a sleep of 1 second before the element, so it looks like below:
<macrodef name="ajaxLoad">
<element name="value" implicit="yes"/>
<sequential>
<retry maxcount="30">
<sleep seconds="1"/>
<value/>
</retry>
</sequential>
</macrodef>
Then I call the function and pass an xpath that will appear when ajax has
finished loading, like below:
<ajaxLoad>
<verifyXPath xpath="//t...@id='loadedAfterAjaxCall']" description="Wait
for ajax to load"/>
</ajaxLoad>
This way you sleep for the correct amount of time and our ajax always comes
back in 30 seconds, and you know that the element you want on the page is
actually there.
What do people think of this method? Does anyone else have a better way of
doing this, so far it appears to be working for me but I haven't used it in too
many places as my first attempt on an older build wasn't working correctly and
so I just made it sleep for 5 seconds :) Then I got a newer build and decided
to try it again in new tests and its been working fine. :)
-----Original Message-----
From: [email protected] [mailto:[email protected]] On
Behalf Of Robert Fischer
Sent: Monday, December 29, 2008 2:03 PM
To: [email protected]
Subject: [Webtest] AJAX?
What are the best practices for AJAX with Canoo right now? I'm having trouble
finding documentation on it.
Basically, I've got a site where components are loaded/operated via AJAX calls
to the server, and I'd like to use Canoo to functionally test them, but I'm
having trouble figuring out how to make that work.
~~ Robert Fischer.
Grails Trainining http://www.smokejumperit.com/grails_training.html
Smokejumper Consulting http://smokejumperit.com Enfranchised Mind Blog
http://enfranchisedmind.com/blog _______________________________________________
WebTest mailing list
[email protected]
http://lists.canoo.com/mailman/listinfo/webtest
_______________________________________________
WebTest mailing list
[email protected]
http://lists.canoo.com/mailman/listinfo/webtest