Web application performance testing

US10241901B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10241901-B2
Application numberUS-201514730692-A
CountryUS
Kind codeB2
Filing dateJun 4, 2015
Priority dateOct 6, 2014
Publication dateMar 26, 2019
Grant dateMar 26, 2019

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 1. 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. 2. The computer readable medium of claim 1 , the automatically determining boundaries between two stack traces comprises: initializing a root of a first tree to one node containing all stack trace elements of a first stack trace of the request; looping on the remaining stack traces of the request comprising: comparing the stack trace elements of the stack trace with the stack trace elements of the rightmost branch of the tree; identifying a point where there is a difference; breaking the last node into two branches; and forming a new node of the rightmost branch of the tree from the remaining stack trace elements of the stack trace. 3. The computer readable medium of claim 1 , further comprising determining duplicate stack traces and only keeping one copy of the duplicate stack traces in the Java heap. 4. The computer readable medium of claim 1 , further comprising using stop methods to store only one copy of a plurality of repeated stack traces, wherein the web page request is a Hypertext Transfer Protocol (HTTP) request. 5. The computer readable medium of claim 2 , wherein the testing comprises deploying a Java agent on an instrumented server. 6. The computer readable medium of claim 1 , wherein the adding the additional Java methods comprises using a .war web application without restarting a corresponding Java virtual machine. 7. The computer readable medium of claim 5 , wherein the instrumented server is a WebLogic server and wherein the initializing the subset of Java methods comprises using a servlet and Enterprise JavaBeans entry points of the WebLogic server as the subset of Java methods. 8. 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. 9. The method of claim 8 , the automatically determining boundaries between two stack traces comprises: initializing a root of a first tree to one node containing all stack trace elements of a first stack trace of the request; looping on the remaining stack traces of the request comprising: comparing the stack trace elements of the stack trace with the stack trace elements of the rightmost branch of the tree; identifying a point where there is a difference; breaking the last node into two branches; and forming a new node of the rightmost branch of the tree from the remaining stack trace elements of the stack trace. 10. The method of claim 8 , further comprising determining duplicate stack traces and only keeping one copy of the duplicate stack traces in the Java heap. 11. The method of claim 8 , further comprising using stop methods to store only one copy of a plurality of repeated stack traces, wherein the web page request is a Hypertext Transfer Protocol (HTTP) request. 12. The method of claim 9 , wherein the testing comprises deploying a Java agent on an instrumented server. 13. The method of claim 8 , wherein the adding the additional Java methods comprises using a .war web application without restarting a corresponding Java virtual machine. 14. The method of claim 12 , wherein the instrumented server is a WebLogic server and wherein the initializing the subset of Java methods comprises using a servlet and Enterprise JavaBeans entry points of the WebLogic server as the subset of Java methods. 15. 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

Assignees

Inventors

Classifications

  • Monitoring of systems including the internet · CPC title

  • Visualisation of programs or trace data · CPC title

  • Functional testing · CPC title

  • by tracing the execution of the program · CPC title

  • Test management · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10241901B2 cover?
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 lo…
Who is the assignee on this patent?
Oracle Int Corp
What technology area does this patent fall under?
Primary CPC classification G06F11/3688. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 26 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).