Recording and Replaying Navigations on AJAX Web Sites Alberto Bartoli Eric Medvet Marco Mauri DI3 Università di Trieste, Italy http://bartoli.inginf.units.it
July 2012
The Problem Rich Internet Applications (AJAX)
REPLAY
RECORD
Operator-driven
Sources not available (Third party, Live site)
Hours or Days
Automatic
…why bother ? Very useful for GUI testing Security Functional Regression … Web macros Reverse engineering
…
Key Requirement REPLAY
RECORD >
< User Action , Page Element >
Replayer
Trace
1. Identify Element 2. Execute Action
Identify Element...hhmmm… DOM@Replay may be very different from DOM@Record Dynamic content Element in different position…or no longer exists
Session-based element id Elements without id / with duplicate id
How to identify “the same” element when replaying a recorded trace ? How to make sure “that” element still exists ?
That’s why… Tools for Record & Replay have severe limitations Non AJAX Assume (implicitly) that Replay occurs immediately after the Record Assume (implicitly) that Replay is always possible
Our Contribution Transparent Record With Firefox Automated Replay On the live sites
Works with real sites of practical complexity Methodology Tool
Implementation (in a nutshell) Transparent Record Proxy injects Javascript for intercepting user events and recording them in a trace
Automated Replay Several heuristics for locating elements
It works… Realistic complexity
Google Search, Shopping, Monclick, +1 Twitter login, user search, respond to a tweet Amazon search, share, login and send by email …
Correct replay Even after several days Ability to detect when replay is no longer possible
Thanks for your attention…
http://machinelearning.inginf.units.it/
Heuristics findElementBySrc Retrieves the first element with the same tag name and src attribute value findElementByInput Same type of form input and same value for certain attributes findElementByGrid Same tag name and coordinates in a specified grid
Uniqueness of «id»
Experiments… (just one of many) Repeat every 6 hours Google login Search «SD 8 GB» Click «shopping» link Select first product Click «compare prices» Select Monclick shop Activate «+1» on product details page Deactivate «+1»
Experiments… (just another) Repeat every 6 hours Select «Book» product category on Amazon Search «Landover» Select first result Click «Share» Execute Amazon login Fill «Share» form Click «Send»
Recording and Replaying Navigations on AJAX Web ...
Navigations on AJAX Web Sites. Alberto Bartoli. Eric Medvet ... Web macros. ⡠Reverse engineering. ⡠⦠... Session-based element id. ⡠Elements without id ...
Implementing such replaying functionalities with modern web technologies ... Recording occurs automatically, i.e., the user navigates with a normal browser and.
Implementing such replaying functionalities with modern web technologies such as ..... In: Proceedings of the 20th ACM International Conference on Information.
current web document for the associated target element TE; if found, replays the event using TE as target using WebDriver. If not found, the trace replayer ...
the buttons that compose the graphic interface of the iGoogle web application use the DOM 2 features to handle user events, so the approach taken by [2], [3] cannot register any event associated to those buttons, while the method described in this ar
Tao, and obtain the perks. Page 3 of 8. pdf-1273\web-development-with-javascript-and-ajax-illu ... ated-paperback-by-richard-allen-kai-qian-lixin-tao.pdf.
Jun 8, 2000 - JP. 6-24864. 1/1994 ......... .. C04B/38/06. (73) Ass1gnee: Canon Kabushlkl Kalsha, Tokyo (JP). * Cited by examiner. ( * ) Notice: Subject' to any disclaimer, the term of this. Primary Examiner_JOhn Barlow patent is extended or adJusted
Mar 2, 2007 - that handles calls between the client and server. Typically this would be a library of. Javascript functions included on the page. While this is a ...
Mar 2, 2007 - familiar with Javascript and HTML can explain the ... tice where a PHP file is set as required ... the site employed one Javascript include file for ...
Web 2.0 applications induce larger, heavier, and more bursty traffic on the un- derlying networks. .... lyzer of Bro [10], a network intrusion detection system. ... issued. This results in an output file with one-line summaries of each HTTP request.
modern web browser, such as Internet Explorer, Mozilla Firefox, Opera, or Safari. ⢠Web applications make ... Although the history of the Internet is a bit longer, 1991 is the year when HyperText Transfer. Protocol (HTTP) ... the location bar of Fi
There was a problem previewing this document. Retrying... Download. Connect more apps... Try one of the apps below to open or edit this item. Gehtland ...
Application Software Architect. Educational Technologies ... Harvard Business School ... ajaxrequest = new ActiveXObject("Microsoft. ... small user communities ...
more and more similar to desktop applications in terms of features and qualities. ... Aranea's JavaScript API and synchronization filter service. The contributions are ...... http://msdn2.microsoft.com/en-us/library/ms537505.aspx. (28.05.2007).
been organized into a handful of design patterns that describe best practices for Ajax .... As the Web evolved, businesses soon saw potential in the ability to distribute ...... broadband Internet solutions, many sites have upgraded, including ...
Web Accessibility Architect. IBM Emerging .... Replace data where possible rather than creating and adding new elements to the page. Not all AT can handle ...
There was a problem previewing this document. Retrying... Download. Connect more apps... Try one of the apps below to open or edit this item. web information ...
Jun 18, 2003 - making the components compact. Under the .... herein Will occur to one skilled in the art upon employment of the invention in .... shoWn by the dotted line in FIG. 3C, the pinch ... illustration, and may be decided as required.
Agnostic AJAX: Asynchronous JavaScript and Data ... Need not use XML as data format for AJAX updates .... Calls display function to convert data to HTML table.