Stable and reliable Web Automation - Narayan Raman
The Goal Reduce testing effort Automate things that can be automated Tests should be Repeatable (Reliable) Maintainable Fast
Web Technologies AJAX Web 2.0 Highly dynamic applications Lots of frameworks Newer, powerful browsers HTML5
Breaking down Automation Object Identification Handling Asynchronicity Event Simulation Reporting Playback time optimization
Object Identification Present methods Id, name Xpath Css-selector Xpath and Css-selectors are brittle Too dependent on programmatic structure Require programmatic knowledge
Better Object Identification Business logic changes less than code Business drives User Interface UI Relations _image(“plus.gif”, _near(_div(“My Documents”))) _textbox(0, _near(_label("Loan Amount"))) _cell(0, _near(“Ram”), _under(“Loan Amount”)) More stable
Asynchronicity Waits needed for Hard coded waits Conditional waits Page loads Frame/iframe loads AJAX request completion Javascript timeout triggers Hard coded waits Wasteful Conditional waits Complicated Tool should handle time outs automatically
Maintainable Easy to create scripts Easy to debug scripts Good recorders on all browsers Object Spy Easy to debug scripts Real time debugging to examine state of web page Good reporting Work across browsers and operating systems
Fast Execution Execute tests in parallel Spread tests across machines Some Browsers allow separation of cookies across instances Spread tests across machines Limit hard coded waits Use fast accessors Xpaths are very slow on IE
Sahi http://sahi.co.in Open source tool Sahi Pro – Commercial offering Tester friendly Light weight and scalable
Q&A V Narayan Raman narayan@tytosoftware.com http://sahi.co.in/