110 likes | 185 Views
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
E N D
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 • 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 • 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 • 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/