Skip to main content

Reference Library

Go Search
Reference Library
  
Reference Library > Wiki Pages > Using The Load Tester  

Using The Load Tester

 

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

Figure 1

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.

Connecting to a Service

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.

Selecting a Map

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.

Selecting a Layer

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.

The “General” Tab

Figure 2

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.

Types of Tests

Figure 3

·         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

The “Envelope” Tab

Figure 4


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.

The “Images” Tab

Figure 5

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”.

Running a Test

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.

GetMap Status

Figure 6


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

GetMap Last Image

Figure 7


This is the last image that was rendered.

GetMap Summary

Figure 8


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.

Querying - “General” Tab

Figure 9


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.

Querying - “Filters” Tab

Figure 10


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.

Querying - “Filter Transformations” Tab

Figure 11


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.

Querying - “Result Transformations” Tab

Figure 12


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.

SpatialQuery - Status and Summary

These provide information about query performance much as the do about rendering performance for a GetMap request.

SpatialQuery - Last Results

Figure 13


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.

SpatialQuery - Last Image

Figure 14

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.

Transforms - “General” Tab

Figure 15


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.

Transforms - “Source and Result Shape CoordSys” Tab

Figure 16


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

Transforms - “Interim Buffering Projection” tab.

Figure 17


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.

Transforms - Last Results

Figure 18


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.

Transforms - Last Image

Figure 19


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

 

 

 

 

 

 

This table illustrates features and limitations of various data and transform providers.

Last modified at 11/11/2008 6:13 PM  by WEB\mark