Annotations-based generic load generator engine
First Claim
1. A system, comprising:
- one or more computers configured to implement a load testing system, wherein the load testing system comprises;
a transaction generation framework; and
a transaction creator module;
wherein the transaction creator module is dynamically bound to the transaction generation framework at runtime;
wherein the transaction generation framework discovers, during runtime, source code annotations within the transaction creator module;
wherein the source code annotations comprise information identifying one or more transaction methods of the transaction creator module, wherein individual ones of the one or more transaction methods cause a test transaction to be performed to a network-based production service configured to process requests from clients for the service via a network;
wherein the transaction generation framework generates one or more test transactions to be performed on the service based on load step information, wherein the one or more test transactions simulate client requests to the service;
wherein for individual ones of the one or more test transactions, the transaction generation framework calls one of the one or more transaction methods of the transaction creator module;
wherein in response to the transaction generation framework calling one of the transaction methods, the transaction creator module communicates with the service to perform the respective test transaction;
wherein the transaction generation framework collects one or more performance metrics based on the service performance of the performed test transactions.
1 Assignment
0 Petitions
Accused Products
Abstract
A generic transaction generator framework for testing a network-based production service may work in conjunction with a product-specific transaction creator module that executes transactions on the service. The transaction creator module may include runtime-discoverable information to communicate product specific details to the framework. Runtime-discoverable information may identify initialization methods, terminate methods, transaction types, transaction methods, transaction dependencies as well as testing parameters, such as transaction rate, testing period and a desired distribution of transaction types. The framework may generate and execute various test transactions and collect performance metrics regarding how well the service performed the test transactions.
95 Citations
20 Claims
-
1. A system, comprising:
one or more computers configured to implement a load testing system, wherein the load testing system comprises; a transaction generation framework; and a transaction creator module; wherein the transaction creator module is dynamically bound to the transaction generation framework at runtime; wherein the transaction generation framework discovers, during runtime, source code annotations within the transaction creator module; wherein the source code annotations comprise information identifying one or more transaction methods of the transaction creator module, wherein individual ones of the one or more transaction methods cause a test transaction to be performed to a network-based production service configured to process requests from clients for the service via a network; wherein the transaction generation framework generates one or more test transactions to be performed on the service based on load step information, wherein the one or more test transactions simulate client requests to the service; wherein for individual ones of the one or more test transactions, the transaction generation framework calls one of the one or more transaction methods of the transaction creator module; wherein in response to the transaction generation framework calling one of the transaction methods, the transaction creator module communicates with the service to perform the respective test transaction; wherein the transaction generation framework collects one or more performance metrics based on the service performance of the performed test transactions. - View Dependent Claims (2, 3, 4, 5)
-
6. A method for testing a network-based production service, comprising;
performing, by one or more computers; discovering, by a transaction generation framework at runtime, runtime-discoverable information within a transaction creator module, wherein the runtime-discoverable information identifies one or more transaction types to send to the network-based production service configured to process requests from clients for the service via a network; discovering, by the transaction generation framework at runtime, additional runtime-discoverable information within the transaction creator module, wherein the additional runtime-discoverable information identifies one or more transaction methods of the transaction creator module, wherein at least one of the one or more transaction methods is of one of the one or more transaction types; generating, by the transaction generation framework, one or more test transactions based on load information specifying a particular distribution of transaction types to be generated, wherein at least one generated test transaction is of one of the transactions types, wherein the one or more test transactions simulate client requests to the service; calling, by the transaction generation framework for at least one generated test transaction, one of the transaction methods corresponding to the transaction type of the generated test transaction; and in response to the transaction generation framework calling one of the transaction methods, sending a transaction of the corresponding transaction type to the network-based production service. - View Dependent Claims (7, 8, 9, 10, 11, 12)
-
13. A non-transitory, computer-readable storage medium storing program instructions that when executed cause one or more computers to perform:
-
discovering, at runtime, source code annotations identifying one or more transaction types to send to a network-based production service configured to process requests from clients for the service via a network; generating one or more test transactions based on load information specifying a distribution of the transaction types, wherein at least one generated test transaction is of one of the transactions types, wherein the one or more test transactions simulate client requests to the service; and sending individual ones of the generated test transactions to the network-based production service. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
Specification