Web application performance testing
AssigneeOracle International Corporation
InventorsVan Pho, David A. Phipps, Shaun Lin
Life of this patent
Estimating the term…
Abstract
A system for performance testing a web application initializes to be instrumented a subset of methods of the web application to be tested in response to a request, and then tests the application based on the subset of methods. The system generates an instrumented call tree and corresponding stack traces for each request in response to the testing, and determines one or more methods that take longer than a predetermined time period to execute using the instrumented call trees and the stack traces. The system then determines additional methods to be tested and adds the determined additional methods to the subset of methods and repeats the testing.
Claims20
A non-transitory computer readable medium having instructions stored thereon that, when executed by a processor, cause the processor to performance test a web application, the performance testing comprising:
- initializing to be instrumented a subset of Java methods of the web application to be tested in response to a web page request;
- testing the application based on the subset of Java methods, wherein the testing comprises instrumentation;
- generating an instrumented call tree and corresponding stack traces for each web page request that has a duration that exceeds a predefined time in response to the testing, wherein the stack traces are stored in a Java heap;
- automatically determining boundaries between the generated stack traces to determine one or more of the subset of Java methods that take longer than a predetermined time period to execute using the instrumented call trees and the stack traces;
- determining, based on the one or more of the subset of Java methods that take longer than the predetermined time period to execute, additional Java methods to be tested, the additional Java methods to be tested determined from the boundaries between the stack traces;
- adding the additional Java methods that take longer than the predetermined time period to execute to the subset of Java methods and repeating the testing, including testing the additional Java methods;
- and
- wherein the automatically determining boundaries between stack traces generated for each web page request that has the duration that exceeds the predefined time comprises forming trees of stack traces, each stack trace comprising a tree having a root node and a plurality of leaf nodes, and for each boundary of a stack trace tree determining a last method of a leaving node and a first method of an entering node.
A method for performance testing a web application, the method comprising:
- initializing to be instrumented a subset of Java methods of the web application to be tested in response to a web page request;
- testing the application based on the subset of Java methods, wherein the testing comprises instrumentation;
- generating an instrumented call tree and corresponding stack traces for each web page request that has a duration that exceeds a predefined time in response to the testing, wherein the stack traces are stored in a Java heap;
- automatically determining boundaries between the generated stack traces to determine one or more of the subset of Java methods that take longer than a predetermined time period to execute using the instrumented call trees and the stack traces;
- determining, based on the one or more of the subset of Java methods that take longer than the predetermined time period to execute, additional Java methods to be tested, the additional Java methods to be tested determined from the boundaries between the stack traces;
- adding the additional Java methods that take longer than the predetermined time period to execute to the subset of Java methods and repeating the testing, including testing the additional Java methods;
- and
- wherein the automatically determining boundaries between stack traces generated for each web page request that has the duration that exceeds the predefined time comprises forming trees of stack traces, each stack trace comprising a tree having a root node and a plurality of leaf nodes, and for each boundary of a stack trace tree determining a last method of a leaving node and a first method of an entering node.
A system for performance testing a web application, the system comprising:
- an analyzing module configured to initialize to be instrumented a subset of Java methods of the web application to be tested in response to a web page request;
- a Java agent configured to test the application based on the subset of Java methods, wherein the test comprises instrumentation;
- the analyzing module further configured to:
- generate an instrumented call tree and corresponding stack traces for each web page request that has a duration that exceeds a predefined time in response to the testing, wherein the stack traces are stored in a Java heap;
- automatically determine boundaries between the generated stack traces to determine one or more of the subset of Java methods that take longer than a predetermined time period to execute using the instrumented call trees and the stack traces;
- determine, based on the one or more of the subset of Java methods that take longer than the predetermined time period to execute, additional Java methods to be tested, the additional Java methods to be tested determined from the boundaries between the stack traces;
- add the additional Java methods that take longer than the predetermined time period to execute to the subset of Java methods and repeat the testing using the Java agent, including testing the additional Java methods;
- and
- wherein the automatically determining boundaries between stack traces generated for each web page request that has the duration that exceeds the predefined time comprises forming trees of stack traces, each stack trace comprising a tree having a root node and a plurality of leaf nodes, and for each boundary of a stack trace tree determining a last method of a leaving node and a first method of an entering node.
Dependencies are inferred from the claim text.