Ringer: Web Automation by Demonstration

Slides:



Advertisements
Similar presentations
17 HTML, Scripting, and Interactivity Section 17.1 Add an audio file using HTML Create a form using HTML Add text boxes using HTML Add radio buttons and.
Advertisements

WEB DESIGN TABLES, PAGE LAYOUT AND FORMS. Page Layout Page Layout is an important part of web design Why do you think your page layout is important?
JavaScript is a client-side scripting language. Programs run in the web browser on the client's computer. (PHP, in contrast, is a server-side scripting.
Session Variables Storing Session Variables on the Server.
CS7026 jQuery Events. What are Events?  jQuery is tailor-made to respond to events in an HTML page.  Events are actions that can be detected by your.
HTML 5 and CSS 3, Illustrated Complete Unit L: Programming Web Pages with JavaScript.
AJAX Presented by: Dickson Fu Dimas Ariawan Niels Andreassen Ryan Dial Jordan Nielson CMPUT 410 University of Alberta 2006.
Web Page Behavior IS 373—Web Standards Todd Will.
Does Ajax suck? CS575 Spring 2007 Chanwit Suebsureekul.
Leveraging User Interactions for In-Depth Testing of Web Applications Sean McAllister, Engin Kirda, and Christopher Kruegel RAID ’08 1 Seoyeon Kang November.
Evalid Benchmark Testing and Java Applets.. Introduction to Benchmark Testing The Benchmark Test measures the amount of time a sequence of browser actions.
Chapter 11 Adding Media and Interactivity. Flash is a software program that allows you to create low-bandwidth, high-quality animations and interactive.
INTRODUCTION TO DHTML. TOPICS TO BE DISCUSSED……….  Introduction Introduction  UsesUses  ComponentsComponents  Difference between HTML and DHTMLDifference.
JS: DOM Form Form Object Form Object –The Form object represents an HTML form. –For each instance of a tag in an HTML document, a Form object is created.
© 2011 Delmar, Cengage Learning Chapter 9 Collecting Data with Forms.
Event-driven Programming
Warren He, Devdatta Akhawe, and Prateek MittalUniversity of California Berkeley This subset of the web application generates new requests to the server.
10 Adding Interactivity to a Web Site Section 10.1 Define scripting Summarize interactivity design guidelines Identify scripting languages Compare common.
Section 17.1 Add an audio file using HTML Create a form using HTML Add text boxes using HTML Add radio buttons and check boxes using HTML Add a pull-down.
Lecture # 6 Forms, Widgets and Event Handling. Today Questions: From notes/reading/life? Share Personal Web Page (if not too personal) 1.Introduce: How.
©2010 John Wiley and Sons Chapter 12 Research Methods in Human-Computer Interaction Chapter 12- Automated Data Collection.
Chapter 8 Collecting Data with Forms. Chapter 8 Lessons Introduction 1.Plan and create a form 2.Edit and format a form 3.Work with form objects 4.Test.
CHAPTER TWO Creating Simple Visual Basic.NET Windows Applications.
CHAPTER TWO INTRODUCTION TO VISUAL BASIC © Prepared By: Razif Razali 1.
JavaScript, jQuery, and Mashups Incorporating JavaScript, jQuery, and other Mashups into existing pages.
Week 12 Working with Forms Objectives Understand how forms work Understand form syntax Create input objects Build forms within tables Build and.
AJAX Compiled from “AJAX Programming” [Sang Shin] (Asynchronous JavaScript and XML)
Paging Through a Data Table Creating a Navigation Bar Using the Recordset Navigation Bar Server Behavior.
What is WinRunner ► WinRunner is Mercury’s legacy automated testing tool ► It is similar to QTP in functionality ► WinRunner integrates with other Mercury.
Web Development Process The Site Development Process Site Construction is one of the last steps.
The Module Road Map Assignment 1 Road Map We will look at… Internet / World Wide Web Aspects of their operation The role of clients and servers ASPX.
RIA and Web2.0 Development with no Coding Juan Camilo Ruiz Senior Product Manager Development Tools.
How to Use Google Charts. Using Google Charts Google Charts is used to provide a way to visualize data on your website. You can choose to use simple line.
Event Handling & AJAX IT210 Web Systems. Question How do we enable users to dynamically interact with a website? Answer: Use mouse and keyboard to trigger.
JavaScript 101 Introduction to Programming. Topics What is programming? The common elements found in most programming languages Introduction to JavaScript.
Introduction to ASP.NET development. Background ASP released in 1996 ASP supported for a minimum 10 years from Windows 8 release ASP.Net 1.0 released.
1 Using jQuery JavaScript & jQuery the missing manual (Second Edition)
JavaScript Invented 1995 Steve, Tony & Sharon. A Scripting Language (A scripting language is a lightweight programming language that supports the writing.
Boxes. boxes- learning targets o I will be able to display buttons (boxes) o I will be able to organize boxes o I will be able to create an animation.
Programming Logic and Design Seventh Edition Chapter 12 Event-Driven GUI Programming, Multithreading, and Animation.
JQuery.
Section 10.1 Define scripting
JavaScript and Ajax (Ajax Tutorial)
Unit M Programming Web Pages with
Working in the Forms Developer Environment
Introduction to Event-Driven Programming
Data Virtualization Tutorial… CORS and CIS
Section 17.1 Section 17.2 Add an audio file using HTML
JavaScript Functions.
Application with Cross-Platform GUI
Designing Information Systems Notes
AJAX.
Getting Started with Dreamweaver
Understand Windows Forms Applications and Console-based Applications
Chapter 2 Visual Basic Interface
Chapter 12: Automated data collection methods
AJAX Robin Burke ECT 360.
Event Driven Programming
Objective Understand web-based digital media production methods, software, and hardware. Course Weight : 10%
JavaScript & jQuery AJAX.
Web Design and Development
Introduction to AppInventor
Website Testing Checklist
JavaScript and Events CS Programming Languages for Web Applications
Recitation on AdFisher
Introduction to Programming and JavaScript
DR. JOHN ABRAHAM PROFESSOR UTPA
Chengyu Sun California State University, Los Angeles
CHAPTER 6 EVENTS. CHAPTER 6 EVENTS WHAT IS AN EVENT?
JavaScript and Events CS Programming Languages for Web Applications
Presentation transcript:

Ringer: Web Automation by Demonstration Shaon Barman, Sarah Chasins, Ras Bodik, Sumit Gulwani

Web Automation The functionality of a website may not meet the needs of its users Automation helps users complete many tedious interactions, such as scraping data, completing forms or transferring data between websites. Web automation scripts are typically written by programmer

Record and Replay Interact with page User Browser DOM Event HTTP Request Recordings

Challenges

Interactivity Website use AJAX and custom JavaScript handlers to respond to user actions Some updates may be delayed by the network or server, the replayer may need to wait before replaying a user action

a) Page of black camera

a) Page of black camera Sequence of events Server JavaScript DOM User a Hover JS handler Picture update b a) Page of black camera Sequence of events

b) Hover on silver button

b) Hover on silver button Server JavaScript DOM User a Hover JS handler Picture update b JS handler Click Request c b) Hover on silver button Sequence of events

c) After click (grayed page).

c) After click (grayed page). Server JavaScript DOM User a Hover JS handler Picture update b JS handler Click Request c Response Price update d c) After click (grayed page). Sequence of events

d) Page of silver camera.

d) Page of silver camera. Server JavaScript DOM User a Hover JS handler Picture update b JS handler Click Request c Response Price update d Scrape price d) Page of silver camera. Sequence of events

Page structure Websites often roll out new layouts making it difficult to identify the page’s elements across accesses. Even small changes on the page can lead the replayer to click a different button or type into a different text box than the one the user intended.

a new "Recent Searches" pull-down menu appears after the first search

Ringer’s Approach Action: What does the user or program do? Wait until trigger: then dispatch action on element Action: What does the user or program do? Element: On what GUI Component does the agent do an action? Trigger: When does the agent do an action?

Action: What instruction do they use? Past approach: type “sony” Ringer’s approach: Keydown s Keypress s TextInput s Input s Keydown o Keypress o ….

Element: Which node should we choose? Past approach: Text surrounding the element XPath: Path from root element to the element iteself Ringer’s approach:

Trigger: how to handle asynchrony? Human use visual cues as trigger To replay correctly, replayed must identify trigger too. Trigger synthesis: Triggers are server responses. hostname == ‘amazon.com' && path ==‘ajaxv2’ && params.id == ‘bar’

Record Phase Listen to DOM events Store feature of elements create a simple trace User Browser Page level Javascript

Running Example User Browser Page level Javascript Click mousedown mouse up click

Running Example Recorded script is sample User Recorded script is sample Knows what action to perform but not when to perform them Browser Page level Javascript

Trigger Inference Run simple script multiple times identify HTTP responses across executions infer causeality between responses and actions

Evaluation End to end vs. CoScripter Longitudinal study of Ringer scripts

Experimental setup Choose 34 Websites pick interaction that was a core site task To automate experiment, give a correctness criterion Example: www.southwest.com Interaction: Purchase ticket from SFO to HOU Check: Scrape text “San Francisco, CA to Houston, TX”

Comparison vs. CoScripter Ringer Replayed 25/34 Failure 5 complete/ 4 partial Failure reason: not identify node website use flash CoScripter Replayed 6/34 node identification: 8 interaction UI component:21

Longitudinal study of Ringer scripts Ran each benchmark 9 times over 24 days Results 24 benchmarks succeeded on the first run 15 benchmarks succeeded every time 6 experienced exactly one failure during 3 weeks 3 experienced multiple failure

Limitation Recording high frequency events can make pages slow to respond. The Ringer approach was designed for interactions that satisfy some trigger assumptions. Ringer fails when these do not hold. Example: games, Google Map

Thanks