https://github.com/jenkinsci/eggplant-runner-plugin
Eggplant DAI Runner enable integration of DAI test configuration execution in pipeline
https://github.com/jenkinsci/eggplant-runner-plugin
builder cli devops eggplant java jenkins keysight pipeline plugin test
Last synced: 11 months ago
JSON representation
Eggplant DAI Runner enable integration of DAI test configuration execution in pipeline
- Host: GitHub
- URL: https://github.com/jenkinsci/eggplant-runner-plugin
- Owner: jenkinsci
- License: mit
- Created: 2022-03-23T13:31:11.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2025-05-15T03:57:47.000Z (about 1 year ago)
- Last Synced: 2025-05-15T04:34:45.880Z (about 1 year ago)
- Topics: builder, cli, devops, eggplant, java, jenkins, keysight, pipeline, plugin, test
- Language: Java
- Homepage: https://plugins.jenkins.io/eggplant-runner/
- Size: 303 KB
- Stars: 3
- Watchers: 3
- Forks: 5
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README

# Eggplant DAI Plugin for Jenkins
## Introduction
The [Eggplant DAI](https://www.eggplantsoftware.com/digital-automation-intelligence) Plugin for Jenkins launches DAI tests from within a Jenkins pipeline. You can use it to continuously test your application using Eggplant's [model-based approach to testing](https://docs.eggplantsoftware.com/docs/dai-using-eggplant-dai/). For more information about Eggplant, visit https://www.eggplantsoftware.com.
## Install Eggplant DAI Plugin for Jenkins
**Step 1:** Login to your Jenkins
Go to your Jenkins home page and login into your Jenkins account

**Step 2**: Manage Jenkins
- Go to Manage Jenkins > Manage Plugins

- Go to **Available** and enter **Eggplant Runner** in the search feature
- Check on the **Eggplant Runner** and click on **Install without restart**

## How to use Eggplant DAI Plugin for Jenkins
### Freestyle project
**Step 1** : Create new project -> **Freestyle project** -> Click **OK**

**Step 2**: Add **Eggplant Runner** as build step

**Step 3**: Fill in **Eggplant Runner** parameter's value -> Click **Save**

## Inputs
### `serverURL`
**[Required]** The URL of the Eggplant DAI server, `http(s)://dai_server_hostname:portnumber`.
### `testConfigID`
**[Required if testConfigName is not given]** The ID of the Eggplant DAI test configuration that you want to run, e.g. `389fee3e-9d6b-43e6-b31e-f1d379f27cdf`.
Test configuration ID can be obtained by go to `Test Config > Look for a particular test config > Test config id can be obtain from url`.

Alternatively, use [testConfigName](#testconfigname) and remove this input.
### `testConfigName`
**[Required if testConfigID is not given]** The name of the Eggplant DAI test configuration that you want to run.
Must provide ***one*** of the following supporting arguments:
- ### `modelName`
DAI model name for the specified test configuration. (Use this argument if only testConfigName is provided)
- ### `suiteName`
DAI suite name for the specified test configuration. (Use this argument if only testConfigName is provided)
### `clientID`
**[Required]** The client ID to use to authenticate with the Eggplant DAI server.
### `clientSecret`
**[Required]** The client secret to use to authenticate with the Eggplant DAI server.
Alternatively, you could set a repo secret in `Repo Settings > Secrets > Actions` and refer to it like below:
`clientSecret: "${{ secrets.DAI_CLIENT_SECRET }}"`.
The **DAI Client Secret** can be obtain by go to `http(s):/dai_server_hostname:portnumber/ > System > API Access > Add New`. (for new API access creation)

### `requestTimeout`
**[Optional]** The timeout in seconds for each HTTP request to the Eggplant DAI server.
**Default:** `30`
### `requestRetries`
**[Optional]** The number of times to attempt each HTTP request to the Eggplant DAI server.
**Default:** `5`
### `backoffFactor`
**[Optional]** The exponential backoff factor between each HTTP request.
**Default:** `0.5`
### `logLevel`
**[Optional]** The logging level.
**Default:** `INFO`
### `CACertPath`
**[Optional]** The path to an alternative Certificate Authority pem file.
### `testResultPath`
**[Optional]** The path to a file where the test results will be stored in JUnit XML format.
**Example** `C:\results\result.xml`
### `eggplantRunnerPath`
**[Optional]** The path to Eggplant runner CLI executable.
### `parameters`
**[Optional]** The global parameter(s) to override in the format `parameter_name=parameter_value`.
**Example** `username=Lily`
You can override multiple parameters by separating them with a two semi-colon delimeter (`;;`).
**Example** `username=Lily;;city=Paris;;hobby=Jogging`
### `parametersFilePath`
**[Optional]** The path to a user-created JSON file that contains the global parameters you want to override.
Example of a parameter JSON file:
```json
{
"MyEnvironment": "Production",
"username": "Eggy@eggplant.com"
}
```
### `filterBy`
**[Optional]** The filters to execute specific steps within a test configuration in the form of `filter_name=filter_value`.
**Example** `step_status_include=Failed,Error`
You can enter multiple filters by separating them with a two semi-colon delimeter (`;;`).
**Example** `step_status_include=Failed,Error;;test_case_name_exclude=login_user`
Filter available: `step_status_include`, `step_status_exclude`, `test_case_tag_include`, `test_case_tag_exclude`, `test_case_name_include`, `test_case_name_exclude`, `scenario_tag`
### `filterByJson`
**[Optional]** The path to a user-created JSON file that contains all the filters to execute specific steps within a test configuration.
Example of a test configuration's step execution filter JSON file:
```json
{
"step_status": {
"include": "Passed,Failed",
"exclude": "Error,Cancelled,Untested"
},
"test_case_tag": {
"include": "admin, tc_tag1",
"exclude": "logic module, critical"
},
"test_case_name": {
"include": "tc_001",
"exclude": "login_user"
},
"scenario_tag": "@scea,@input_tag ~@order_page"
}
```
### `previousTaskInstanceID`
**[Optional]** The UUID of a previously executed test configuration definition to be used in the current test configuration run. Defaults to the last ran execution of the given test configuration.
## Output
**Build** the project to run the step

Execution details are shown in **Console Output**

## Advanced Usage
**Pipeline project**
**Step 1**: Create **Pipeline** project
**Step 2**: Copy and paste below scripts into **Pipiline script** section
```yaml
pipeline {
agent any
environment {
DAI_CLIENT_SECRET = credentials('eggplant-runner-client-secret')
}
stages {
stage('Eggplant Runner') {
steps {
// To run DAI test configuration by test config Id, use the following command
eggplantRunner serverURL: 'Your DAI server URL', testConfigId: 'Your test configuration that want to execute', clientId: 'Your DAI client ID'
// To run DAI Test Configuration by Test Config Name with model name, use the following command
// eggplantRunner serverURL: 'Your DAI server URL', testConfigName: 'Your model-based test configuration name', modelName: 'Your model name', clientId: 'Your DAI client ID'
// To run DAI Test Configuration by Test Config Name with suite name, use the following command
// eggplantRunner serverURL: 'Your DAI server URL', testConfigName: 'Your script-based test configuration name', suiteName: 'Your suite name', clientId: 'Your DAI client ID'
//Note: Only execute one of the command per each build step
}
}
}
}
```
>:warning: **Usage of backslashes in script**: Remember to escape backslashes by replace all instances of `\` with `\\` inside a string.For example, rather than:`CACertPath: "C:\certs\rootCA.cer"`you would use:`CACertPath: "C:\\certs\\rootCA.cer"`

**Step 3**: Setup **Public Credential** for **Client Secret** -> Click **Ok**

**Step 4**: **Build** the pipeline project
Output are shown in **Console Output**

## Release for DAI
DAI Version
Release
25.2.0+5
latest
25.1.0+3
0.0.1.285.v30ff1ea_cd533
7.5.0-10
0.0.1.284.va_b_a_6107c0515
7.5.0-9
0.0.1.280.vfc393dfee9f1
7.4.0-4
0.0.1.274.ve12295250d73 (with cve fix)
0.0.1.270.vcb_9192a_2c004 (works with 7.4.0-4)
7.3.0-3
0.0.1.265.v56273b_eece56
7.2.0-4
0.0.1.261.v52442e5f8514
7.1.0-5
0.0.1.259.va_548428d4b_79
7.0.1-1
0.0.1.255.vd38258d75ca_6
7.0.0-3
0.0.1.252.v8e47de80211e
6.5.0-3
0.0.1.247.va_7031a_586298
6.4.0-5
0.0.1.226.v1a_ff67035775
6.3.0-3
0.0.1.191.v72dea_07931b_6 | 0.0.1.189.v1e3397db_cee8
6.2.1-2
0.0.1.185.v9617008ee458 | 0.0.1.159.v8ed1d9f67f00
6.1.2-1
0.0.1.108.v32f1564b_19d0
## License
This plug-in is licensed under the terms of the [MIT license](LICENSE.md)
## Notes
1. Release DAI 7.5.0-10 now allows passes after re-run.
2. For pipeline project in Mac, if `parameters`/`filterBy` input having quotes `"`, they need to be escaped.
## Contributing
You need to install the following dependencies if you want to contribute to the Eggplant DAI Runner for Jenkins:
1. You can download and install Java 17 from the [Eclipse Temurin website](https://adoptium.net/).
2. Download Maven from the [Apache Maven website](https://maven.apache.org/). Make sure to download one of the binary archives (with bin in their name).
3. To verify that Maven is installed, run the following command: `mvn -version`
4. You can use `launch.json` to run 'Debug (Attach)' to launch an local Jenkins instance for development.