Eggplant DAI RunnerIntroductionThe Eggplant Runner extension for Azure DevOps is an Eggplant DAI integration tool that enables you to launch DAI tests from within an Azure DevOps workflow pipeline. With this extension, you can continuously test your applications with DAI’s model-based approach to testing. For more information about testing software with Eggplant, visit: https://www.eggplantsoftware.com. Specifically, the Eggplant Runner integrates with DAI by communicating with DAI-provided API services to run test configurations. Using Eggplant DAI Runner in your workflowStep 1: Navigate to the Azure DevOps tab on the Visual Studio Marketplace site, search for Eggplant Runner, and click it when it appears in the list of suggested results. Step 2: Click Get it free to display the Azure DevOps Organization and Download page. Step 3: Select the Azure DevOps organization that you want to install the extension for and click Download. Step 4: Click Proceed to organization. Step 5: Create pipeline .yml in the project and click Edit at the pipeline. Step 6: At the Tasks search bar, enter Eggplant Runner and click it when it appears in the list of suggestions. Step 7: Fill in the Eggplant Runner input values: the DAI version, your DAI Server URL, how you want to run your test config, and your DAI client ID and secret, and click Add. Step 8: Review the add information in the azure-pipelines.yml file. Step 9 (Optionally): Configure your pipeline to access the DAI client secret from a variable as follows:
Inputs
|
Selection | Value |
---|---|
By Test Config Id | ById |
By Test Config Name & Model Name | ModelBased |
By Test Config Name & Suite Name | ScriptBased |
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 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 delimiter of two semi-colons (;;
).
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:
{
"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 delimiter of two semi-colons (;;
).
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:
{
"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
Pipeline triggered
Based on the pipeline .yml configuration, when there is commits or pull request action performed. The pipeline will be triggered and Eggplant DAI Runner will be executed.
Console Output
Notes
- Eggplant DAI Runner supports 3 type of operating system:
- Linux
- Windows
- MacOS
If the input for your parameters/filterBy in yml contains the single quote (
'
) special characters, you must replace it with two single quote characters (''
).
This is because single quote characters that are not escaped are used to wrap all the parameter input.
Exampleparameters: 'value="one'' quote"'
Release version 2.0.16 now allows passes after re-run.