Description
TestNG is a testing framework for Java programming
TestNG is a testing framework for Java programming
The TestNG plug-in provides for integration with a TestNG server. Data is uploaded to the HCL Accelerate server using an HTTP Post request.
HCL Accelerate version 2.0 or later
The following table describes the changes made in each plugin version.
Version | Description |
---|---|
1.0.13 | Bug fix |
To use the TestNG plug-in, the plug-in must be loaded and an instance created. Load the plug-in into the HCL Accelerate container if necessary. From the user interface, click Settings > Integrations > Plugins. On the Plugins page, locate the plug-in and click Load Plugin. To create an instance, locate the plug-in and click Install. The plug-in is now listed below those plug-ins to be installed and available for invoking.
The TestNG plug-in is a parser type plug-in. It parses TestNG data sent in a JSON or XML file.
To gather data from the TestNG server, send an HTTP Post request with the data to parse. Whenever a there is a hit to the endpoint, the data is parsed and displayed as metrics in HCL Accelerate. You can use various methods such as Postman, REST calls, CURL, and CI/CD tools like Jenkins to invoke the plug-in endpoints.
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 HCL Accelerate.
pipeline {
agent any
stages {
stage('testNGMetrics') {
steps {
step([$class: 'UploadMetricsFile', appName: 'My TestNG Test', dataFormat: '<testngJSON or testngXML>', filePath: '<location of the testng report>', name: 'my-testng-test', pluginType: 'testng', tenantId: '<tenant Id>', testSetName: 'testng', metricsRecordUrl: "${env.BUILD_URL}"])
}
}
}
}
When using a REST call to invoke the Code Coverage plug-in, it must be a POST method and include the location of the HCL Accelerate quality data endpoint.
The following sample shows a REST call that you can copy and update as necessary. Key points about the sample:
METHOD: POST
URL: https://<url_hclaccelerate_server>/reporting-consumer/metrics
BODY (multipart/form-data):
{
payload: <json_object_string> // See below for schema format
testArtifact: <testng JSON/XML>
}
curl --request POST \
--url https://url_hclaccelerate_server>/reporting-consumer/metrics \
--form 'payload={
"tenant_id": "5ade13625558f2c6688d15ce",
"application": {
"name": "My Application"
},
"record": {
"pluginType": "testng",
"dataFormat": "testngJSON"
}
}
' \
--form testArtifact=@test-result/testng.json
The following shows the schema for the payload.
{
"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": "testng",
"dataFormat": "<<data_type>", // testngJSON or testngXML
"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
}
Uploaded: 12-Jun-2024 06:26
Uploaded: 31-May-2022 16:32
docker pull hclcr.io/accelerate/ucv-ext-testng:1.0.38
Uploaded: 08-Feb-2021 07:43
docker pull hclcr.io/accelerate/ucv-ext-testng:1.0.13