SensorThings API (STA) 1.0 Conformance Test Suite


This test suite verifies conformance with SensorThings API (STA) 1.0. It is based on the following OGC specifications:

  • OGC SensorThings API, Version 1.0 OGC 15-078 (Has not been released. This the the draft specification)

Test Coverage by Conformance Class

The following table provides information about the conformance class that are implemented in the test and reference to the section in the specification.

Conformance Class Reference Test Class
SensorThings API Sensing Core A.1 org.opengis.cite.sta10.sensingCore.Capability1Tests
SensorThings API Filtering Extension A.2 org.opengis.cite.sta10.createUpdateDelete.Capability2Tests
SensorThings API Create-Update-Delete A.3 org.opengis.cite.sta10.filteringExtension.Capability3Tests

Classes A.4 to A.8 have not been implemented.

Preconditions and Postconditions

Here are the preconditions and postconditions for running SensorThings Test Suite on a service.


The service under test should have a small number of each entity type in SensorThings. In other words, the service under test needs to have at least one entity for each entity type and the number of entities for each entityType must be less that the pagination limit. It means that we can access the entities of each entity type without the need to follow the @iot.nextLink. If your service supports “Deep Insert” You can POST the following JSON to create the required entities before starting the test: { "description": "thing 1", "name": "thing name 1", "properties": { "reference": "first" }, "Locations": [ { "description": "location 1", "name": "location name 1", "location": { "type": "Point", "coordinates": [ -117.05, 51.05 ] }, "encodingType": "application/vnd.geo+json" } ], "Datastreams": [ { "unitOfMeasurement": { "name": "Lumen", "symbol": "lm", "definition": "" }, "description": "datastream 1", "name": "datastream name 1", "observationType": "", "ObservedProperty": { "name": "Luminous Flux", "definition": "", "description": "observedProperty 1" }, "Sensor": { "description": "sensor 1", "name": "sensor name 1", "encodingType": "application/pdf", "metadata": "Light flux sensor" }, "Observations":[ { "phenomenonTime": "2015-03-03T00:00:00Z", "result": 3 }, { "phenomenonTime": "2015-03-04T00:00:00Z", "result": 4 } ] }, { "unitOfMeasurement": { "name": "Centigrade", "symbol": "C", "definition": "" }, "description": "datastream 2", "name": "datastream name 2", "observationType": "", "ObservedProperty": { "name": "Tempretaure", "definition": "", "description": "observedProperty 2" }, "Sensor": { "description": "sensor 2", "name": "sensor name 2", "encodingType": "application/pdf", "metadata": "Tempreture sensor" }, "Observations":[ { "phenomenonTime": "2015-03-05T00:00:00Z", "result": 5 }, { "phenomenonTime": "2015-03-06T00:00:00Z", "result": 6 } ] } ] }


If you are testing only “Sensing core” there will be no postcondition.
If you are testing “Create-Update-Delete” or “Filtering extension”, after finishing the test process, all the data in the service under test will be DELETED.

Release Notes

Release notes are available from the relnotes.html.