Maestro is the CloudTest test engine, implemented as a massively multi-threaded service, which executes all or parts of a complex test composition. A single Maestro node is capable of sending and validating responses to thousands of HTTP messages per second. Each track in a given composition has a Location setting, which can also be termed a "Maestro Location." As such, Maestro locations are server locations.
Multiple Maestros can be combined to each execute parts of a large load test that can scale out to tens and hundreds of thousands of virtual users. Maestros can be geographically distributed and single test compositions can be geographically distributed while still producing a single integrated set of test results and analytics.
Multiple locations can distribute load among servers or geographic locations or networks. For example, some resources may only be available on certain servers or locations, requiring that a test connect separately to those resources. Or, the test itself may be to access and measure performance from specific geographic locations or networks.
Maestro servers can also be selected from the lower panel of the Composition Editor. Click the Properties tab in the lower toolbar to display the Composition Element tree. Navigate to the track whose Maestro you want to access, and single-click the name in the tree. In the right portion of the lower panel you will see the select control for the Maestro location.
Maestro Server Classes and Their Definitions
There are two classes of Maestro servers, "General" and "Load".
The only difference in behavior between the two is that a Load server will only play one Composition at a time. It will refuse to play another one if it already has one. It can play multiple Tracks from the same Composition, if the Tracks are set up that way, but it cannot mix Tracks from multiple different Compositions.
CloudTest's deployment tools (such as Grids, etc) typically set all environments to have one General server on the main instance, and all others to be Load servers. This is not required and users with adequate permissions wishing to change this can use the Central < Server List and change any Maestro to be whichever type is preferred.
Users comparing options in the Composition Editor > Track, Location drop-down should keep the following in mind when selectng distribution options for a given Track:
- If a Track can play on "Any server", it can play on any server. It cannot play on a Load server that has some other Composition already playing, but it could play on any Load server that the Composition it is within is using.
- Similarly , "Any general server" means what it says—any server of type General, regardless of what else might be happening on that server.
- "Any load server" means it can play on server of type Load. It cannot play on a Load server that has some other Composition already playing, but it could play on any Load server that the Composition it is within is using.
- "Dedicated load server" means the Track must play on a Load server all by itself. It won't play on a General server and it won't play on any Load server that already has some other Track on it. This is the most commonly used setting for Load tests, for obvious reasons.
CloudTest doesn't provide"load balancing" features in separation from these selections, nor does it attempt to "use all servers" or "evenly spread across servers" or similar propositions.
For example, by setting several Tracks in a Composition to "any Load server", then they will likely all go onto the same Load server, because that's what you said for each Track — any Load server will do. On the other hand, if you said "any dedicated Load server", then they will each go on to separate Load servers.
There is curently no way to arbitrarily group Tracks, such as "put these 3 Tracks together on a single Load server, and these 4 other Tracks together on a different Load Server", unless you can do that through the use of Locations. If you need to do something that specific, then you will need to assign the Tracks to specific servers manually.
The "Distributions" U/I allows a Track to be distributed as above, but in multiple ways simultaneously. For example, if a user wants one copy on a dedicated load server in location A and another copy on a dedicated load server in location B.
You can specify a Maestro location for a specific track in one of several ways:
Click the down arrow in the select control underneath the track name in the left portion of the timeline. Then click the radio button for the location that you want to play that track. Please note that if you have only one Maestro server defined in your SOASTA Repository, this drop down will not be visible.
- Choosing a particular location means that you want to allow any Maestro at that location to control the track.
- Choosing Any Location means that you do wish to specify a preference as to which Maestro will control the playback of the track.
- When a track with only an HTTP(S) clip is selected, the Location drop-down contains only Maestro server locations organized by type.
- When clips with a Mobile target(s) & a Server target(s) are combined into one track, the Location drop-down refelects that both devices and servers are available to be configured.
Using Play Options
You can change the way a test composition will play by accessing Maestro locations and servers using the Play Option button in the Composition Editor toolbar.
The Play Options dialog can be used in the Composition Editor to specify certain settings before playing a Composition. These are temporary settings that are not saved within the Composition itself – they are in effect only as long as the Composition Editor is open, and take effect only for the current play(s) of the Composition. As soon as the Composition Editor tab is closed, these settings are discarded.
Play Options come in two types—override settings including Preview Mode and Save Result, and those that are set only through the Play Options dialog box.
- Maestro drop down (Location)
Select the Maestro location or server from the list of configured locations and servers. Location is chosen from a list of servers and locations similar to what is seen when defining a “Distribution” for a Track in the Composition Editor.
When a Composition is played, CloudTest picks the appropriate server(s) on which to play the Composition. It searches all of the available servers, in no particular order, looking for servers that satisfy the requirements of the Distributions of the Tracks.
Choosing a server or location in Play Options specifies where CloudTest is to start that search. This may or may not affect where the Composition is actually played. For example, if none of the Distributions within the Composition can be played on the specified server or in the specified location, then CloudTest will move on to other servers and the setting will not have had any net effect.
However, if some or all of the Composition can be played on the specified server or in the specified location, then it will be. This may cause a different server allocation pattern than the unordered search that is normally done.
In the case where the Composition itself has no requirements for the play location, the Composition will play on the server or in the location specified in Play Options. This can be used to direct a Composition with no preferences to play on a specific server, on a particular type of server, or in a specific location.
For another example, consider a Composition that has its Distributions set to play in a certain location. CloudTest is free to pick any suitable server in that location. However, Play Options could be used to specify a particular server in that location to start the search with. If that server is suitable and available, the Composition will play there.
- Repeat play
Selecting this option causes the Composition to be played multiple times (to "iterate"). When one play is completed, the Composition will be started playing again.
You may select the number of times to play, or an amount of time that the Composition is to iterate. The latter does not ever cause a Composition to be stopped in the middle—after each play CloudTest checks whether the specified amount of time has passed, and if not, plays the Composition again.
If the "Continue on error" option is selected, iteration will continue even if play fails. If it is not selected, then a play that fails will cause iteration to stop, whether or not the specified play count or duration has been reached.
- Preview mode
Check Preview Mode if you’d like to stage server instances and run through the test without any messages being sent. Preview mode is useful in staging large load tests that may involve multiple resources.
This setting overrides the setting within the Composition itself.
If Play Options is used, then the “Save result” setting in the Play Options dialog will be used instead of the setting within the Composition itself. This setting controls whether or not a Result object is created when the Composition is played.
- Save Result
This setting overrides the setting within the Composition itself. If Play Options is used, then the “Save result” setting in the Play Options dialog will be used instead of the setting within the Composition itself.
This setting controls whether or not a Result object is created when the Composition is played.
- Play speed
This setting only affects Timed Clips. It has no effect on Sequenced Clips.
This setting causes the timing of Timed Clips be compressed by an integer multiplication factor. For example, suppose the Composition contained a Timed Clip that sent Messages at 10, 20, and 30 seconds. If Play Options was used to set the play speed at 2 times normal, then the Messages would be sent at 5, 10, and 15 seconds.
Play with options from the Composition list
Play with options can also be accessed control Maestro locations and servers is from the Compositions list.
Right-click the test composition that you want to play and select Play with Options from the context menu.
The Play Composition dialog box appears. Specify any of the Play Options (described above) and then click the Play button.
Specify a Proxy for Maestro to Use
- Administrative users can specify a proxy for Maestro to use by selecting the relevant server under Central > Servers. Then, in the Settings tab, select Maestro from the drop-down and define the following items:
HTTP.Proxy.Servershould be set to the proxy server name or IP address
HTTP.Proxy.Portshould be set to the proxy port number
Configuring a proxy for Maestro will cause all HTTP and SOAP compositions to use that proxy for communicating with target websites. Note that this is a global server setting and all compositions run on that server will be affected. These settings will need to be removed to return Maestro to its prior behavior.