MDNSLoadTester is a utility for testing MapDotNet Server web sevice and WCF sites. It lets you test various features of the sites against any map available and it allows you to run single tests or to run batches of tests to measure performance under load.
Download Link: MapDotNet Server v6.5 Load Tester
Getting Started

This is the load tester. Note that there is a URL entry at the top, lists of Map ID and Layers, a set of function tabs, “Run Test” and “Stop” buttons, and a set of result tabs.
The load tester will initially attempt to connect to the last service that was used, or to a default service if this is the first time you used it. To change services, select or enter a web service or WCF URL. Click “Connect”. The load tester will attempt to connect to the service. On success, it will display all available maps, select the first one, and show available layers.
If you select another map, the load tester will retrieve available layers for that map. The selected map will be used for any tests that are run.
When a map is initially selected, “All” layers are selected. For a GetMap request, all layers will be drawn. For a SpatialQuery test, a layer will be selected randomly. To map or query only a specific layer, select that layer.

This is where you select the type of test, the number of threads to run tests with, the number of attempts per thread, and the delay (in milliseconds) between attempts on a given thread.

· GetMap - retrieves a map image
· GetLegend - retrieves a map legend
· GetLegendIcon - retrieves an icon for a single layer class
· SpatialQuery - executes a query
· WMSGetCapabilities - executes a GetCapabilities call to the WMS service
· WMSGetMap - executes a GetMap call to the WMS service
· Transform - executes a transform/buffer request for one or more shapes

When you change maps, this tab is loaded with the map initial extents. You may edit these extents. If “Manually Set” is checked, the extents shown are used for map requests and to generate shapes used for queries and transforms. If “Randomize” is checked, random envelopes within this one are generated and used for these purposes. If you are randomizing, you may optionally provide a seed value for the randomizer for repeatable ”random” testing.

Visit this tab if you want to see image results for various tests. Select the size of the image and, to see images for GetMap, GetLegend, or GetLegendIcon tests, check “Load Last Image”.
Click the “Run Test” button to run a test. You can click the “Stop” button to end testing, but testing will not stop until each thread that is running completes the test that it is currently processing.
GetMap Tests
Selecting the “GetMap” test type and making selections on the tabs above are all you need to do to test map rendering.

Here we see the results of testing GetMap with ten threads making ten results each.

This is the last image that was rendered.

This is a summary of the results. Note that RPS is not applicable to a GetMap summary- it is used for a SpatialQuery summary.
GetLegend and GetLegendIcon Tests
These behave very similarly to GetMap Tests.
SpatialQuery Tests
Use the “Querying” tab to set up SpatialQuery tests. There are four sub-tabs.

Here you select what data to return, whether and how to sort results, how to display results, and whether to use the “native” underlying data source or the Proj engine to do coordinate transformations. See “Provider Features” below for provider limitations with respect to transformations and note that buffering is done natively.

On this tab you select the type of shape to generate for filtering and the filter operation to perform, and enter any attribute filter (the text that would be used in a WHERE clause) to apply.

If the filter is not in the same coordinate reference system as the data to be queried, you must check “Transform Filter to Layer CoordSys” and enter the CoordSys the filter is in. Whether to provide a numeric SRID and a string of Proj4 or WKT text will depend on whether you are using native transforms and if so, what the underlying data source is. See “Provider Features” below.
You may also buffer the filter shape. If you are doing both a buffer and a transform, you should select the sequence to do them in. Radius should be in the units the data is in at the time it is buffered, except for Oracle data sources which expect meters when the data is in decimal degrees.

This tab is where you indicate whether to transform and/or buffer the results returned from a query. A common instance where you would buffer results is where a layer is in a different coordinate reference system from the map itself and is being projected. In this case, you would have needed to transform the filter from the map’s reference system and you might want to transform the results into the map’s reference system. The inputs look the same as the prior tab, but whereas on the prior tab you entered the CoordSys the filter was in prior to transforming it into the data’s CoordSys, on this screen you enter the CoordSys you want the results transformed into from the data’s CoordSys.
These provide information about query performance much as the do about rendering performance for a GetMap request.

This shows values returned from a query. What is returned is based on what was selected on the Querying-General tab. In this case, attributes, shapes, shape bounds, and result set bounds were all selected. Note that shapes and bounds are returned as serialized Shape and Envelope objects.
Click “Map Results” for a graphical representation of shapes and bounds returned. The image will be displayed on the “Last Image” tab.

You must click “Map Results” on the “Lsat Results” tab to populate this. The layer queried is rendered. The filter shape is blue (looks purple on this due to overlaid result polygons). Result shapes are red, shape bounds are yellow, result set bounds are purple. Note that result shapes and bounds are only shown if they were returned. If the returned shapes are not in the map’s CoordSys they will be displaced (and may not be present on the image if result set bounds were not returned).
Transform Tests
Use the “Transforms” tab to set up transform tests, which test transforming and buffering a set of input shapes. There are three sub-tabs.

On the general tab you select the transform provider from a dropdown. “Proj” is the internal transform engine and all supported databases can be used for transforms. For Providers other than Prof, a connection string must be supplied. This should be in the same format as used in map file layers that reference such a provider. Certain providers supported only limited features or require additional software on the server hosting the MapDotNet Server Web Service or WCF host. See “Provider Features” below.
You can also select whether to buffer the shape, the sequence of buffering and transforming when both are performed, the number of shapes to generate for the operation, and the type of shape.

This tab is where you indicate any coordinate reference system transformation that should be included in the transform operation.

This tab is where you set up an interim buffering projection. This is generally done when you are buffering data that is in geographic coordinates and you are not doing any transformation. This avoids creating inaccurate buffers due to degrees of longitude being of a different distance apart than degrees of latitude.
Projection should always be a projected coordinate reference system.
An underlying geographic CoordSys is not needed when using WKT text for the projection as the underlying geographic CoordSys can be inferred in this case.
An interim buffering projection is not needed when using Oracle to buffer data that is in geographic coordinates. Oracle will do an implicit projection in this case and expects the buffer radius to be in meters.

The source and result shapes are shown. If you click “Map Results”, these shapes will be rendered over whatever underlying map is selected. Unlike results mapped from querying, the result layer will be set up to indicate the projection the layer is in so that results can be seen overlaying their sources. Note: this feature is not supported when using WKT text for CoordSys representation.

Source shapes are drawn broadly in red, result shapes in blue. Whatever map is selected is rendered also (all layers are rendered.)
Provider Features
|
Provider |
Supports
Buffers |
Supports
Transforms |
Additional software required on server |
|
|
Geographic CS buffered in meters |
|
SRID |
Proj4 Text |
WKT
Text |
|
Proj |
|
|
x |
x |
x |
|
|
|
Native providers. |
|
MS_SDE |
x |
|
x |
|
|
x |
C SDK for ArcSDE |
|
MS_POSTGIS |
x |
|
x |
x |
|
|
|
|
MS_ORACLESPATIAL |
x |
x |
x |
x |
|
|
Oracle Client |
|
MS_SPATIALDB |
x |
|
|
|
|
|
|
|
MS_MSSQL2008 |
x |
|
|
|
|
|
|