|
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) | ||
Type | Command | Explanation |
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 | ||
Type | Command | Explanation |
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 | ||
Type | Command | Explanation |
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 | ||
Type | Command | Explanation |
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