|
eValid -- Automated Web Quality Solution
Browser-Based, Client-Side, Functional Testing & Validation,
Load & Performance Tuning, Page Timing, Website Analysis,
and Rich Internet Application Monitoring.
|
|
eValid -- AJAX Recording Protocol
eValid Home
Introduction
The recording protocol below can be used to achieve a reliable
playback for most AJAX applications.
The protocol involves a set of specific steps that support the
recording sequence:
→ Wait → Synchronize → Act →
When recorded this way "from life" the resulting script will include
necessary synchronization
steps
that maximize the self-synchronization characteristics of the script at test playback time.
Protocol Guidelines
Here are the main steps of the AJAX Recording Protocol.
-
Out of Box Recording
In most cases recording out of the box using standard defaults produces
a test script that works without difficulty with a current
instance of the application.
We have seen that the "current instance" of some heavy-JavaScript applications
can change with time,
with bebaviors that are identical to a prior version,
but with internal changes that cause a variety
of test playback problems.
In other words, while nothing in the application appears to have
regressed, sufficiently many changes occur so that even eValid's
Adaptive Playback feature can't overcome them.
-
Need for Synchronization
When possible, the basic
AJAX Recording Procotol
should be used to create a reliable script:
- Take an action according to your test plan;
- Wait until the application's response has settled;
- Highlight some text and record a SyncOnText command (Ctrl+Y);
- Go to Step 1 for the next action.
This protocol usually results in a playback that is self-synchronized
-- every page fully rendered and every action taken correctly --
from the outset.
-
Detailed Timing Option Interacts Badly
Because typical complex AJAX application run with the HTTPS
protocol, you should NOT use the eValid
Detailed Timing output option,
which does not work reliably with secure protocols.
-
Most Common Regressions
The most common regression we experience is that FollowLink
commands change outside Adaptive Playback's ability to compensate.
The most-reliable fix is to convert FollowLink's
to structural passages.
-
Adjust NAV Tags
"From Life" recordings often have problems with NAV tags.
Depending on how the UI control is handled by the underlying JavaScript
eValid may record an unnecessary NAV tag, or it mail fail to record
a required NO_NAV tag.
The only way to be sure of this is to run the script and note any stalls.
For reference see the
eValid
NAV and NO_NAV Explanation
-
Including JavaScript Settling Time
You may need to add constant Delay commands to make sure
that JavaScript initialization and/or update is complete.
This applies to recorded mouse hover and mouseover events,
for which the browser may need extra time to stabilize before accepting a
user input event.
-
Disable ElementFocus Commands
If the contents of a recorded element focus change in the
application, playback will cause Adaptive Playback to search
the entire JavaScript file, which will take so long and consume
so much resources that you will get to a "non-responding" state.
In practice, it is usally safe in terms of script reliability
to disable such passages.