|
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 -- Observing Timing and Asynchronous Operations in Web Pages
eValid Home
Introduction
Web pages in general, and AJAX pages in particular, have some very
unusual timing aspects.
What you see on the browser face may -- or may NOT -- reflect what
is going on behind the scenes.
It is easy to become confused about what happens when, and
the asynchronous behavior of web pages often leads to confusion
and frustration.
What's needed is a simple way to see what is going on "behind the scenes"
in a web page as you browse it.
eValid offers a "trick" to allow you to observe what is happening
while you browse a page.
Web Page Behavior Observation
Here is how this is set up.
- Load the following script into the Script Window (Ctrl-Alt-S):
ProjectID "Support"
GroupID "Diagnostics"
TestID "Observing"
DeleteCache
DeleteCookies
# Start the playback "nowhere in particular"...
InitLink "about:blank"
# Tell eValid to wait around and do nothing for some period
# of time (here, several multiples of 5 minutes)...
Delay 300000
Delay 300000
Delay 300000
Delay 300000
# The EventLog will report everything you do on the browser
# which causes an interaction with the outside world...
|
- Detailed Timings ON
Make sure that the Detail Level in the Log Output is "Detailed"
in the Project/Log
Output Settings page.
- Open EventLog
Make sure the eValid EventLog (Ctrl-Alt-E) is active.
Be sure to position the EventLog so that you can see what
is going on when you take actions with the browser (see below).
- Start Playback
Use the playback with the Pause|Resume button, or
use eValid: Playback > Start Playback, or press F6.
You will see eValid launch an empty page (http://about:blank),
and then execute the Delay command.
eValid will delay playback (independent of any Wait time
multipliers or other modifiers).
- Navigate To Your Starting Page
Navigate to the starting page by typing in the URL
you wish (e.g. www.cnn.com), the press Enter.
As eValid loads up the page you will see the actual sequence
of pages and page components as they are loaded into the
browser and/or into the Cache.
- Some Things To Look For
For typical commercial websites, you will note one or more of the
following:
- The page will appear ready but parts are still downloading.
- You may see URLs referenced that are not part of the base URL
you're downloading, e.g. references to ad pages.
- You'll see JavaScript files added in response to actions you take.
- You'll learn that "Done" on the screen does not mean "finished
downloading" [a common misconception].
- You will, after observing this for a while, have a deeper
appreciation of the complexity of modern web pages and a better knowledge
of how important playback synchronization is.
- If the page you navigate to is already in the cache you'll observe
that eValid does not re-download it, except if you have the Never Use
Cache option selected.
- It may be interesting to use the
PageMap feature to study a dynamic page as it is
completes the download process.
You may even be able to see changes in the DOM as various
AJAX components update the page asynchronously.
- If you take an action and nothing appears to happen in the
EventLog, then you know that the action has not resulted in any
input/output communication to the server.
That is, such action
is localized to the browser and is being performed with JavaScript
(JScript) or VBScript (or ECMAscript).
Technical Explanation
The eValid browser is always active, even during playback.
When the Delay command is executed, eValid is still active
but is in a holding pattern (waiting for the specified time to elapse).
Actions you take during this time are recorded in the event log
(but your actions are not recorded in the script file because
eValid is in playback mode executing a Delay).
The EventLog accumulates and reports what the browser has done in support of
playback, and in this case YOU are the playback engine because YOU are
the one sending events into the browser rather than the regular
eValid playback engine!