Showing posts with label DOM. Show all posts
Showing posts with label DOM. Show all posts

Monday, October 16, 2023

Selected Recent Forum Posts

Here are some recent selected forum posts from our eValid forum:

Understanding how eValid runs from the DOM better -- More details about exploiting the DOM interface.

Is eValid able to help me benchmark my server performance? -- Hints about establishing a benchmark for performance

Friday, September 15, 2023

Origins of eValid Explained

 An eValid forum post recently asked this question: "You say eValid runs "from the DOM" but I'm no sure what that means, exactly. 

Can you explain?"

It is a good question, and the response was this:

eValid obtains most of effects by manipulating the Document Object Model (DOM) that is maintained inside the browser.

The DOM is an internal structure that the user ordinarily does not see. It in a kind of "private loop" to create and maintain what you see on the browser face.

Entries in the DOM are called "DOM Elements" and they are numbered 0, 1, 2... in a thread that is updated with each change in the state of the browser, or "triggers," that are initiated by the user or by some external event.

eValid provides a way of looking into the tree using the PageMap feature, described in part with this page: DOM Support Architecture.

eValid was the pioneer in this approach, fielding a product using that technology as early as late 1999, based on internal prototype systems developed from beginning in 1997.

Manipulating the DOM for purposes of testing a web application was very effective, and eValid's lead was followed -- over the years -- by WATIR, Selenium, and finally WebDriver, which is now standard in all of the major commercial browser systems.

That is all well and good, but you may ask how did that approach actually come about? Below is a "short" explanation of the history involved.

The main idea of eValid was to re-purpose the DOM, a key element of the browser, to provide a capability for testing and quality assurance of web applications. We got his idea based on these factors, in the late 1990's:
  • Need based on extant development of CAPBAK/DOS, CAPBAK/Unix, and CAPBAK/X to apply o web applications.
  • Frustration that every existing approach was fraught with failure.
  • Impossibility of doing the job with conventional methods (including SR's own tools).

The team then knew that thinking "outside of the box" was going to be required. Previously every product approach that tried to automate web testing failed for one reason or another.

The MS-DOS solution for CAPBAK/MS-DOS, based on intercepting the Windows screen-event loop, was clumsy and complex and not terribly predictable.

The solution used in SR's CAPBAK/X product for XWindows based UNIX environments, was based on intercepting the traffic in the X-Windows protocol -- i.e. the communication between the client and the server. It worked very well, but the future of the XWindows system was in doubt, particularly after the introduction of the IE 4 browser in 1997.

We remember a Microsoft employee who at a trade show in 2000, upon having just seen a demonstration of eValid, asked: "have you guys really build a complete browser?" No, the answer was that What we did was to simply overloaded the IHTML object in the Microsoft library..."oh, sure, of course, he said..." Easy enough, once done.

What has happened after 1999/2000 in rough temporal sequence was:

  • WATIR a Ruby-based solution that drove tests by compiling a wrapper that drove the IE browser through the COM interface. This works OK, but can't support more than a single instance of test playback -- there is only one COM/desktop interface per PC.

  • Selenium, conceived by Jason Huggins in 2004, used the OLE interface in Windows to drive web tests.

  • eValid's first patent was filed in preliminary form on 31 October 2000, in final form on 31 October 2001, and issued 12 June 2007 as US Patent 7,231,606. This was the first of what was ultimately to be a Portfolio of 10 US Patents covering many parts of the underlying eValid technology.

  • WebDriver was an extension of Selenium done by Huggins and Simon Stewart, that solved a lot of problems that the classic Selenium had. It was introduced by Stewart at the Google Test Automation Conference (GCAC), 23 August 2007. Webdriver incorporated the same DOM-based test playback method that eValid introduced in late 1999.

With Google leading by incorporating WebDriver in versions of Chrome, the other browser suppliers (e.g. Microsoft, Firefox, etc.) soon all followed suit and incorporated the WebDriver idea as an option. After a decade of use, the Webdriver additions to browsers dominate.

Monday, August 14, 2023

Selected Recent Forum Posts

Here are some recent selected forum posts from our eValid forum:

Can eValid make sure my click goes to the right place? -- The "right place" may need some script fiddling.

What is the page count for the eValid documentation -- Actually it is about 2000 pages, counting everything.

Friday, March 10, 2023

Selected Recent Forum Posts

Here are some recent selected forum posts from our eValid forum:

How the Multiple Value Substitution during LoadTest works. -- Pointers on how to get the best results from LoadTesting projects.

Can eValid detect if an element exists on a webpage -- No reason to continue a test if a key element isn't there!

Wednesday, December 28, 2022

Selected Recent Forum Posts

Here are some recent selected forum posts from our eValid forum:

How to use the eValid Load Testing feature -- Step by step instructions make the job easier.

Help with synchronizing playbacks of AJAX based webpages -- More details on how to assure reliability AJAX application testing

Wednesday, July 20, 2022

Selected Recent Forum Posts

Here are some recent selected forum posts from our eValid forum:

How do I extract text from an element? -- Text associated with DOM elements is easy to extract, and very good for validation steps.

Looking at error codes on the command line with PERL? -- If you're running PERL here is how to connect back to the PERL-issued error codes.

Tuesday, June 28, 2022

Selected Recent Forum Posts

Here are some recent selected forum posts from our eValid forum:

String iframes alongside with the eValid page object model -- iFrames are important to handle correction!

Understanding the Variable Fidelity Playback in eValid -- This is important when designing load tests.

Friday, June 17, 2022

Selected Recent Forum Posts

Here are some recent selected forum posts from our eValid forum:

Monitoring Response time in my website page -- Note that you can do this entirely within the page's DOM.

Validating some text to confirm I am in the correct place -- This technique helps you perfect DOM-dependent playbacks

Tuesday, May 31, 2022

Selected Recent Forum Posts

Here are some recent selected forum posts from our eValid forum:

The Cumulative Summary Report Explained -- A valuable report for web application validation.

Does eValid do a DOM search for regular expressions (REs? -- You can put RE's into regular commands.

Friday, May 13, 2022

Selected Recent Forum Posts

Here are some recent selected forum posts from our eValid forum:

Help with an input field for XPath -- The key is to use the PageMap feature for find the right sourceIndex value.

The meaning on the eValid return codes during batch mode -- All the facts about the system interface!

Wednesday, December 22, 2021

Selected Recent Forum Posts

Here are some recent selected forum posts from our eValid forum:

Understanding the eValid EPI vs How eValid runs normally -- Technical details about the eValid Programmatic Interface (EPI)

Help with navigating a dropdown within a page -- Fine tuning a user interaction.

Monday, July 26, 2021

Selected Recent Forum Posts

Here are some recent selected forum posts from our eValid forum:

Does eValid respect the Same Origin Policy? -- An old but critically important security issue.

Inserting a new recording into existing scripts -- Scripts can "call" other scripts!

Thursday, July 8, 2021

Selected Recent Forum Posts

Here are some recent selected forum posts from our eValid forum:

Using eValid to look for regular expressions -- The syntax may be tricky, but the powerful results are worth it.

Remembering individual user settings in eValid -- Every user can have their own profile to match individual needs.

Monday, June 21, 2021

Selected Recent Forum Posts

Here are some recent selected forum posts from our eValid forum:

General questions about the eValid PageMap feature -- Looking inside the DOM for important testing clues.

Some details on eValid logfiles -- How eValid sends results to the "outside world" i.e. to Windows.

Wednesday, May 19, 2021

Selected Recent Forum Posts

Here are some recent selected forum posts from our eValid forum:

Extracting strings from the DOM with eValid -- Yanking strings from the front (visible part) of a page.

Does eValid have a step function for use in load generation -- The step function can generated very high instantaneous loading.

Wednesday, March 17, 2021

Selected Recent Forum Posts

Here are some recent selected forum posts from our eValid forum:

Common questions when getting a loadtest to run properly -- Key roadblocks and how to overcome them.

eValid modes during DOM Synchronizations -- Some test scripts for complex websites or web pages can be very complex!

Tuesday, January 19, 2021

Selected Recent Forum Posts

Here are some recent selected forum posts from our eValid forum:

All the command line switches that deal with batch scripts -- The full story on running eValid scripts from the command line.

Can eValid sync on a screen image -- This method uses "Desktop Mode" to synchronize playback.

Extracting the DOM from a webpage -- Access to the DOM gives you a great deal of scripting power.

Wednesday, November 25, 2020

Selected Recent Forum Posts

 
 Here are some recent selected forum posts from our eValid forum:

Can eValid alter the DOM during a stale state? -- And, digging even deeper into the DOM!

I'll like to check all the links in a single webpage -- The Link Check Wizard does exactly that!

Saving the final screen in every test I finish -- eValid has many ways to document the key results screens.

Tuesday, October 27, 2020

Selected Recent Forum Posts

 Here are some recent selected forum posts from our eValid forum:

More details on the eValid User Agent String -- Imitating any kind of browser to evoke different server responses is easy.

Understanding eVaild error codes during a monitoring test -- Not every test always runs error free, and it's important to know what's what.

Question about property names in web pages -- This is digging deep into the DOM...for crucial details.


Thursday, September 24, 2020

Selected Recent Forum Posts

 Here are some recent selected forum posts from our eValid forum:

Posting an you import data into an eValid script -- Lots of ways to do this!

Can eValid censor any passwords in a recorded script? -- Protecting privacy really IS important!

How to validate a video with eValid -- Possible, but needs attention in scripting