etf-validator / governance

ETF Steering Group and the Technical Committee documents
1 stars 2 forks source link

Reusable Test Objects #26

Closed jonherrmann closed 2 years ago

jonherrmann commented 6 years ago

ETF Improvement Proposal (EIP)

Background and Motivation:

The workflow of ETF v2 has been mainly developed for public deployments: the user selects an ETS, uploads the test data or enters the URL of a web service and starts the test run. To rerun modified datasets or web services, you need to upload files or re-enter the URL of the service.

Within an organization that mostly tests the same services with specific URL or datasets that are in specific locations (e.g. a network drive), this workflow should be optimized.

Proposed change

Support the creation of Test Objects that reference a service or the location of a dataset and that can be reused in test runs.

Additionally to the "simple" workflow for public deployments, there could be another "org-internal" workflow for organisations. A draft for the workflow and the web interface is described in EIP #27.

This EIP is about the changes in the REST interfaces which can also be implemented before the changes in the web interface and the implementation of the complete workflow.

The workflow could be configured in the etf-config.propeties configuration file. The default workflow would be set to "simple".

The Test Object REST controller must be changed to allow the creation of reusable test objects if the "org-internal" workflow is configured.

The controller would accept Test Object JSON objects that possess:

where resource can either be a reference to a web service or a relative path in the ETF test data directory. The ETF data directory could be shared in an organization-internal network so that users could upload the test data on a network drive.

This is an example for the definition of a web service that could be send to the interface:

{
 "label": "Our WFS 2",
 "description": "Internal WFS service",
 "resources": {
      "serviceEndpoint": "http://example.com/service?SERVICE=WFS&REQUEST=GetCapabilities"
  }
}

and this an example for the definition of a data test object:

{
  "label": "GML data sets",
  "description": "On mounted network drive X",
  "resources": {
      "data": "/data_delivery_3"
  }
}

In the web interface the user should be able to:

Alternatives

none considered

Funding

Full funding available.

Additional information

jonherrmann commented 2 years ago

Implemented in Version 2.1.0