IP Library Granted Patent US 11,599,340
Granted Patent B2
US 11,599,340 · App. 15/504,011 · Granted Mar 7, 2023

Load testing

Inventors: Ohad Assulin (Yehud, IL); Ilan Shufer (Yehud, IL); Amit Levin (Yehud, IL)
Assignee: MICRO FOCUS LLC
G06F8/433G06F8/75G06F11/3414G06F11/3461G06F11/3466G06F11/3668
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 11,599,340
App. No.
15/504,011
Filed
Feb 14, 2017
Granted
Mar 7, 2023
Kind
B2
Art Unit
2199
USPC
717/124
Abstract

Examples relate to load testing. The examples disclosed herein enable obtaining lines of code that are recorded as an application is executed in a client computing device, the lines of code being recorded in chronological order of the execution; determining whether a dependency on at least one variable exists in individual lines of the lines of code; in response to determining that the dependency exists, storing the dependency in a data storage; identifying, from the lines of code, a line of code including a network call statement that calls a called variable; and eliminating a first subset of the lines of code based on the called variable and dependencies stored in the data storage, wherein a second subset of the lines of code that remain after the elimination comprises user-entered parameter data.

Claims (60)

1. A method performed by a processor of a computing device, the method comprising:

obtaining recorded lines of code of an application that are recorded as the application is executed in a client computing device;

performing a dependency analysis, including examining the recorded lines of code in a chronological order to determine variables in the recorded lines of code that are dependent on other variables in the recorded lines of code;

storing dependencies between the variables in a data storage; and

performing an elimination analysis, including:

in response to identifying, from the recorded lines of code, a first line of code including a network call statement that calls a called variable, examining the recorded lines of code in a reversed chronological order to identify a second line of code that contains the called variable and another variable,

based on the dependencies between the variables stored in the data storage, determining whether the called variable called by the network call statement is dependent on the other variable appearing in the second line of code, and

in response to a determination that the called variable called by the network call statement is not dependent on the other variable appearing in the second line of code, eliminating the second line of code from the recorded lines of code.

2. The method of claim 1 , further comprising:

in response to a determination that the called variable called by the network call statement is dependent on the other variable appearing in the second line of code, maintaining the second line of code in the recorded lines of code.

3. The method of claim 1 , further comprising:

obtaining a control flow graph (CFG) of the recorded lines of code, the CFG defining executable blocks of code and relationships among the executable blocks of code; and

determining a subset of the CFG based on a history of user interactions with the application, wherein the dependency analysis and the elimination analysis are performed in accordance with the subset of the CFG.

4. The method of claim 1 , wherein examining the recorded lines of code in the reversed chronological order to identify the second line of code comprises:

examining the recorded lines of code in the reversed chronological order starting from the first line of code until the second line of code that contains the called variable and the other variable is identified.

5. The method of claim 1 , further comprising:

presenting a subset of the recorded lines of code that remain after the elimination of the second line of code, wherein the subset of the recorded lines of code includes user-entered parameter data such that the user-entered parameter data is displayed visually different from the rest of the subset of the recorded lines of code.

6. The method of claim 1 , further comprising:

normalizing the recorded lines of code based on a programming language syntax.

7. The method of claim 1 , further comprising:

modifying the recorded lines of code that include statements that are specific to the client computing device or a browser of the client computing device.

8. A non-transitory machine-readable storage medium comprising instructions executable by a processor of a computing device to cause the processor to:

obtain recorded lines of code of an application that are recorded during an execution of the application in a client computing device;

perform a dependency analysis by examining the recorded lines of code in a chronological order to determine variables in the recorded lines of code that are dependent on other variables in the recorded lines of code; and

perform an elimination analysis by identifying, from the recorded lines of code, a first line of code including a network call statement that calls a called variable, examining the recorded lines of code in a reversed chronological order to identify a second line of code that contains the called variable and another variable, determining whether the called variable called by the network call statement is dependent on the other variable appearing in the second line of code, and eliminating the second line of code based on a determination that the called variable called by the network call statement is not dependent on the other variable appearing in the second line of code.

9. The non-transitory machine-readable storage medium of claim 8 , wherein the instructions are executable to cause the processor to:

obtain a control flow graph (CFG) of the recorded lines of code;

monitor user interactions with the application; and

calculate the CFG based on the monitored user interactions.

10. The non-transitory machine-readable storage medium of claim 8 , wherein, to examine the recorded lines of code in the reversed chronological order to determine the second line of code, the instructions are executable to cause the processor to:

examine the recorded lines of code in the reversed chronological order starting from the first line of code until the second line of code that contains the called variable and the other variable is identified.

11. The non-transitory machine-readable storage medium of claim 8 , wherein the instructions are executable to cause the processor to:

in response to a determination that the called variable called by the network call statement is dependent on the other variable appearing in the second line of code, maintain the second line of code in the recorded line of code.

12. The non-transitory machine-readable storage medium of claim 8 , wherein the instructions are executable to cause the processor to:

modify the recorded lines of code that include statements that are specific to the client computing device or a browser of the client computing device.

13. A system comprising:

a processor; and

a memory storing instructions executable to cause the processor to:

obtain recorded lines of code of an application that are recorded during an execution of the application in a client computing device;

perform a dependency analysis, including instructions that cause the processor to examine the recorded lines of code in a chronological order to determine variables in the recorded lines of code that are dependent on other variables in the recorded lines of code;

store dependencies between the variables in a data storage;

perform an elimination analysis, including instructions that cause the processor to:

in response to identifying, from the recorded lines of code, a first line of code including a network call statement that calls a called variable, examine the recorded lines of code in a reversed chronological order to identify a second line of code that contains the called variable and another variable,

based on the dependencies between the variables stored in the data storage, determine whether the called variable called by the network call statement is dependent on the other variable appearing in the second line of code, and

in response to a determination that the called variable called by the network call statement is not dependent on the other variable appearing in the second line of code, eliminate the second line of code from the recorded lines of code; and

cause a display of a subset of the recorded lines of code that remain after the elimination of the second line of code, wherein the subset of the recorded lines of code is used for load testing.

14. The system of claim 13 , wherein the instructions that cause the processor to cause the display of the subset of the recorded lines of code comprise instructions that cause the processor to:

detect user-entered parameter data in the subset of the recorded lines of code; and

highlight portions of the subset of the recorded lines of code that indicate the detected user-entered parameter data.

15. The system of claim 13 , wherein the instructions are executable to cause the processor to:

determine a control flow graph (CFG) of the recorded lines of code, the CFG comprising a first executable block of code that is connected to a second executable block of code, wherein the dependency analysis and the elimination analysis are performed based on the CFG of the recorded lines of code.

16. The system of claim 13 , wherein the instructions are executable to cause the processor to:

in response to a determination that the called variable called by the network call statement is dependent on the other variable appearing in the second line of code, maintain the second line of code in the recorded line of code.

17. The system of claim 13 , wherein, to examine the recorded lines of code in the reversed chronological order to determine the second line of code, the instructions are executable to cause the processor to:

examine the recorded lines of code in the reversed chronological order starting from the first line of code until the second line of code that contains the called variable and the other variable is identified.

18. The system of claim 13 , wherein the instructions are executable to cause the processor to:

modify the recorded lines of code that include statements that are specific to the client computing device or a browser of the client computing device.

19. The system of claim 13 , wherein the subset of the recorded lines of code includes user-entered parameter data such that the user-entered parameter data is displayed visually different from the rest of the subset of the recorded lines of code.

20. The system of claim 13 , wherein the instructions are executable to cause the processor to:

normalize the recorded lines of code based on a programming language syntax.

Assignments (8)
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0577 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC)
Reel/Frame 063560/0001 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
CHANGE OF NAME Recorded Aug 8, 2019
From: ENTIT SOFTWARE LLC
To: MICRO FOCUS LLC
Reel/Frame 050004/0001 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ENTIT SOFTWARE LLC; ARCSIGHT, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0577 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ENTIT SOFTWARE LLC; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2017
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
To: ENTIT SOFTWARE LLC
Reel/Frame 042746/0130 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2017
From: ASSULIN, OHAD; SHUFER, ILAN; LEVIN, AMIT
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 042463/0831 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2017
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 042468/0001 →
Continuity (1)
Related Publication 20170277523A1 · Sep 28, 2017