IP Library Granted Patent US 10,284,450
Granted Patent B2
US 10,284,450 · App. 16/057,727 · Granted May 7, 2019

Systems and methods for live testing performance conditions of a multi-tenant system

Inventors: Xuquan Lin (San Jose, CA); Tinglan Kung (San Jose, CA); Sahin Habesoglu (San Francisco, CA)
Assignee: Zuora, Inc.
H04L43/0882H04L41/5038H04L43/50H04L41/5096H04L67/1029
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 10,284,450
App. No.
16/057,727
Granted
May 7, 2019
Kind
B2
Abstract

A method receives start commands for starting end-to-end testing of a live multi-tenant system that hosts shared services for multiple tenants; executes multiple test scripts for generating controller commands in response to the start commands, the executing the test scripts generating respectively synthetic transaction inputs; provides the synthetic transaction inputs to the live multi-tenant system, the live multi-tenant system configured to use the synthetic transaction inputs to perform respectively multiple synthetic transactions involving multiple destinations in the live multi-tenant system, the live multi-tenant system configured to generate respectively multiple test results in response to the multiple synthetic transactions; receives and evaluates the test results generated by the live multi-tenant system to test end-to-end performance conditions of the multi-tenant system; and generates one or more alerts upon recognizing an alert trigger condition based upon the evaluating of the test results.

Claims (42)

1. A testing system for testing end-to-end performance conditions of a live multi-tenant system, the testing system comprising:

at least one processor; and

memory storing program code for testing end-to-end performance conditions of a live multi-tenant system that is hosting shared services for multiple tenants, the program code including:

a scheduler configured to generate multiple start commands for starting multiple end-to-end tests of the live multi-tenant system on behalf of the multiple tenants, each start command of the multiple start commands configured to start a respective end-to-end test of the multiple end-to-end tests on behalf of one of the multiple tenants;

a controller configured to receive multiple controller commands associated with the multiple start commands, each of the multiple controller commands configured to cause the controller to login as a synthetic tenant user of the one of the multiple tenants and to cause one or more synthetic transaction inputs to be provided to the live multi-tenant system on behalf of the one of the multiple tenants, the live multi-tenant system configured to login the synthetic tenant user of the one of the multiple tenants and in response to the one or more synthetic transaction inputs perform one or more synthetic transactions involving at least one of multiple destinations in the live multi-tenant system, the multiple controller commands including a first controller command configured to login as a first synthetic tenant user and to cause one or more first synthetic transaction inputs to be provided to the live multi-tenant system on behalf of a first tenant, the multiple controller commands including a second controller command configured to login as a second synthetic tenant user and to cause one or more second synthetic transaction inputs to be provided to the live multi-tenant system on behalf of a second tenant, the first synthetic tenant user being dedicated to the first tenant, the second synthetic tenant user being dedicated to the second tenant, the first synthetic tenant user and the second synthetic tenant user being different; and

an automated test driver configured to receive the multiple start commands from the scheduler, to execute multiple test scripts for generating the multiple controller commands in response to the multiple start commands, to provide the multiple controller commands to the controller, to obtain multiple test results generated by the live multi-tenant system in response to the multiple synthetic transactions, and to present in an interface health indicators of the live multi-tenant system, the health indicators being based on the multiple test results.

2. The testing system of claim 1 , wherein each destination of the at least one of multiple destinations is a logical data store.

3. The testing system of claim 1 , wherein the automated test driver is further configured to evaluate the multiple test results to determine the end-to-end performance conditions of the live multi-tenant system on behalf of the multiple tenants, and to generate one or more alerts upon recognizing an alert trigger condition based upon the evaluating of the multiple test results.

4. The testing system of claim 1 , wherein the scheduler generates the multiple start commands periodically.

5. The testing system of claim 1 , wherein the live multi-tenant system includes user interfaces and servers,

the live multi-tenant system is further configured to load balance tenant transactions through the user interfaces and the servers to the at least one of multiple destinations, and

each synthetic transaction of the one or more synthetic transactions uses a communication path through one of the user interfaces and one of the servers based on the load balancing in the live multi-tenant system to reach a particular destination.

6. The testing system of claim 1 , wherein the live multi-tenant system includes user interfaces and servers,

the live multi-tenant system is further configured to load balance tenant transactions through the user interfaces and the servers to the at least one of multiple destinations, and

each synthetic transaction of the one or more synthetic transactions uses a particular communication path through a particular one of the user interfaces and a particular one of the servers to reach a particular destination.

7. The testing system of claim 3 , wherein the evaluating the multiple test results includes comparing the multiple test results against timing information.

8. The testing system of claim 3 , wherein the evaluating the multiple test results includes comparing the multiple test results against expected test results.

9. The testing system of claim 3 , wherein the evaluating the multiple test results includes evaluating handoff information between components of the live multi-tenant system.

10. The testing system of claim 1 , wherein the multiple test scripts are configured instances of a default test script.

11. A method of testing end-to-end performance conditions of a live multi-tenant system that is hosting shared services for multiple tenants, the method comprising:

receiving multiple start commands for starting multiple end-to-end tests of a live multi-tenant system on behalf of multiple tenants, the live multi-tenant system hosting shared services for the multiple tenants, each start command of the multiple start commands configured to start a respective end-to-end test of the multiple end-to-end tests on behalf of one of the multiple tenants;

executing multiple test scripts for generating multiple controller commands in response to the multiple start commands, the executing the multiple test scripts causing one or more synthetic transaction inputs to be provided to the live multi-tenant system on behalf of the one of the multiple tenants, the live multi-tenant system configured to, in response to the one or more synthetic transaction inputs, perform one or more synthetic transactions involving at least one of multiple destinations in the live multi-tenant system, the multiple controller commands including a first controller command configured to login as a first synthetic tenant user and to cause one or more first synthetic transaction inputs to be provided to the live multi-tenant system on behalf of a first tenant, the multiple controller commands including a second controller command configured to login as a second synthetic tenant user and to cause one or more second synthetic transaction inputs to be provided to the live multi-tenant system on behalf of a second tenant, the first synthetic tenant user being dedicated to the first tenant, the second synthetic tenant user being dedicated to the second tenant, the first synthetic tenant user and the second synthetic tenant user being different;

obtaining multiple test results generated by the live multi-tenant system in response to the multiple synthetic transactions; and

presenting in an interface health indicators of the live multi-tenant system, the health indicators being based on the multiple test results.

12. The method of claim 11 , wherein each destination of the at least one of multiple destinations is a logical data store.

13. The method of claim 11 , further comprising evaluating the multiple test results to determine the end-to-end performance conditions of the live multi-tenant system on behalf of the multiple tenants, and generating one or more alerts upon recognizing an alert trigger condition based upon the evaluating of the multiple test results.

14. The method of claim 11 , wherein the generating the multiple start commands includes generating the multiple start commands periodically.

15. The method of claim 11 , wherein the live multi-tenant system includes user interfaces and servers,

the live multi-tenant system is further configured to load balance tenant transactions through the user interfaces and the servers to the at least one of multiple destinations, and

each synthetic transaction of the one or more synthetic transactions uses a communication path through one of the user interfaces and one of the servers based on the load balancing in the live multi-tenant system to reach a particular destination.

16. The method of claim 11 , wherein the live multi-tenant system includes user interfaces and servers,

the live multi-tenant system is further configured to load balance tenant transactions through the user interfaces and the servers to the at least one of multiple destinations, and

each synthetic transaction of the one or more synthetic transactions uses a particular communication path through a particular one of the user interfaces and a particular one of the servers to reach a particular destination.

17. The method of claim 13 , wherein the evaluating the multiple test results includes comparing the multiple test results against timing information.

18. The method of claim 13 , wherein the evaluating the multiple test results includes comparing the multiple test results against expected test results.

19. The method of claim 13 , wherein the evaluating the multiple test results includes evaluating handoff information between components of the live multi-tenant system.

20. The method of claim 11 , wherein the multiple test scripts are configured instances of a default test script.

21. A non-transitory computer-readable storage medium storing program code for causing a processor to perform the steps of:

receiving multiple start commands for starting multiple end-to-end tests of a live multi-tenant system on behalf of multiple tenants, the live multi-tenant system hosting shared services for the multiple tenants, each start command of the multiple start commands configured to start a respective end-to-end test of the multiple end-to-end tests on behalf of one of the multiple tenants;

executing multiple test scripts for generating multiple controller commands in response to the multiple start commands, the executing the multiple test scripts causing one or more synthetic transaction inputs to be provided to the live multi-tenant system on behalf of the one of the multiple tenants, the live multi-tenant system configured to, in response to the one or more synthetic transaction inputs, perform one or more synthetic transactions involving at least one of multiple destinations in the live multi-tenant system, the multiple controller commands including a first controller command configured to login as a first synthetic tenant user and to cause one or more first synthetic transaction inputs to be provided to the live multi-tenant system on behalf of a first tenant, the multiple controller commands including a second controller command configured to login as a second synthetic tenant user and to cause one or more second synthetic transaction inputs to be provided to the live multi-tenant system on behalf of a second tenant, the first synthetic tenant user being dedicated to the first tenant, the second synthetic tenant user being dedicated to the second tenant, the first synthetic tenant user and the second synthetic tenant user being different;

obtaining multiple test results generated by the live multi-tenant system in response to the multiple synthetic transactions; and

presenting in an interface health indicators of the live multi-tenant system, the health indicators being based on the multiple test results.

Assignments (2)
SECURITY INTEREST Recorded Feb 14, 2025
From: ZUORA, INC.
To: ROYAL BANK OF CANADA, AS COLLATERAL AGENT
Reel/Frame 070236/0918 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2018
From: LIN, XUQUAN; KUNG, TINGLAN; HABESOGLU, SAHIN
To: ZUORA, INC.
Reel/Frame 046577/0410 →
Continuity (3)
Continuation 15088050 · Mar 31, 2016
Provisional Application 62141213 · Mar 31, 2015
Related Publication 20180351842A1 · Dec 6, 2018