110 likes | 266 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/