Your e-Business Partner eValid™ -- The WebSite Quality Authority
Browser-Based, Client-Side, WebSite Mapping & Analysis, Functional Testing and Validation, Server Loading, Page Timing/Tuning, and Quality Monitoring.
© Copyright 2000-2011 by Software Research, Inc.

eValid -- Abstract Model of eValid: Script Language View
eValid Home

Introduction
eValid is an abstraction of a web browser of a rather unusual kind: it is a fully "test enabled browser." Here we describe what a "test enabled browser" means from the point of view of eValid's script language interface.

The eValid scripting facility should not be viewed as a programming language but instead as a command language for a generalized automated browser. In this view, the eValid product is one realization (based in the IE/Trident Engine) of the command langauge. The command langauge would be the same for any other type of browser because the abstract commands described represent acctions that user's (simulated users, at test playback time) actually take with any actual browser.

There are several hundred commands in the eValid language definition. This table shows some of the key categories of commands and relates how they work in a test playback as the commands drive an automated browser, of which eValid is an instantiation.

Action On Whole Pages (URLs)
TypeCommandExplanation
Navigation InitLink
GotoLink
FollowLink
GoForwardTo
GoBackTo
etc.
These commands tell eValid to change URLs and when doing so, bring down the entire page associated with the URL.

This process includes correctly processing HTTP/S primary and secondary requests and not continuing forward in the playback until all of the internal synchronization checks have been completed.

Input Into Pages InputValue
SubmitClick
InputImageClick
ElementClick
KeyText
etc.
These commands tell eValid to feed keyboard data and/or mouse clicks to fields in a page.

Note that there are several other different types of InputValue command handled, to account for all of the types of possible web page input data construction options.

Browser State
Controlling Playback
Wait
Delay
Breakpoint
Pause
Minimize
Maximize
Restore
DeleteCache
DeleteCookies
DeleteSession
etc.
Separate from the automated processing going on during browser operation, these commands reproduce browser state changes in a systematic way.

The cache, cookie, and session manipulations help establish or restore known initial or intra-test states.

Explicit
Synchronization
SyncOnElementProperty
SyncOnText
SyncOnScreenRect
SyncOnURL
Lock/Unlock
etc.
Explicit synchronization commands hold back playback until some internal state has been satisfied, or until some specified screen property (e.g. a checksum in a screen area) has been obtained.

These capabilities are critical to AJAX application testing because without them the asynchronous aspect of AJAX almost certainly causes test playback to de-synchronize.

Specifying The Target of Action
TypeCommandExplanation
Window Basics Window number (wid)
Element index (idx)
FramePath (frame_path)
etc.
Every command that needs it specifies the window identifier (wid) to indicate if the action is to be applied to the parent, or one (of many) child windows.

When an action has to apply to a particular spot on the page the command includes the at-record-time element index (idx). At playback time, however, Adaptive Playback internally modifies the target index automatically to compensate for page changes within a reasonable range.

Page Internals DOM attribute names
text fragments
tag names
regular expressions
etc.
These components of a command give eValid the essential information needed to complete an action.

In many commands this information is correlated internally with the current page's DOM for purposes of playback synchronization.

Identifying A Location On Page And Acting On It
TypeCommandExplanation
Finding An Element IndexFindElement
IndexFindElementEx
IndexSet
IndexMove
etc.
Using information provided by the user, these commands identify the place on a page that matches the request [if any can be found]. When found the value is stored as the local sourceIndex.
Acting On An Element IndexFollowLink
IndexElementClick
IndexElementEvent
ValueSet
ValueGet
ValuePut
etc.
These commands apply standard actions on the element at sourceIndex to produce the desired effect.

These actions are the same kinds of actions that a user performs. In the case of the IndexElementEvent command, however, it is possible to specify ANY kind of browser event (these events are browser-internal signals).

Measurement & Validation Actions
TypeCommandExplanation
Performance Timing ResetTimer
ElapsedTime
etc.
Measures time (time interval) during playback.
Validation ValidateSelectedText
ValidateSelectedImage
ValidateClipboardText
ValidateSelectedObjProperty
etc.
Confirms that ("validates the value of") required data is present on the page at the specified location.
Save Data For Analysis SaveRecord
SaveSelectedText
SaveWindow
SaveSelectedObjProperties
etc.
For the particular identified element or object in a page, these commands save the value of that element or object in a local file for later analysis.

References

  1. The complete definitions of over 200 different eValid commands is given in the Script Language definition.

  2. The format and structure of individual eValid commands are based on a set of Script Language Principles.

  3. The eValid command language is available via the eValid Programmatic Interface (EPI) -- Introduction.