Automated Web Testing Erik Doernenburg ThoughtWorks



Similar documents
Automated Web Testing with Selenium

Selenium An Effective Weapon In The Open Source Armory

Automation using Selenium

Selenium Automation set up with TestNG and Eclipse- A Beginners Guide

STUDY AND ANALYSIS OF AUTOMATION TESTING TECHNIQUES

Continuous Integration

Domain Specific Languages for Selenium tests

Test Automation Selenium WebDriver using TestNG

Software Automated Testing

SpiraTest / SpiraTeam Automated Unit Testing Integration & User Guide Inflectra Corporation

}w!"#$%&'()+,-./012345<ya

ekomimeetsmage Manual for version 1.0.0, 1.1.0, 1.2.0, 1.3.0, 1.4.0

BDD FOR AUTOMATING WEB APPLICATION TESTING. Stephen de Vries

Selenium WebDriver. Gianluca Carbone. Selenium WebDriver 1

Regression & Load Testing BI EE 11g

Analysis and Identification of Cross Browser Inconsistency Issues in Web Application using Automation Testing

Exploring Web Testing Tools For Use In A Classroom

Windmill. Automated Testing for Web Applications

SOFTWARE TESTING TRAINING COURSES CONTENTS

Introduction to Selenium Using Java Language

Web Applications Testing

Progressive Enhancement With GQuery and GWT. Ray Cromwell

Agile Web Application Testing

Example. Represent this as XML

WA2262 Applied Data Science and Big Data Analytics Boot Camp for Business Analysts. Classroom Setup Guide. Web Age Solutions Inc.

Installation Guide. Before We Begin: Please verify your practice management system is compatible with Dental Collect Enterprise.

SellerDeck Desktop 2016

Appium mobile test automation

Google App Engine f r o r J av a a v a (G ( AE A / E J / )

Automating Testing and Configuration Data Migration in OTM/GTM Projects using Open Source Tools By Rakesh Raveendran Oracle Consulting

Automated testing of CS UI using Selenium and Python

Selenium WebDriver Recipes in C#

Test Automation Integration with Test Management QAComplete

Google Web Toolkit. Introduction to GWT Development. Ilkka Rinne & Sampo Savolainen / Spatineo Oy

The Research and Design of NSL-Oriented Automation Testing Framework

Certified Selenium Professional VS-1083

To Setup Your EFT Processing. To Setup Your Credit Card Processing

Infor Xtreme Browser References

Mink Documentation. Release 1.6. Konstantin Kudryashov (everzet)

The goal with this tutorial is to show how to implement and use the Selenium testing framework.

With the use of keyword driven framework, we can automate the following test scenarios for Gmail as under :-

Redpaper Axel Buecker Kenny Chow Jenny Wong

How To Sync Google Drive On A Mac Computer With A Gmail Account On A Gcd (For A Student) On A Pc Or Mac Or Mac (For An Older Person) On An Ipad Or Ipad (For Older People) On

The easy way to a nice looking website design. By a total non-designer (Me!)

Testing Tools Content (Manual with Selenium) Levels of Testing

Dues & Billing. Dues & Billing. I. Dues and Billing Overview. Welcome to Dues and Billing!

F-SECURE MESSAGING SECURITY GATEWAY

Cloud Services. Sharepoint. Admin Quick Start Guide

How to use SURA in three simple steps:

Outlook Connector. Version 2 User Manual. client-side plugin. Collaborate Using Outlook. Version 2.0.0

Software Development Tools

Enable Your Automated Web App Testing by WebDriver. Yugang Fan Intel

Magento Test Automation Framework User's Guide

WA2256 Responsive Mobile Web Development with HTML5, CSS3, JavaScript, and jquery Mobile. Classroom Setup Guide. Web Age Solutions Inc.

International Journal of Advanced Engineering Research and Science (IJAERS) Vol-2, Issue-11, Nov- 2015] ISSN:

How do I Install and Configure MS Remote Desktop for the Haas Terminal Server on my Mac?

Sharepoint. Overview. Key features of SharePoint:

DAZZLE INTEGRATED DATA BACKUP FEATURE.

How To Use The Rss Feeder On Firstclass (First Class) And First Class (Firstclass) For Free

Regression & Load Testing BI EE 11g

account multiple solutions

PaperStream Connect. Setup Guide. Version Copyright Fujitsu

Nintex Workflow 2010 Installation Guide. Installation Guide Nintex USA LLC, All rights reserved. Errors and omissions excepted.

Enter your User Id and Password and click the Log In button to launch the application.

AUTOMATING THE WEB APPLICATIONS USING THE SELENIUM RC

How do I Install and Configure MS Remote Desktop for the Haas Terminal Server on my Mac?

HtmlUnit: An Efficient Approach to Testing Web Applications

Microsoft Expression Web

VERALAB LDAP Configuration Guide

Design and Functional Specification

Here are the steps to configure Outlook Express for use with Salmar's Zimbra server. Select "Tools" and then "Accounts from the pull down menu.

Jaspersoft APIs. Integrating BI with your Applications. Community and Professional Editions

Dreamweaver Tutorial - Dreamweaver Interface

The Social Accelerator Setup Guide

This article Includes:

HowTo. Planning table online

Manual of UPClink VPN.UPC.EDU (For Windows 7)

Integrating LivePerson with Salesforce

CSE 403 Lecture 15. UI Automation / Functional Testing. Reading: How to Break Software, Ch. 2, Whittaker

DigitalPersona Pro. Password Manager. Version 5.x. Application Guide

AdRadionet to IBM Bluemix Connectivity Quickstart User Guide

Your Mission: Use F-Response Cloud Connector to access Google Apps for Business Drive Cloud Storage

MyanPay API Integration with Magento CMS

Building native mobile apps for Digital Factory

Shasta College SharePoint Tutorial. Create an HTML Form

ios App for Mobile Website! Documentation!

How To Register For Bethel Bible Institute Online Coursework

Desktop Configurations For General Ledger and Financial Reports. User Guide

Performance Testing from User Perspective through Front End Software Testing Conference, 2013

Bringing M2M to the web with Paho

Creating an Apple ID Account Using the Internet on a Desktop or Laptop Computer

Bitrix Site Manager ASP.NET. Installation Guide

GUI and Web Programming

Initial Setup of Mozilla Thunderbird with IMAP for OS X Lion

How to install and use the File Sharing Outlook Plugin

Creating Home Directories for Windows and Macintosh Computers

High Level Design Distributed Network Traffic Controller

SMS for Outlook. Installation, Configuration and Usage Guide

Load Testing Ajax Apps using head-less browser tools. NoVaTAIG April 13, 2011 Gopal Addada and Frank Hurley Cigital Inc.

Transcription:

Automated Web Testing Erik Doernenburg ThoughtWorks

Agenda What is Selenium? Writing Maintainable Tests

What is Selenium? Test tool for web applications http://selenium.openqa.org Runs in any mainstream browser Supports tests in many languages Selenese (pure HTML, no backend required) Java, C#, Perl, Python, Ruby Record/playback (Selenium IDE) Open Source with corporate backing

Demo Record a test in Selenium IDE Demo same test written in Java

Java Test Example public void testgoogletestsearch() throws Exception { } selenium.open("http://www.google.com/webhp"); assertequals("google", selenium.gettitle()); selenium.type("q", "Selenium OpenQA"); selenium.click("btng"); selenium.waitforpagetoload("5000"); assertequals("selenium OpenQA - Google Search", selenium.gettitle());

Java SetUp/TearDown example public void setup() throws Exception { selenium = new DefaultSelenium( "localhost", 4444, "*firefox", "http://www.google.com"); selenium.start(); } protected void teardown() throws Exception { selenium.stop(); }

A few Selenese Commands click close createcookie dragdrop fireevent getcursorposition geteval gethtmlsource gettitle getvalue goback istextpresent isvisible keypress mouseover open refresh type

Element Locators ID: id=foo Selenium.click("btnG") Name: name=foo First ID, then name:identifier=foo DOM: document.forms[ myform ].mydropdown XPath: xpath=//table[@id='table1']//tr[4]/td[2] Link Text: link=sometext CSS Selector: css=a[href= #id3 ] Sensible defaults, e.g. xpath if starts with //

How Selenium works

Agenda What is Selenium? Writing Maintainable Tests

Standard End-User Black Box Test 1. Login as administrator 2. Create a user 3. Log out 4. Login as that user 5. Create a folder 6. Create a thingy in that folder 7. Search for that thingy in the search box 8. Make sure your thingy shows up on the search results page

Fragile Automated Tests Exercising irrelevant features Logging in/logging out Creating a folder Creating a thingy If the UI for any one of those features changes, your search test fails

Know when to record tests Recorded tests reuse no code Record & Tweak vs. Fire and Forget Slight change in folder creator page means all of those tests have to be re-recorded from scratch Use the recorder to create reusable code

Unit Testing vs. Integration Testing Selenium tests are integration tests Functional/Acceptance/User/Compatibility Unit tests verify a unit in isolation If FooTest.java fails, the bug must be in Foo.java Cannot fail due to browser incompatibilities Must be completely isolated from each other Integration tests verify that units work together Requires testing multiple configurations (browsers) Tend to build on the side-effects of earlier tests

Presentation Model Create a layer of classes that mimic the UI a field for every text box, etc. a method for every button Test the application flow using this model Can use normal unit test framework Insulated from design changes Use Selenium to check wiring and browser compatibility

Create abstractions Tests can use all language features extract method, inheritance, public void testsearchforthingy() { createtestuserandlogin(); createthingyinfolder("foo", "Test Folder"); searchforthingy("foo"); asserttrue(ispresentinresultlist("foo")); } Re-use makes tests less fragile

Use your code directly Prepare your search tests using model API FolderBean fb = new FolderBean(); fb.setparent(folderbean.root); fb.setname("foo"); fb.createnewfolder(); // adds a folder to the DB selenium.open("/search.faces"); selenium.type("query", "foo"); selenium.click("search"); asserttrue(selenium.istextpresent("foo found"); Writing your tests/webapp in same language

JUnit and TestNG JUnit is opinionated software Dependencies between tests are explicitly prevented Separate tests are testing separate units Everything gets torn down after every test method Constantly starting/stopping browser TestNG has dependsonx

JUnit and TestNG JUnit is opinionated software log("foo"); Dependencies between tests are explicitly } prevented Separate tests are testing separate units Everything gets torn down } after every test method Constantly starting/stopping browser TestNG has dependsonx public void setup() { } log("setup"); public void testfoo() { public void testbar() { log("bar"); public void teardown() { } log("teardown");» setup foo teardown setup bar teardown

Testable HTML Pages help Human-legible (hand-coded) element IDs id=obj3 is going to be fragile XPaths are very fragile JSF: TLD <required>true</required> on ID elements Hidden flags: input fields, object properties waitforcondition is your AJAX testing tool

Remember! Enter the evaluation form and be a part of making Øredev even better. You will automatically be part of the evening lottery