IP Library Granted Patent US 8,407,337
Granted Patent B2
US 8,407,337 · App. 12/502,502 · Granted Mar 26, 2013

Multiple instance commercial browser website test agent

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,407,337
App. No.
12/502,502
Granted
Mar 26, 2013
Kind
B2
Abstract

A website test environment invokes multiple instances of a commercial browser, and captures invocations of browser operations for gathering performance data without interference from other instances or multiple occurrences of the operating system (OS). Commercial browsers often employ constraints that assume only a single instantiation is executing on a particular machine. Configurations allow each instance to present as a separate user, thus avoiding conflicts that may arise from temporary files and network connections, for example. Each browser instance operates as a performance agent and dynamically links with a set of entry points for accessing performance related browser operations. As each agent invokes native (OS specific) machine functions for network access via particular entry points, configurations disclosed herein redirect the entry points to a collection layer of instructions (code) for capturing performance data in addition to invoking the native OS function called for by the browser operation.

Claims (55)

1. A computer-implemented method for gathering website performance data using a browser performance agent for performing website transactions comprising:

loading a performance agent on a server computer, the performance agent for identifying and recording occurrences of browser events pertaining to website performance;

redirecting, in the loaded performance agent, invocations of browser operations pertinent to website performance, the redirected invocations for recording the invoked browser operations;

performing, via the performance agent, the redirected browser operations for targeting a website under test, the browser operations resulting in the browser events pertaining to website performance;

recording the browser events pertaining to website performance on the server computer, the browser operations provided by a single instantiation of a native operating system providing the invoked browser operations; and

returning execution control to the performance agent following the redirected operation invocation and recordation of the browser events, execution returning to a point at which an unredirected operation invocation would have resumed.

2. The method of claim 1 further comprising loading a plurality of performance agents, each performance agent independently invoking the browser operations as a separate user such that invoking one of the browser operations by one of the plurality of performance agents does not interfere with the others of the plurality of performance agents.

3. The method of claim 2 wherein the browser operations include defining user settings, further comprising redirecting those of the browser operations affecting the defined user settings for each performance agent independent of the user settings for the other performance agents.

4. The method of claim 3 wherein the browser operations are defined in a script file, the performance agent responsive to the script file for receiving the browser operations to invoke.

5. The method of claim 1 wherein loading further includes:

identifying, in the performance agent, invocations to the browser operations, the browser operations being native services of the server computer, the native services provided by the native operating system such that each of the browser operations is part of the native services; and

identifying transfer points for deferring browser control to the browser operations in the native services.

6. The method of claim 5 wherein the native services are provided by a library of dynamic linked library (DLL) routines and the transfer points are entry points, each browser operation having an entry point, the native services being network services indicative of timing of network events, the network events for deriving performance data.

7. The method of claim 5 wherein redirecting further comprises:

copying, from the identified transfer point, instructions for invoking one of the browser operations in the native services;

inserting, at the identified transfer point, instructions to invoke a monitoring function in lieu of the instructions for invoking one of the browser operations in the native services; and

defining a monitoring sequence, the monitoring sequence including the copied instructions for invoking one of the browser operations in the native services and at least one call for recording a browser event.

8. The method of claim 7 further comprising defining a plurality of monitoring sequences in a collection layer, the collection layer for seamless interception of performance related browser operations, each of the monitoring sequences defined by a collection segment of code for encapsulating invocations of the browser operations resulting in browser events, the encapsulating for recording the timing of the invoked operations.

9. The method of claim 1 wherein loading the performance agent further comprises:

reading user specific settings for each performance agent instance of the plurality of performance agents;

launching the performance agent with a DLL specific to the performance agent such that other performance agents also have a specific, noninterfering, DLL; and

inserting a user agent string specific to the performance agent to present browser identity to the website under test.

10. The method of claim 9 wherein recording further comprises identifying a sequence of transactions, each of the transactions including at least one browser operation directed to a specific user oriented function of the website under test, the transaction defined by a set of operations delimited by other than a fetch of a new web page.

11. The method of claim 2 further comprising receiving a set of browser operations for which to perform redirection, each of the browser operations being in a library of network services.

12. The method of claim 11 wherein the network services are provided by an OS library shared by other processes.

13. The method of claim 2 wherein loading the performance agent further comprises downloading the performance agent onto a user operated machine with the redirected invocations of browser operations, the downloaded performance agent receiving interactive user commands for directing invocations of browser operations.

14. A server computer for gathering website performance data using multiple instances of browser performance agents for performing website transactions comprising:

a plurality of performance agents responsive to a loader for loading on the server computer, each performance agent for identifying and recording occurrences of browser events pertaining to website performance;

the loader for redirecting, in at least one of the loaded performance agents, invocations of browser operations pertinent to website performance, the redirected invocations for recording the invoked browser operations;

a collection layer for executing the redirected browser operations for targeting a website under test, the browser operations resulting in the browser events pertaining to the website performance;

a log repository for recording the browser events for at least one performance agent on the server computer, the browser operations provided by a single instantiation of a native operating system providing the invoked browser operations; and

a collection segment for returning, for each redirected invocation, execution control to the performance agent following the redirected operation invocation and recordation of the browser event, execution returning to a point at which an unredirected operation invocation would have resumed.

15. The server computer of claim 14 wherein the loader loads the plurality of performance agents, each performance agent independently invoking the browser operations as a separate user such that invoking one of the browser operations by one of the plurality of browser agents does not interfere with the others of the plurality of performance agents.

16. The server computer of claim 14 wherein the loader is further operable to:

identify, in the performance agent, invocations to the browser operations, the browser operations being native services of the server computer, the native services provided by the operating system such that each of the browser operations is part of the native services; and

identify transfer points for deferring browser control to the native services, the transfer points being entry points, the native services provided by a library of dynamic linked list (DLL) routines, the native services being network services indicative of timing of network events, the network events for deriving performance data.

17. The server computer of claim 14 wherein the loader is further operable to:

copy, from the identified transfer point, instructions for invoking one of the browser operations in the native services;

insert, at the identified transfer point, instructions to invoke a monitoring function in lieu of the instructions for invoking the operation in the native services; and

define a monitoring sequence, the monitoring sequence including the copied instructions for invoking one of the browser operations in the native services and at least one call for recording a browser event.

18. The server computer of claim 17 wherein the server computer is further operable to define a plurality of monitoring sequences in the collection layer, the collection layer for seamless interception of performance related browser calls, each of the monitoring sequences defined by a collection segment of code for encapsulating invocations of browser operations resulting in browser events, the encapsulating for recording the timing of the invoked browser operations.

19. The server computer of claim 16 wherein loading the performance agent further comprises:

reading user specific settings for each performance agent instance of the plurality of performance agents;

launching the performance agent with a DLL specific to the performance agent such that other performance agents also have a specific, noninterfering, DLL; and

inserting a user agent string specific to the performance agent to present browser identity to the websites under test.

20. A computer program on a computer readable storage medium encoded as a set of processor based instructions that, upon execution by a processor, cause the computer to perform a method for gathering website performance data using a browser performance agent for performing website transactions comprising:

a processor responsive to the encoded set of instructions, the instructions for:

loading a performance agent on a server, the performance agent for identifying and recording occurrences of browser events pertaining to website performance;

redirecting, in the loaded performance agent, invocations of browser operations pertinent to the website performance, the redirected invocations for recording the invoked browser operations, redirecting further including:

copying, from an identified transfer point, instructions for invoking the browser operations;

inserting, at the identified transfer point, instructions to invoke a monitoring function in lieu of the instructions for invoking the browser operations; and

defining a monitoring sequence, the monitoring sequence including the copied instructions and at least one call for recording a browser event;

performing, via the performance agent, the redirected browser operations for targeting a website under test, the browser operations resulting in the browser events pertaining to the website performance;

recording the browser events for at least one performance agent on the server computer, the browser operations provided by a single instantiation of a native operating system, the browser operations provided by a library of dynamic linked library (DLL) routines, each browser operation having an entry point and using native services, the native services including network services indicative of timing of network events, the network events for deriving performance data; and

returning execution control to the performance agent following the redirected operation invocation and recordation of the browser event, execution returning to a point at which an unredirected operation invocation would have resumed.

Assignments (14)
SECURITY INTEREST Recorded Dec 16, 2022
From: DYNATRACE LLC
To: BMO HARRIS BANK N.A.
Reel/Frame 062142/0187 →
RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 046923/0557 Recorded Dec 5, 2022
From: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
To: DYNATRACE, LLC
Reel/Frame 062056/0562 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL RECORDED AT R/F 46923/0528 Recorded Aug 6, 2019
From: JEFFERIES FINANCE LLC, COLLATERAL AGENT
To: DYNATRACE LLC
Reel/Frame 049966/0518 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Aug 24, 2018
From: DYNATRACE LLC
To: JEFFERIES FINANCE LLC
Reel/Frame 046923/0557 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Aug 24, 2018
From: DYNATRACE LLC
To: JEFFERIES FINANCE LLC
Reel/Frame 046923/0528 →
RELEASE OF FIRST LIEN PATENT SECURITY AGREEMENT RECORDED AT REEL\FRAME 035200\0973 AND 035200\0955 Recorded Aug 23, 2018
From: JEFFERIES FINANCE LLC
To: DYNATRACE LLC; COMPUWARE CORPORATION
Reel/Frame 046922/0886 →
TERMINATION OF SECURITY INTEREST IN PATENTS AT REEL/FRAME NO. 035201/0065 Recorded Feb 14, 2018
From: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
To: COMPUWARE CORPORATION
Reel/Frame 045325/0384 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2015
From: COMPUWARE CORPORATION
To: DYNATRACE LLC
Reel/Frame 035497/0824 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Mar 13, 2015
From: COMPUWARE CORPORATION
To: JEFFERIES FINANCE, LLC
Reel/Frame 035201/0065 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Mar 13, 2015
From: COMPUWARE CORPORATION
To: JEFFERIES FINANCE, LLC
Reel/Frame 035200/0973 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE TO 12/31/2009 AND ASSIGNEE ADDRESS TO C/O COMPUWARE CORPORATION, ONE CAMPUS MARTIUS, DETROIT, MI 48226 PREVIOUSLY RECORDED ON REEL 023741 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNOR: GOMEZ, INC. ASSIGNEE: GOMEZ ACQUISITION CORP.. Recorded Jan 8, 2010
From: GOMEZ, INC.
To: GOMEZ ACQUISITION CORP.
Reel/Frame 023750/0684 →
MERGER Recorded Jan 6, 2010
From: GOMEZ, INC.
To: GOMEZ ACQUISITION CORP.
Reel/Frame 023741/0001 →
MERGER Recorded Jan 6, 2010
From: GOMEZ ACQUISITION CORP.
To: COMPUWARE CORPORATION
Reel/Frame 023741/0343 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 25, 2009
From: DEBETTENCOURT, JASON; CROSS, MATTHEW; BREEN, WILLIAM RYAN
To: GOMEZ, INC.
Reel/Frame 023283/0156 →