- Getting Started
- Studio
- Orchestrator
- Testing robots
- Test Manager
- CI/CD Integrations
Test Suite User Guide
Job Tasks
Your pipeline is composed of different stages, that in turn, can be broken down into jobs. For each job, you can configure the steps to include the UiPath tasks, included with the UiPath Integration for Azure DevOps.
Folder not found
message is displayed, and the task is not performed. Learn more about classic folder removal here.
To prepare your environment, see Azure DevOps extension prerequisites.
Before you start executing tasks in your pipeline, consider the following:
- You need to execute UiPath tasks only on Windows-based build agents.
- Configure UiPath Orchestrator service connection.
- Testing features requires Orchestrator version 2020.4 or higher.
- If you use an on-premises version of Orchestrator with HTTPS, import the SSL certificate to make sure that HTTPS calls to Orchestrator are trusted.
The Azure DevOps Extension comes with a built-in CLI (Command-Line interface ) that is specific to UiPath.
When you run over the build agent, the CLI communicates with Orchestrator and allows you to execute your job tasks.
Agent.ToolsDirectory
(Azure cache) when executing it for the first time.
Agent.ToolsDirectory
, in order to finish the execution.
Agent.ToolsDirectory
(Azure cache), the system automatically downloads it from the NuGet public feed. A requirement for this is that the NuGet
public feed is not blocked by a firewall, and can be accessed from your build agent.
Agent.ToolsDirectory
, using the Install Platform task.
To define an automation procedure in your pipeline, you need to add and configure individual tasks to the agent pool.
- In Azure DevOps and go to Pipelines.
- Create a new pipeline or edit an existing one.
- Add a job to the agent pool.
-
Search for one of the following tasks:
- UiPath Run Job
- UiPath Manage Assets
- UiPath Install Platform
- UiPath Pack
- UiPath Deploy
- UiPath Test
- Click Add and configure the task.
- Rearrange the tasks in the agent pool if needed and then save your pipeline.
You can use this task to execute a process that's been already deployed on an Orchestrator instance. For more information, see Processes and Jobs.
Use the following table to configure the UiPath Run Job inputs.
Input | Description |
---|---|
Display name (Required) | Enter a name for your task. |
Orchestrator connection (Required) | Configure the service connection to access UiPath Orchestrator services. You can configure a connection only for this step or use an existing global connection. For more information, see Configuring UiPath Orchestrator service connection. |
Process (Required) | The process is the package version that is linked to a particular folder type. You need to configure this input based on the
type of folder on which the process is deployed.For modern folders, the input is the name of the process that's listed in
the Processes tab. To find out the process name, you can open Orchestrator, open your folder, and navigate to Automations > Processes.For classic folders (deprecated), the input is the name of the process name, followed by and underscore, and then the environment
name, where the Robots are hosted.As an example for this naming convention, consider the following variables: The name of
the process isTestAutomation . The name of the environment is Production .Your process name for this input is TestAutomation_Production .
|
Input parameters | Specify the file path to a JSON input file, such as Input\jobParameters.json .
JSON file format example:
|
Priority | Select the priority of the job execution if you want to set a specific order at the process level. By default, this input
is set to Normal .
|
Orchestrator folder (Required) | Specify the folder where the process is being deployed. For classic folders, you can use specific robot names. For modern
folders, you can use specific user and machine names.
To input subfolders make sure to input both the parent folder name and the name of the subfolder. For instance, use AccountingTeam\TeamJohn. |
Strategy | Specify the execution strategy for dynamic allocation or robot-specific. For dynamically allocated jobs, the process is executed under the account and machine that is available. Alternatively, you can choose robot-specific jobs. |
Job Type | Available only on modern folders.Choose the license model of the runtime under which the job is to be executed. For more information, see Robot licensing. |
No. of jobs | Available only for dynamic allocation strategy.Specify the number of times you want to run this task. By default, this input
is set to 1 .
|
User | Available only on modern folders alongside a dynamic allocation strategy.Add the machine username. For example, a local user
for this input is MachineName\UserName .
|
Machine | Available only on modern folders alongside a dynamic allocation strategy.The name of the machine that runs the execution. |
Output | The results are collected in a JSON file. You need to specify the path of the job results (e.g., Output\testResults.json ). If you leave this input blank, the default output is sent to the artifact staging directory under the following name UiPathResults.json .
|
Timeout | Specify the number of seconds to wait before the request times out. |
Fail task when job fails | Select this input if you want to set the task as failed when at least one job failed. This input is selected by default. |
Wait for job completion | Wait for job run completion. This input is selected by default. |
Trace Level | Select the logging level from the dropdown list. |
robotsIds | Comma-separated list of specific robot names. |
- task: UiPathRunJob@2
displayName: 'Start ProcessProject'
inputs:
#orchestratorConnection: 'service-connection-name' # Service connection to UiPath Orchestrator
#processName: 'ProccessProject_CI-Pipeline' # The name of the process
#parametersFilePath: 'Input\\jobParameters.json' # json file with input values if the process requires them
#priority: 'Low' # Options 'Low', 'Normal', 'High'
#folderName: 'MyFolder' # Specify the folder to deploy to. For clasic folders, you can use specific robot names. For modern folders, you can use specific user and machine names.
#strategy: 'Dynamically' # Options 'Specific', 'Dynamically'
#jobCount: 1 # The number of job runs. (default 1) - used if strategy is 'Dynamically'
#user: 'MyUser'
#machine: 'machine'
#robotsIds: 'robot1, robot2'
#resultFilePath: 'Output\\testResults.json'
#timeout: 3600
#failWhenJobFails: false
#waitForJobCompletion: false,
#traceLevel: 'None' # Options: Critical, Error, Warning, Information, Verbose, None
- task: UiPathRunJob@2
displayName: 'Start ProcessProject'
inputs:
#orchestratorConnection: 'service-connection-name' # Service connection to UiPath Orchestrator
#processName: 'ProccessProject_CI-Pipeline' # The name of the process
#parametersFilePath: 'Input\\jobParameters.json' # json file with input values if the process requires them
#priority: 'Low' # Options 'Low', 'Normal', 'High'
#folderName: 'MyFolder' # Specify the folder to deploy to. For clasic folders, you can use specific robot names. For modern folders, you can use specific user and machine names.
#strategy: 'Dynamically' # Options 'Specific', 'Dynamically'
#jobCount: 1 # The number of job runs. (default 1) - used if strategy is 'Dynamically'
#user: 'MyUser'
#machine: 'machine'
#robotsIds: 'robot1, robot2'
#resultFilePath: 'Output\\testResults.json'
#timeout: 3600
#failWhenJobFails: false
#waitForJobCompletion: false,
#traceLevel: 'None' # Options: Critical, Error, Warning, Information, Verbose, None
You can use this task to deploy, update or delete assets on your Orchestrator instance.
The following asset types are supported:
Text
- stores only strings (it is not required to add quotation marks)Boolean
- supports true or false valuesInteger
- stores only whole numbersCredential
- contains usernames and passwords that the Robot requires to execute particular processes. For this asset type, you need to encode the username and password by using::
to separate the two fields.
name,type,value, description asset_1_name,text,asset_value, asset_2_name,integer,123,asset_3_name,boolean,false, this is an asset description asset_4_name,credential,"username::password",
name,type,value, description asset_1_name,text,asset_value, asset_2_name,integer,123,asset_3_name,boolean,false, this is an asset description asset_4_name,credential,"username::password",
For more information, see Orchestrator Assets.
Use the following table to configure the UiPath Manage Assets inputs.
Argument | Description |
---|---|
Display name (Required) | Enter a name for your task. |
Orchestrator connection (Required) | Configure the service connection to access UiPath Orchestrator services. You can configure a connection only for this step or use an existing global connection. For more information, see Configuring UiPath Orchestrator service connection. |
Orchestrator folder (Required) | Specify the folder where the process is being deployed. For classic folders, you can use specific robot names. For modern
folders, you can use specific user and machine names.
To input subfolders make sure to input both the parent folder name and the name of the subfolder. For instance, use AccountingTeam\TeamJohn. |
Choose asset action (Required) | Select an option from the dropdown list. |
Assets CSV File (Required) | Add the CSV file path. You can use the same file for both Deploy and Update asset actions. Considerations:
(Optional) You can set a description for each asset using the following syntax:
type, value ,description |
Trace Level | Select the logging level from the dropdown list. |
- task: UiPathAssets@2
displayName: 'Deploy/Update assets'
inputs:
#orchestratorConnection: 'service-connection-name' # Service connection to UiPath Orchestrator
#assetActionType: 'Deploy' # Options: Deploy, Delete
#csvFile: 'assets_deploy.csv' # the path to the csv file containing the assets description,
#traceLevel: 'None' # Options: Critical, Error, Warning, Information, Verbose, None
- task: UiPathAssets@2
displayName: 'Deploy/Update assets'
inputs:
#orchestratorConnection: 'service-connection-name' # Service connection to UiPath Orchestrator
#assetActionType: 'Deploy' # Options: Deploy, Delete
#csvFile: 'assets_deploy.csv' # the path to the csv file containing the assets description,
#traceLevel: 'None' # Options: Critical, Error, Warning, Information, Verbose, None
Select the version of the CLI that you want to use with your Azure DevOps Extension, from the Choose a CLI version (Required) dropdown.
The options in the dropdown list include:
- The latest available versions of the CLI.
- The environment requirements that you need to be compatible with the CLI version that you choose.
If your pipeline fails to access the UiPath Public Feed and can't download the CLI version that you chose from the dropdown list, follow the steps below:
- Download the desired CLI version from the UiPath Public Feed.
- Place the downloaded NUPKG file inside the
Agent.Tools
directory of your build agent. Remember the path of the NUPKG file inside theAgent.Tools
directory. For example,$(Agent.ToolsDirectory)\nupkg\UiPath.CLI.xx.xx.xx.nupkg
- Use the InstallPlatform task, and input the path used at step 2 inside the Path to CLI's nupkg field.
You can preview a fully parsed YAML document for the UiPath Install Platform, including the CLI version selector:
- task: UiPathInstallPlatform-preview@2
displayName: 'UiPath Install Platform'
inputs:
cliVersion: 'WIN_22.10.8418.30339' or 'X_22.10.8418.30339' or '21.10.8319.10920
cliNupkgPath:'$(Agent.ToolsDirectory)\nupkg\UiPath.CLI.X.22.10.8418.30339.nupkg'
- task: UiPathInstallPlatform-preview@2
displayName: 'UiPath Install Platform'
inputs:
cliVersion: 'WIN_22.10.8418.30339' or 'X_22.10.8418.30339' or '21.10.8319.10920
cliNupkgPath:'$(Agent.ToolsDirectory)\nupkg\UiPath.CLI.X.22.10.8418.30339.nupkg'
The UiPathPack task enables you to package an existing UiPath project into a NuGet package.
Use the following table to configure the UiPath Pack inputs.
Argument | Description |
---|---|
Display name (Required) | Enter a name for your task. |
Choose versioning method (Required) | You can select an automatically generated version, use the project version, or define a new version. For more information, see Package Versions. |
Version (Required) | Available only on modern folders alongside a dynamic allocation strategy. Specifying the package version provides the possibility
of tracking the built packages and their source versioning more efficiently. For example, the Microsoft assembly pattern can
be utilized to build the NuGet package version: [Major].[Minor].[BuildNumber].[RevisionNumber].
The available options are:
|
Project(s) Path (Required) | Select the location of the project that is going to be packaged. It can be a direct path to a project.json file or a directory with one or multiple projects. In the latter case, each level one project is packaged individually. |
Choose output type (Required only for manual versioning) | Set a project type for the project that is going to be packaged. If you set None , the project type is going to be extracted from the project's JSON file.The following project types are supported: 'Process',
'Library', 'Tests', 'Objects', 'None'.
|
Orchestrator connection (Required) | Configure the service connection to access UiPath Orchestrator services. You can configure a connection only for this step or use an existing global connection. For more information, see Configuring UiPath Orchestrator service connection. |
Output Path | Set a folder path where the package is going to be placed. |
Run workflows analysis | Select this option to run workflow analysis rules on your automation project (e.g., Fail jobs in case of errors). By default, this option is not activated. For more information, see Application Testing Workflow Analyzer Rules. |
Trace Level | Select the logging level from the dropdown list. |
- task: UiPathPack@2
inputs:
#versionType: AutoVersion # Options: AutoVersion, CurrentVersion, ManualVersion
#version: '1.0.0' # Required when versionType == ManualVersion
#projectJsonPath: '$(Build.SourcesDirectory)\MyFirstProcess'
#outputPath: '$(Build.ArtifactStagingDirectory)\Packages\MyFirstProcess'
#outputType: 'None' # Options: Process, Library, Tests, Objects, None
#runWorkflowAnalysis: 'False'
#orchestratorConnection: 'service-connection-name' # Service connection to UiPath Orchestrator,
#traceLevel: 'None' # Options: Critical, Error, Warning, Information, Verbose, None
- task: UiPathPack@2
inputs:
#versionType: AutoVersion # Options: AutoVersion, CurrentVersion, ManualVersion
#version: '1.0.0' # Required when versionType == ManualVersion
#projectJsonPath: '$(Build.SourcesDirectory)\MyFirstProcess'
#outputPath: '$(Build.ArtifactStagingDirectory)\Packages\MyFirstProcess'
#outputType: 'None' # Options: Process, Library, Tests, Objects, None
#runWorkflowAnalysis: 'False'
#orchestratorConnection: 'service-connection-name' # Service connection to UiPath Orchestrator,
#traceLevel: 'None' # Options: Critical, Error, Warning, Information, Verbose, None
The UiPathDeploy task lets you deploy a UiPath NuGet package onto UiPath Orchestrator.
Make sure that your network allows access to the following NuGet package feed:
- https://api.nuget.org/v3/index.json
- https://uipath.pkgs.visualstudio.com/_packaging/nuget-packages/nuget/v3/index.json
- https://uipath.pkgs.visualstudio.com/Public.Feeds/_packaging/UiPath-Internal/nuget/v3/index.json
- https://www.myget.org/F/workflow
- http://www.myget.org/F/uipath
- https://www.myget.org/F/uipath-dev/api/v3/index.json
Use the following table to configure the UiPath Deploy inputs.
Argument | Description |
---|---|
Display name (Required) | Enter a name for your task. |
Orchestrator connection (Required) | Configure the service connection to access UiPath Orchestrator services. You can configure a connection only for this step or use an existing global connection. For more information, see Configuring UiPath Orchestrator service connection. |
Package(s) (Required) | Define the feed for your UiPath NuGet packages. |
Automatically create process | Select this option if you want to deploy a package without creating a process. The option is selected by default.If selected, you need to configure the Entry Point Path parameter. |
Orchestrator folder (Required) | Specify the folder where the process is being deployed. For classic folders (deprecated), you can use specific robot names.
For modern folders, you can use specific user and machine names.
To input subfolders make sure to input both the parent folder name and the name of the subfolder. For instance, use
AccountingTeam\TeamJohn .
|
Environment | (Optional) If you use classic folders (deprecated), you need to define the environment where the packages are going to be
deployed. You can use this field to create or update packages.You can use the following example to add your environments to
this field, separated by a comma: testingEnvironment,productionEnvironment .
|
Entry Point Path(s) (Required) | Specify entry point paths to create or update a process. The entry point path specifies the file path starting from the root
of the project.Before configuring the entry point paths, consider the following: Entry points are available for Orchestrator
version 21.4 or higher (e.g. 21.4.UiPathDeploy.entryPoints ). For Orchestrator versions lower than 21.4, you need to enter any value, as the field must not remain empty. The default
entry point is set to Main.xaml . Multiple entrypoints can be specified as 'Main.xaml, EntryPoint2.xaml '. For classic folders (deprecated) you can specify
only one entry point for each environment. For nested folders you need to specify the file path, as follows:Folder01/Folder02/Main.xaml or Folder01/Folder02/Entrypoint.xaml For more information, see Orchestrator Entry Points.
|
Trace Level | Select the logging level from the dropdown list. |
- task: UiPathDeploy@2
inputs:
#orchestratorConnection: # Service connection to UiPath Orchestrator
#packagesPath: '$(Build.ArtifactStagingDirectory)\Packages\ITAutomationProcess'
#folderName: 'ITAutomation'
#environments: 'AutomationRobots' # Optional,
#traceLevel: 'None' # Options: Critical, Error, Warning, Information, Verbose, None
- task: UiPathDeploy@2
inputs:
#orchestratorConnection: # Service connection to UiPath Orchestrator
#packagesPath: '$(Build.ArtifactStagingDirectory)\Packages\ITAutomationProcess'
#folderName: 'ITAutomation'
#environments: 'AutomationRobots' # Optional,
#traceLevel: 'None' # Options: Critical, Error, Warning, Information, Verbose, None
Typically, the UiPath Test task runs an existing test set on Orchestrator. Additionally, you can use it to pack, deploy, and run test cases by specifying the path to a UiPath test project. The latter option shows up in Orchestrator as a transient test set.
After the task has finished execution, the test results are uploaded to the Test tab in Azure DevOps. You can specify the test results output path in a JUnit format.
Depending on the result, the build will be either marked as successful (all test cases are passed), or failed (at least one test case failed).
Use the following table to configure the UiPath Test inputs.
Argument | Description |
---|---|
Display name (Required) | Enter a name for your task. |
Choose a test execution method | Choose the test that you want to execute: Execute test set: Specify and run an existing test set in Orchestrator. Execute tests in project: Specify a project, deploy the package and run the test cases as part of a transient test set. |
Orchestrator connection (Required) | Configure the service connection to access UiPath Orchestrator services. You can configure a connection only for this step or use an existing global connection. For more information, see Configuring UiPath Orchestrator service connection. |
Input parameters | Specify the file path to a JSON input file, such as Input\jobParameters.json . Specify the type argument if you're creating new input arguments at the Test Set level. Otherwise, you can use name and value .
|
Test set (Required for Execute test set method) | The name shown for the Test Set you wish to execute. Ensure that the Test Set includes the most recent version of the Test
Cases.
If the Test Set isn't in the default folder, make sure to include the relevant folder name before it. For instance, use
AccountingTeam\TestSet .
|
Test project path (Required for Execute tests in project method) | Specify the test project location that is going to be executed as part of a transient test set. |
Environment (Required for Execute tests in project method) | If you use classic folders (deprecated), you need to define the environment where the packages are going to be deployed. You
can use this field to create or update packages.You can use the following example to add your environments to this field,
separated by a comma: testingEnvironment, productionEnvironment .
|
Orchestrator folder (Required) | Specify the folder where the process is being deployed. For classic folders (deprecated), you can use specific robot names.
For modern folders, you can use specific user and machine names.
To input subfolders make sure to input both the parent folder name and the name of the subfolder. For instance, use
AccountingTeam\TeamJohn .
|
Test results output path | Specify the test results output path in JUnit format (e.g., Output\testResults.json ).
|
Timeout | Specify the number of seconds to wait before the request times out. |
Trace Level | Select the logging level from the dropdown list. |
Attach Robot Logs | Select this option to attach INFO level logs from the executing Robot. By default, this is unselected. For more information, see Robot Logs. |
-- task: UiPathTest@2
inputs:
#testTarget: TestProject # Options: TestProject, TestSet
#orchestratorConnection: # Service connection to UiPath Orchestrator
#testProjectPath: '$(Build.SourcesDirectory)\MobileAutomationTests' # Required only when testTarget = TestProject
#testSet: 'MobileAutomationTests' # Required only when testTarget = TestSet
#folderName: 'MobileAutomationTesting'
#environment: 'TestingRobots' # Required only when testTarget = TestProject and the folder is a classic folder
#testReportDestination: '$(Build.ArtifactStagingDirectory)\report.xml' # Optional
#timeout: 200 # Optional, default = 3600s,
#traceLevel: 'None' # Options: Critical, Error, Warning, Information, Verbose, None task: UiPathTest@2
-- task: UiPathTest@2
inputs:
#testTarget: TestProject # Options: TestProject, TestSet
#orchestratorConnection: # Service connection to UiPath Orchestrator
#testProjectPath: '$(Build.SourcesDirectory)\MobileAutomationTests' # Required only when testTarget = TestProject
#testSet: 'MobileAutomationTests' # Required only when testTarget = TestSet
#folderName: 'MobileAutomationTesting'
#environment: 'TestingRobots' # Required only when testTarget = TestProject and the folder is a classic folder
#testReportDestination: '$(Build.ArtifactStagingDirectory)\report.xml' # Optional
#timeout: 200 # Optional, default = 3600s,
#traceLevel: 'None' # Options: Critical, Error, Warning, Information, Verbose, None task: UiPathTest@2
- Overview
- Prerequisites
- Considerations
- Command-Line interface
- Caching the CLI
- Adding UiPath tasks to pipeline agent pool
- UiPath Run Job
- Configuration
- YAML pipeline
- UiPath Manage Assets
- Configuration
- YAML pipeline
- UiPath Install Platform
- CLI version selector
- Path to CLI's nupkg
- YAML pipeline
- UiPath Pack
- Configuration
- YAML pipeline
- UiPath Deploy
- Configuration
- YAML pipeline
- UiPath Test
- Configuration
- YAML pipeline