Eggplant Runner

Introduction

The Eggplant DAI 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. 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 image

Step 2: Manage Jenkins

  • Go to Manage Jenkins > Manage Plugins image

  • Go to Available and enter Eggplant Runner in the search feature

  • Check on the Eggplant Runner and click on Install without restart image

How to use Eggplant DAI Plugin for Jenkins

Freestyle project

Step 1 : Create new project -> Freestyle project -> Click OK

image

Step 2: Add Eggplant Runner as build step

image

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

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. image Alternatively, use 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)

image

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

pollInterval

[Optional] The number of seconds to wait between each call to the Eggplant DAI server
Default: 5

testEnvironmentTimeout

[Optional] The timeout in seconds for checking test environment readiness
Default: 15

logLevel

[Optional] The logging level
Default: INFO

CACertPath

[Optional] The path to an alternative Certificate Authority pem file

testResultPath

[Optional] 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

Output

Build the project to run the step image

Execution details are shown in Console Output image

Advanced Usage

Pipeline project

Step 1: Create Pipeline project

Step 2: Copy and paste below scripts into Pipiline script section

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
            }
        }
    }
}

⚠️ 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"

image

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

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

Release for DAI

License

This plug-in is licensed under the terms of the MIT license

Releases Note

30th May 2022

  • Fix Jenkins Plugins "Eggplant Runner" Client Secret textbox behaviour.

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 11 from the Eclipse Temurin website.
  2. Download Maven from the Apache Maven website. 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.