Artifact repository connector
Description
The artifact repository connector for Executable Bundles provides a seamless integration with classical artifact repositories like Nexus. It enables the retrieval and execution of Executable Bundles that are deployed on artifact repositories. The main use-case of this plugin is the integration with CI/CD pipelines. A common workflow relying on this feature looks as follow:
- Development of step Executable Bundles along with the source code of the application to be tested
- Build of the Executable Bundles as part of the CI pipeline and deployment of the Executable Bundles to an artifact repository
- Trigger of the central execution of the Executable Bundles on a step Controller by the CI pipeline via artifact repository plugin
Usage
The artifact repository connector works like any other repository plugin like ALM, Jira, etc. It retrieve Executable bundles from an Artifact repository via HTTP and executes all the Plans contained in the bundle.
To start the execution of a an Executable Bundle using artifact repository connector you have 2 options:
- Manual start via STEP UI
- Trigger the start via Step Client or REST API
Manual start via STEP UI
Navigate to http://mycontroller:8080/#/root/repository?repositoryId=HTTP&UrlPackage=…&UrlAuth=…
The following parameters allow to execute the embedded plans of a jar:
- UrlPackage: the URL to the jar containing the keywords and plans
- UrlAuth: Optional, the username needed for authenticating to the HTTP server. The password should be given in the controller’s step.properties as httprepository.passwords.user=password
- NbThreads: Optional, the number of threads used by the TestSet
Execution via the Step Client
try (StepClient client = new StepClient("url","user","password")) {
ExecutionParameters executionParams = new ExecutionParameters();
executionParams.setMode(ExecutionMode.RUN);
executionParams.setUserID("user");
executionParams.setDescription("description");
RepositoryObjectReference repoObject = new RepositoryObjectReference();
repoObject.setRepositoryID("HTTP");
Map<String, String> repoParameters = new HashMap<String, String>() {{
put("UrlPackage","https://myserver/mypackage.jar");
put("UrlAuth","myUser");
}};
repoObject.setRepositoryParameters(repoParameters);
executionParams.setRepositoryObject(repoObject);
String executionID = client.getExecutionManager().execute(executionParams);
}
Execution via REST
POST /rest/controller/execution
{
"repositoryObject": {
"repositoryID": "HTTP",
"repositoryParameters": {
"UrlPackage": "https://my.nexus.ch/repository/maven/ch/exense/my_tests.jar",
"UrlAuth": "nexus-user",
"UrlPackage": "https://my.nexus.ch/repository/maven/ch/exense/my_tests_dependencies.jar",
}
},
"description": "my_tests",
"mode": "RUN",
"userID": "me",
"customParameters": {
"env": "PROD",
"URL": "http://my.site.com/"
}
}