Plug-in Documentation

OneTest

Overview

The One Test plug-in allows for parsing of data from the HCL OneTest testing tool. Data is uploaded to the UrbanCode Velocity server using an HTTP Post request.

Compatibility

Must be running UrbanCode Velocity version 1.2.1 and later to use this plug-in.

Versions

There is no install process for this plug-in. The Coverage Core plug-in is identified to UrbanCode Velocity as a value stream integration. UrbanCode Velocity plug-in images are located in DockerHub and the UrbanCode Velolcity code accesses the version that you select. To view available versions,
see the UrbanCode DockerHub.

History

Version 1.0.11

  • Minor bug fix

Version 1.0.8

  • Update plugin version from 0.x.x to 1.x.x format.

Version 0.0.5

  • Initial release

Usage

The One Test plug-in does not require configuration, like other types of UrbanCode Velocity plug-ins. To use the plug-in upload a code coverage results file to UrbanCode Velocity to parse. Whenever UrbanCode Velocity receives the file, the plug-in parses the data and creates a metric entry.

Integration type

The One Test plug-in parses data from the HCL One Test tool.

Invoking the plug-in

You can invoke the plug-in manually using a REST Call or by using a Jenkins plug-in to integrate UrbanCode Velocity in a Jenkins environment.

Invoke using Jenkins plug-in

Install the UrbanCode Velocity plug-in into your Jenkins server. In your freestyle job or pipeline use the UCV-Upload Metrics File to UrbanCode Velocity step and provide the required fields. This step allows your build job to upload generated coverage results files to UrbanCode Velocity.

Example


pipeline {
   agent any
   stages {
      stage('oneTestMetrics') {
         steps {
            step([$class: 'UploadMetricsFile',  appName: 'My Onetest Test', dataFormat: 'onetestJSON', filePath: '<location of the onetest report>', name: 'my-onetest-test', pluginType: 'onetest', tenantId: '<tenant Id>', testSetName: 'onetest', metricsRecordUrl: '${env.BUILD_URL}'])
         }
      }
   }
}

Invoke the plug-in using a Rest call

When using a REST call to invoke the Code Coverage plug-in, it must be a POST method and include the location of the UrbanCode Velocity quality data endpoint.

The following request sample shows a REST call that you can copy and update as necessary. Key points about the snippet:

  • The URL points to the UrbanCode Velocity quality data endpoint. Update with the server location for your installation of UrbanCode Velocity.
  • The BODY of the call is a multipart/form data. It includes information about the payload.

METHOD: POST 
URL: https://<url_urbancodevelocity_server>/reporting-consumer/qualityData
BODY (multipart/form-data):
 {
  payload: <json_object_string> // See below for schema format
 testArtifact: <HCL_OneTest_JSON_file>
 }

The following shows the schema for the payload. Replace the angle brackets with your values for the parameters.


{
  "tenant_id": "<tenant_id>",    // required Tenant ID
  "metricName": "<metric_name>", // optional: name for recurring test set
  "application": {
    "name": "<application_name>"  //Name of application
  },
  "record": {
    "recordName": "<record_name>", // optional: Name for this record
    "executionDate": 1547983466015, // optional: UNIX Epoch
    "pluginType": "onetest",
    "dataFormat": "onetestJSON",  // OneTest data
    "metricsRecordUrl": "<Jenkins_build_url>" // optional: To link the Jenkins build with test results
 },
  "build": {  // Optional: One of the following fields must be included 
    "buildId": "<build_id>",
    "jobExternalId": "<external_job_id>",
    "url": "<build_url>",
  },
  "commitId": "<commit_id>",  // optional
  "pullRequestId": "<pullrequest_id>", // optional
  "environment": "<environment_name>" // optional
}

Example: Invoking using Curl

curl --request POST \
--url https:///reporting-consumer/qualityData \
--form 'payload={
"tenant_id": "5ade13625558f2c6688d15ce",
"application": {
"name": "My Application"
},
"record": {
"pluginType": "onetest",
"dataFormat": "onetestJSON"
}
}
' \
--form testArtifact=@test-result/oneTest.json