US 11,809,306 B2
Method and system for scalable performance testing in cloud computing environments
Phanindra Padala, Fremont, CA (US); Saravanan Balasubramanian, Milpitas, CA (US); Jesse Raymond Suen, Mountain View, CA (US); Navin Kumar Jammula, Dublin, CA (US); and Sumit Nagal, San Ramon, CA (US)
Assigned to INTUIT, INC.
Filed by INTUIT INC., Mountain View, CA (US)
Filed on Feb. 26, 2021, as Appl. No. 17/187,087.
Prior Publication US 2022/0276953 A1, Sep. 1, 2022
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 11/36 (2006.01); G06F 9/50 (2006.01); G06F 11/34 (2006.01)
CPC G06F 11/3688 (2013.01) [G06F 9/5027 (2013.01); G06F 11/3414 (2013.01); G06F 11/3692 (2013.01); G06F 11/3696 (2013.01)] 16 Claims
OG exemplary drawing
 
1. A method for performing performance tests against services in a computing environment, comprising:
deploying application code to an application namespace hosted on a first set of resources in the computing environment;
deploying testing code to an infrastructure namespace hosted on a second set of resources in the computing environment;
receiving a request to test the application code, the request including information identifying an amount of load to be generated in testing the application code;
calculating, based on a maximum amount of load that can be generated by each of a plurality of resource pod configurations and the amount of load indicated in the request, a minimal set of resource pods needed to generate the amount of load indicated in the request, the minimal set of resource pods including a minimal set of one or more virtual compute instances (VCIs), the minimal set of one or more VCIs being selected using a resource minimization strategy that selects a lowest cost configuration of VCIs from a plurality of configurations, the plurality of configurations including configurations selected from a plurality of VCIs having a plurality of different supported transactions per second, each respective resource pod configuration being associated with a respective pod-level maximum load and includes one or more VCIs, and each respective VCI being associated with a respective compute-instance-level maximum load;
instantiating a plurality of container instances implementing the test code, the instantiating the plurality of container instances comprising instantiating a plurality of resource pods implementing the test code based on the minimal set of resource pods needed to generate the amount of load indicated in the request;
executing a test against the application code through the plurality of resource pods implementing the test code;
retrieving test results generated by each of the plurality of container instances implementing the test code, the test results comprising, for each of the plurality of container instances, a number of tests executed against the application code, responsiveness data, and correctness data;
generating a consolidated test result by merging the test results generated by each of the plurality of container instances, the consolidated test result including information about a total number of tests executed against the application code, a total number of tests that were executed successfully by the application code, and a percentage of successfully executed tests; and
deploying the application code to a production environment based on determining that the consolidated test results meet a threshold performance level established for the application code, the threshold performance level comprising at least one of a threshold average response time and a threshold response correctness level.