IP Library Granted Patent US 11,561,889
Granted Patent B2
US 11,561,889 · App. 16/838,167 · Granted Jan 24, 2023

Orchestration for automated performance testing

Inventors: Mariano Edgardo De Sousa Bispo (Buenos Aires, AR); Ana Laura Felisatti (Buenos Aires, AR)
Assignee: Salesforce, Inc.
G06F11/3688G06F9/541G06F11/3664G06F16/2379
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 11,561,889
App. No.
16/838,167
Granted
Jan 24, 2023
Kind
B2
Abstract

Methods, systems, and devices supporting orchestration for automated performance testing are described. A server may orchestrate performance testing for software applications across multiple different test environments. The server may receive a performance test indicating an application to test and a set of test parameters. The server may determine a local or a non-local test environment for running the performance test. The server may deploy the application to the test environment, where the deploying involves deploying a first component of the performance test to a first test artifact in the test environment and deploying a second component of the performance test different from the first component to a second test artifact in the test environment. The server may execute the performance test to obtain a result set, where the executing involves executing multiple performance test components as well as orchestrating results across multiple test artifacts to obtain the result set.

Claims (74)

1. A method for managing performance tests, comprising:

receiving, from a user device, a performance test indicating an application to test and a set of test parameters;

determining, by an execution engine, a test environment for running the performance test;

creating a session for running the performance test;

activating a session application programming interface (API) based at least in part on creating the session;

deploying the application to the test environment, wherein the deploying comprises deploying a first component of the performance test to a first test artifact in the test environment and deploying a second component of the performance test different from the first component to a second test artifact in the test environment; and

executing the performance test to obtain a result set, wherein the executing comprises:

performing a first isolated execution of the first component using the first test artifact and a second isolated execution of the second component using the second test artifact based at least in part on the set of test parameters; and

orchestrating results across the first test artifact and the second test artifact using the session API to obtain the result set.

2. The method of claim 1 , further comprising:

determining, by the execution engine, a second test environment for running the performance test different from the test environment;

deploying the application to the second test environment; and

executing the performance test for the application at the second test environment based at least in part on the set of test parameters to obtain a second result set.

3. The method of claim 1 , further comprising:

receiving a user input indicating a first test environment for running the performance test, wherein the test environment comprises either the first test environment or a mock implementation of the first test environment, and the determining further comprises:

determining, by the execution engine, whether to run the performance test at the first test environment or the mock implementation of the first test environment based at least in part on a set of available application programming interfaces, a user authorization, a processing overhead threshold, the set of test parameters, or a combination thereof.

4. The method of claim 1 , wherein:

the test environment comprises a mock test environment running locally at an application server; and

the performance test is executed locally at the application server.

5. The method of claim 4 , wherein the result set indicates comparative performance metrics for the first isolated execution and the second isolated execution.

6. The method of claim 1 , wherein deploying the application further comprises:

sending the first component to the first test artifact via a first application programming interface; and

sending the second component to the second test artifact via a second application programming interface.

7. The method of claim 1 , further comprising:

spinning up a plurality of machines for the session, wherein the plurality of machines comprises at least the first test artifact and the second test artifact.

8. The method of claim 1 , further comprising:

creating a session token based at least in part on creating the session, wherein the performance test is executed based at least in part on the session token; and

deleting the session token based at least in part on obtaining the result set.

9. The method of claim 1 , wherein the deploying comprises:

deploying, in a first deployment step, the first component of the performance test to the first test artifact;

orchestrating information sharing from the deployed first component to a second deployment step, wherein the second component of the performance test, the second test artifact, or both depend on at least a portion of the information; and

deploying, in the second deployment step, the second component of the performance test to the second test artifact based at least in part on the portion of the information.

10. The method of claim 1 , wherein executing the performance test comprises a first execution of the performance test, the method further comprising:

executing the performance test for a second execution of the performance test; and

tracking a performance regression metric, a performance improvement metric, or both based at least in part on the first execution of the performance test and the second execution of the performance test.

11. The method of claim 10 , wherein the performance test is executed based at least in part on a schedule, a testing periodicity, a testing queue, or a combination thereof.

12. The method of claim 1 , further comprising:

receiving a user input defining the first test artifact; and

publishing the first test artifact based at least in part on the user input, wherein deploying the first component of the performance test to the first test artifact is based at least in part on publishing the first test artifact.

13. The method of claim 1 , further comprising:

storing, at a database, the result set; and

sending, for display in a user interface of the user device, at least a portion of the result set.

14. The method of claim 1 , further comprising:

identifying a configuration file, wherein the test environment is determined for running the performance test at execution time based at least in part on the configuration file.

15. The method of claim 1 , wherein the set of test parameters comprises one or more threads, a runtime version, one or more policies, one or more batch files, identification information, a success criterion, one or more labels, or a combination thereof.

16. An apparatus for managing performance tests, comprising:

a processor;

memory coupled with the processor; and

instructions stored in the memory and executable by the processor to cause the apparatus to:

receive, from a user device, a performance test indicating an application to test and a set of test parameters;

determine, by an execution engine, a test environment for running the performance test;

create a session for running the performance test;

activate a session application programming interface (API) based at least in part on creating the session;

deploy the application to the test environment, wherein the deploying comprises deploying a first component of the performance test to a first test artifact in the test environment and deploying a second component of the performance test different from the first component to a second test artifact in the test environment; and

execute the performance test to obtain a result set, wherein the instructions to execute the performance test are further executable by the processor to cause the apparatus to:

perform a first isolated execution of the first component using the first test artifact and a second isolated execution of the second component using the second test artifact based at least in part on the set of test parameters; and

orchestrate results across the first test artifact and the second test artifact using the session API to obtain the result set.

17. The apparatus of claim 16 , wherein the instructions are further executable by the processor to cause the apparatus to:

determine, by the execution engine, a second test environment for running the performance test different from the test environment;

deploy the application to the second test environment; and

execute the performance test for the application at the second test environment based at least in part on the set of test parameters to obtain a second result set.

18. A non-transitory computer-readable medium storing code for managing performance tests, the code comprising instructions executable by a processor to:

receive, from a user device, a performance test indicating an application to test and a set of test parameters;

determine, by an execution engine, a test environment for running the performance test;

create a session for running the performance test;

activate a session application programming interface (API) based at least in part on creating the session;

deploy the application to the test environment, wherein the deploying comprises deploying a first component of the performance test to a first test artifact in the test environment and deploying a second component of the performance test different from the first component to a second test artifact in the test environment; and

execute the performance test to obtain a result set, wherein the instructions to execute the performance test are further executable by the processor to:

perform a first isolated execution of the first component using the first test artifact and a second isolated execution of the second component using the second test artifact based at least in part on the set of test parameters; and

orchestrate results across the first test artifact and the second test artifact using the session API to obtain the result set.

19. The non-transitory computer-readable medium of claim 18 , wherein the instructions are further executable to:

determine, by the execution engine, a second test environment for running the performance test different from the test environment;

deploy the application to the second test environment; and

execute the performance test for the application at the second test environment based at least in part on the set of test parameters to obtain a second result set.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0480 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 3, 2020
From: DE SOUSA BISPO, MARIANO EDGARDO; FELISATTI, ANA LAURA
To: SALESFORCE.COM, INC.
Reel/Frame 052305/0663 →
Continuity (1)
Related Publication 20210311859A1 · Oct 7, 2021
Cited By (2)
US 12,229,537 US 12,450,145