IP Library Granted Patent US 9,858,363
Granted Patent B2
US 9,858,363 · App. 14/247,008 · Granted Jan 2, 2018

Estimating think times using a measured response time

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 9,858,363
App. No.
14/247,008
Granted
Jan 2, 2018
Kind
B2
Abstract

Methods, systems, and computer programs, for estimating think times. One of the methods includes receiving a request to perform a test of one or more computing resources. The test of the one or more computing resources is performed by simulating an interaction of one or more simulated users with the one or more computing resources. Requests are submitted from the simulated user for execution by the one or more computing resources. Respective response times of the one or more computing resources to each of the requests are measured. An estimated think time of the simulated user is computed, wherein the estimated think time is computed based on at least one preceding response time.

Claims (95)

1. A computer-implemented method comprising:

receiving a request to perform a test of one or more computing resources;

performing the test of the one or more computing resources by simulating an interaction of one or more simulated users with the one or more computing resources, wherein simulating the interaction of each of the simulated users comprises:

submitting a plurality of requests from the simulated user for execution by the one or more computing resources,

measuring a respective response time of the one or more computing resources to each of the requests, and

computing an estimated think time of the simulated user, wherein the estimated think time is computed using at least one preceding response time and a mapping between a plurality of ranges of response time values and a plurality of ranges of estimated think time values; and

using the computed think time to determine a delay between a time that a simulated user receives a response to a particular request and submits another request.

2. The method of claim 1 , wherein submitting a plurality of requests comprises:

submitting a first request from the simulated user for execution to the one or more computing resources;

receiving a response to the first request submitted by the simulated user;

waiting for a period of time defined by a current estimated think time; and

submitting a second request from the simulated user for execution to the one or more computing resources.

3. The method of claim 1 , further comprising:

for each simulated user, launching a respective virtual machine, wherein the virtual machine executes a virtual desktop that includes one or more applications.

4. The method of claim 3 , further comprising:

receiving, at each virtual machine, display data from an application executing on the computing resources; and

for each simulated user, submitting one or more requests for the application to perform one or more operations.

5. The method of claim 1 , further comprising:

receiving, for each simulated user, display data from an application executing on the computing resources; and

for each simulated user, submitting one or more requests for the application to perform one or more operations.

6. The method of claim 1 , wherein computing an estimated think time comprises:

identifying a plurality of ranges of response time values that map to a plurality of ranges of estimated think time values;

determining that a particular preceding response time value is in a first range of the plurality of ranges of response time values; and

selecting an estimated think time from a first range of estimated think times that maps to the first range of response times.

7. The method of claim 1 , wherein computing an estimated think time comprises:

identifying a plurality of ranges of response times that map to a plurality of ranges of estimated think times;

determining that a particular preceding response time value is in a first range of the plurality of ranges of response times;

obtaining a current response time, wherein the current response time is chronologically after the preceding response time;

determining that the current response time value is in the first range of the plurality of ranges of response times;

determining whether the current response time is greater than the preceding response time or less than the preceding response time;

in response to determining whether the current response time is greater than the preceding response time or less than the preceding response time, modifying a range of estimated think times that maps to the first range of response times using a modification constant; and

selecting an estimated think time from the modified range of estimated think times that maps to the first range of response times.

8. The method of claim 1 , wherein computing an estimated think time further comprises:

obtaining a current estimated think time;

obtaining a current response time, wherein the current response time is chronologically after a preceding response time;

determining whether the current response time is greater than the preceding response time or less than the preceding response time; and

in response to the determination, modifying the current estimated think time with a modification constant.

9. The method of claim 8 , wherein determining whether the current response time is greater than the preceding response time or less than the preceding response time comprises:

computing an addition of the preceding response time with a buffer value;

computing a subtraction of the preceding response time with the buffer value; and

determining whether the current response time is greater than the computed addition or less than the computed subtraction.

10. A system comprising:

one or more computers and one or more storage devices storing instructions that, when executed by the one or more computers, cause the one or more computers to perform operations comprising:

receiving a request to perform a test of one or more computing resources;

performing the test of the one or more computing resources by simulating an interaction of one or more simulated users with the one or more computing resources, wherein simulating the interaction of each of the users comprises:

submitting a plurality of requests from the simulated user for execution by the one or more computing resources,

measuring a respective response time of the one or more computing resources to each of the requests, and

computing an estimated think time of the simulated user, wherein the estimated think time is computed using at least one preceding response time and a mapping between a plurality of ranges of response time values and a plurality of ranges of estimated think time values; and

using the computed think time to determine a delay between a time that a simulated user receives a response to a particular request and submits another request.

11. The system of claim 10 , wherein submitting a plurality of requests comprises:

submitting a first request from the simulated user for execution to the one or more computing resources;

receiving a response to the first request submitted by the simulated user;

waiting for a period of time defined by a current estimated think time; and

submitting a second request from the simulated user for execution to the one or more computing resources.

12. The system of claim 10 , wherein the operations further comprise:

for each simulated user, launching a respective virtual machine, wherein the virtual machine executes a virtual desktop that includes one or more applications.

13. The system of claim 12 , wherein the operations further comprise:

receiving, at each virtual machine, display data from an application executing on the computing resources; and

for each simulated user, submitting one or more requests for the application to perform one or more operations.

14. The system of claim 10 , wherein the operations further comprise:

receiving, for each simulated user, display data from an application executing on the computing resources; and

for each simulated user, submitting one or more requests for the application to perform one or more operations.

15. The system of claim 10 , wherein computing an estimated think time comprises:

identifying a plurality of ranges of response time values that map to a plurality of ranges of estimated think time values;

determining that a particular preceding response time value is in a first range of the plurality of ranges of response time values; and

selecting an estimated think time from a first range of estimated think times that maps to the first range of response times.

16. The system of claim 10 , wherein computing an estimated think time comprises:

identifying a plurality of ranges of response times that map to a plurality of ranges of estimated think times;

determining that a particular preceding response time value is in a first range of the plurality of ranges of response times;

obtaining a current response time, wherein the current response time is chronologically after the preceding response time;

determining that the current response time value is in the first range of the plurality of ranges of response times;

determining whether the current response time is greater than the preceding response time or less than the preceding response time;

in response to determining whether the current response time is greater than the preceding response time or less than the preceding response time, modifying a range of estimated think times that maps to the first range of response times using a modification constant; and

selecting an estimated think time from the modified range of estimated think times that maps to the first range of response times.

17. The system of claim 10 , wherein computing an estimated think time comprises:

obtaining a current estimated think time;

obtaining a current response time, wherein the current response time is chronologically after a preceding response time;

determining whether the current response time is greater than the preceding response time or less than the preceding response time; and

in response to the determination, modifying the current estimated think time with a modification constant.

18. The system of claim 17 , wherein determining whether the current response time is greater than the preceding response time or less than the preceding response time comprises:

computing an addition of the preceding response time with a buffer value;

computing a subtraction of the preceding response time with the buffer value; and

determining whether the current response time is greater than the computed addition or less than the computed subtraction.

19. A non-transitory computer-readable storage medium encoding instructions that when executed by one or more computers cause the one or more computers to perform operations comprising:

receiving a request to perform a test of one or more computing resources;

performing the test of the one or more computing resources by simulating an interaction of one or more simulated users with the one or more computing resources, wherein simulating the interaction of each of the users comprises:

submitting a plurality of requests from the simulated user for execution by the one or more computing resources,

measuring a respective response time of the one or more computing resources to each of the requests, and

computing an estimated think time of the simulated user, wherein the estimated think time is computed using at least one preceding response time and a mapping between a plurality of ranges of response time values and a plurality of ranges of estimated think time values; and

using the computed think time to determine a delay between a time that a simulated user receives a response to a particular request and submits another request.

20. The non-transitory computer-readable storage medium of claim 19 , wherein submitting a plurality of requests comprises:

submitting a first request from the simulated user for execution to the one or more computing resources;

receiving a response to the first request submitted by the simulated user;

waiting for a period of time defined by a current estimated think time; and

submitting a second request from the simulated user for execution to the one or more computing resources.

Assignments (4)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2014
From: KURKURE, UDAY; SIVARAMAN, HAVI
To: VMWARE, INC.
Reel/Frame 032620/0653 →