Your e-Business Quality Partner eValid™ -- The Web Quality Suite
Browser-Based Client-Side Functional Testing and Validation Page Timing/Tuning Transaction Monitoring. WebSite Spidering & Analysis and Realistic Server Loading.

eValid -- DOM Analysis Performance Benchmarks
eValid Home

The eValid DOM Element Manipulation/Motion Commands are the primary method that permits manipulation of playback in a "position independent" manner.

Scripts that involve the use of these commands, particularly the IndexFindElementEx command, often impose a performance penalty on the playback. This page provides some baseline performance data for these commands.

Script Description
The script used for these tests involved these specific commands:

  1. IndexFindElement with arguments that would be found immediately (e.g. innerHTML).
  2. IndexFindElement with arguments that would be NOT be found at all (e.g. XXYYZZ).
  3. IndexFindElementEx with arguments that would be found immediately (e.g. innerHTML).
  4. IndexFindElementEx with arguments that would be NOT be found at all (e.g. XXYYZZ).

Experimental Results

All Times Approximate, in Seconds
Website URL Element Attribute Count Page Size Simple Search
(Quick Search)
Simple Search
NOT Found
(Full Length Search)
RE Search
(Quick Search)
RE Search
NOT Found
(Full Length Search) 321K 862K Bytes 0.2 0.9 0.4 12.1 119K 353K Bytes 0.3 0.4 0.6 18.5 116K 210K Bytes 0.2 0.2 0.3 4.5 17K 25K Bytes 0.05 0.07 0.06 0.4

Benchmark Machine Characteristics
The benchmarks above have all been done on a Windows XP/SP2 environment, running on a PC with a Pentium 4 CPU at 2.8 GHz, and 2.0 GB of RAM.

Implementation Note
The IndexFindElement (simple search) and IndexFindElementEx (Regular Expression [R.E.] search) commands -- as is true of all of eValid's DOM analysis commands -- are implemeted directly in the eValid browser, which itself is built in C++. As a consequence of this architecture the user can choose to run searches on any frame in the page, on the parent browser window, or on any subwindow -- all with equally high efficiency (low overhead).

Perhaps more importantly, the operation of these commands does NOT interfere with normal operation of browser functions, specifically with the JavaScript engine or any AJAX implementation. These searches run in the own separate execution thread and examine the current DOM contents independently of browser activity.

In some cases, if the DOM is being updated (as happens for example in an AJAX example) the search results may be skewed because the scan parameters are taken from the page at the start of the scan. Similar searches that repeatedly wait for a particular DOM element property to take on a particular value as a way to synchronize playback usually are not affected by page changes.