Test Suite 用户指南
作业任务
您的管道由不同的阶段组成,而这些阶段又可以分解为多个作业。对于每个作业,您可以配置步骤以包含 UiPath 任务,这些任务包含在 UiPath DevOps 集成中。
Folder not found
消息,并且不执行任务。 在此处了解有关传统文件夹删除的更多信息。
要准备环境,请参阅 Azure DevOps 扩展程序先决条件。
在开始在管道中执行任务之前,请考虑以下事项:
- 您只需在基于 Windows 的构建代理上执行 UiPath 任务。
- 配置 UiPath Orchestrator 服务连接。
- 测试功能需要 Orchestrator 2020.4 或更高版本。
- 如果您将 Orchestrator 的内部部署版本与 HTTPS 一起使用,请导入 SSL 证书,以确保对 Orchestrator 的 HTTPS 调用受信任。
通过构建代理运行时,CLI 会与 Orchestrator 通信,并允许您执行作业任务。
Agent.ToolsDirectory
(Azure 缓存)中。
Agent.ToolsDirectory
中是否应包含 CLI,以完成执行。
Agent.ToolsDirectory
(Azure 缓存)中找不到 CLI,系统会自动从 NuGet 公共订阅源下载 CLI。 这样做的要求是 NuGet 公共订阅源不受防火墙阻止,并且可以从生成代理访问。
Agent.ToolsDirectory
中。
要在管道中定义自动化程序,您需要向代理池添加并配置单个任务。
- 在 Azure DevOps 中,转到“管道”。
- 创建新管道或编辑现有管道。
- 将作业添加到代理池。
-
搜索以下任务之一:
- UiPath 运行作业
- UiPath 管理资产
- UiPath 安装平台
- UiPath 包
- UiPath 部署
- UiPath 测试
- 单击“添加”并配置任务。
- 如果需要,重新排列代理池中的任务,然后保存管道。
使用下表配置“UiPath 运行作业”输入。
输入 | 描述 |
---|---|
显示名称是必填项 | 输入租户的名称。 |
需要 Orchestrator 连接 | 配置服务连接以访问 UiPath Orchestrator 服务。您只能为此步骤配置连接,也可以使用现有的全局连接。有关更多信息,请参阅“配置 UiPath Orchestrator 服务连接”。 |
流程(必填) | 流程是链接到特定文件夹类型的包版本。 您需要根据部署流程的文件夹类型配置此输入。对于新式文件夹,输入是“流程”选项卡中列出的流程名称。 要找出流程名称,您可以打开 Orchestrator,打开您的文件夹,然后导航到“自动化” >“流程”。对于传统文件夹(已弃用),输入的内容是流程名称的名称,后跟下划线,然后是环境名称,即托管机器人的地方。作为此命名约定的示例,请考虑以下变量:流程的名称为TestAutomation 。 环境的名称为Production 。此输入的流程名称为TestAutomation_Production 。
|
输入参数 | 指定 JSON 输入文件的文件路径,例如Input\jobParameters.json 。
JSON 文件格式示例:
|
优先级 | 如果要在流程级别设置特定顺序,请选择作业执行的优先级。默认情况下,系统设置为 Normal 。
|
Orchestrator 文件夹(必需) | 指定正在部署流程的文件夹。对于传统文件夹,您可以使用指定的机器人名称。对于新式文件夹,您可以使用指定的用户和计算机名称。
要输入子文件夹,请确保同时输入父文件夹的名称和子文件夹的名称。例如,使用“AccountingTeam\TeamJohn”。 |
策略 | 指定动态分配或特定于机器人的执行策略。对于动态分配的作业,将在可用的帐户和计算机下执行流程或者,您可以选择特定于机器人的作业。 |
作业类型 | 仅适用于新式文件夹。选择要用于执行作业的运行时的许可模式。有关更多信息,请参阅“关于许可章节”。 |
作业数 | 仅适用于动态分配策略。指定要运行此任务的次数。 默认情况下,此输入设置为1 。
|
用户 | 仅与动态分配策略一起在新式文件夹中可用。添加计算机用户名。例如,此输入的本地用户为 MachineName\UserName 。
|
计算机 | 仅与动态分配策略一起在新式文件夹中可用。运行执行的计算机的名称。 |
输出 | 结果收集在 JSON 文件中。您需要指定作业结果的路径(例如Output\testResults.json )。如果将此输入留空,则默认输出将发送到以下名称的工件登台目录UiPathResults.json 。
|
超时 | 指定请求超时前要等待的秒数。 |
作业失败时失败的任务 | 如果要在至少一个作业失败时将任务设置为失败,请选择此输入。默认情况下未选中此选项。 |
等待作业完成 | 等待作业运行结束。默认情况下未选中此选项。 |
追踪级别 | 从下拉列表中选择用户。 |
机器人 ID | 指定机器人名称的逗号分隔列表。 |
- 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
您可以使用此任务在 Orchestrator 实例上部署、更新或删除资产。
支持以下资产类型:
Text
- 仅存储字符串(不需要添加引号)Boolean
- 支持值 True 或 FalseInteger
- 仅存储整数Credential
- 包含机器人执行特定流程所需的用户名和密码。对于此资产类型,您需要通过使用::
分隔两个字段来对用户名和密码进行编码。
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",
有关更多信息,请参阅“Orchestrator 资产”。
使用下表配置“UiPath 管理资产”输入。
参数 | 描述 |
---|---|
显示名称是必填项 | 输入租户的名称。 |
需要 Orchestrator 连接 | 配置服务连接以访问 UiPath Orchestrator 服务。您只能为此步骤配置连接,也可以使用现有的全局连接。有关更多信息,请参阅“配置 UiPath Orchestrator 服务连接”。 |
Orchestrator 文件夹(必需) | 指定正在部署流程的文件夹。对于传统文件夹,您可以使用指定的机器人名称。对于新式文件夹,您可以使用指定的用户和计算机名称。
要输入子文件夹,请确保同时输入父文件夹的名称和子文件夹的名称。例如,使用“AccountingTeam\TeamJohn”。 |
选择资产操作(必填) | 从下拉列表中选择一个选项。 |
资产 CSV 文件(必填) | 添加 CSV 文件路径。您可以将同一文件用于“部署”和“更新”资产操作。注意事项:
(可选)您可以使用以下语法为每个资产设置说明:
type, value ,description |
追踪级别 | 从下拉列表中选择用户。 |
- 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
从“ 选择 CLI 版本 (必需)” 下拉列表中选择要与 Azure DevOps 扩展一起使用的 CLI 版本。
下拉列表中的选项包括:
- CLI 的最新可用版本。
- 与所选 CLI 版本兼容所需的环境要求。
如果您的管道无法访问 UiPath 公共订阅源,并且无法下载您从下拉列表中选择的 CLI 版本,请按照以下步骤操作:
- 从 UiPath 公共订阅源下载所需的 CLI 版本。
- 将下载的 NUPKG 文件放置在构建代理的
Agent.Tools
目录中。 记住Agent.Tools
目录中 NUPKG 文件的路径。 例如,$(Agent.ToolsDirectory)\nupkg\UiPath.CLI.xx.xx.xx.nupkg
- 使用 InstallPlatform 任务,并在“CLI 的 nupkg 路径” 字段中输入步骤 2 中使用的路径。
您可以为 UiPath 安装平台预览完全解析的 YAML 文档,包括 CLI 版本选取器:
- 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'
使用 UiPathPack 任务,您可以将现有的 UiPath 项目打包到 NuGet 包中。
使用下表配置 UiPath Pack 输入。
参数 | 描述 |
---|---|
显示名称是必填项 | 输入租户的名称。 |
选择版本控制方法(必需) | 您可以选择自动生成的版本、使用项目版本或定义新版本。有关更多信息,请参阅“包版本”。 |
版本(必填项) | 仅与动态分配策略一起在新式文件夹中可用。手动指定包版本可更高效追踪已生成的包及其源版本控制。例如,可利用 Microsoft 程序集模式生成 NuGet 包版本:[Major].[Minor].[BuildNumber].[RevisionNumber]。
可用的选项包括:
|
项目路径(必填) | 选择要打包的项目的位置。该位置可为 project.json 文件的直接路径,或包含一个或多个项目的目录。如果是后者,则针对每个级别,系统均会分别打包每个项目。 |
选择输出类型(仅手动版本控制需要) | 为要打包的项目设置项目类型。 如果设置None ,则将从项目的 JSON 文件中提取项目类型。支持以下项目类型:“流程”、“库”、“测试”、“对象”、“无”。
|
需要 Orchestrator 连接 | 配置服务连接以访问 UiPath Orchestrator 服务。您只能为此步骤配置连接,也可以使用现有的全局连接。有关更多信息,请参阅“配置 UiPath Orchestrator 服务连接”。 |
输出路径 | 设置要放置包的文件夹路径。 |
运行工作流分析 | 选择此选项可对自动化项目运行工作流分析规则(例如,出现错误时失败的作业)。默认情况下,此选项未激活。有关更多信息,请参阅“应用程序测试工作流分析器规则”。 |
追踪级别 | 从下拉列表中选择用户。 |
- 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
使用 UiPathDeploy 任务,您可以将 UiPath NuGet 包部署到 UiPath Orchestrator 上。
确保您的网络允许访问以下 NuGet 包订阅源:
- 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
使用下表配置 UiPath 部署输入。
参数 | 描述 |
---|---|
显示名称是必填项 | 输入租户的名称。 |
需要 Orchestrator 连接 | 配置服务连接以访问 UiPath Orchestrator 服务。您只能为此步骤配置连接,也可以使用现有的全局连接。有关更多信息,请参阅“配置 UiPath Orchestrator 服务连接”。 |
包(必填) | 定义 UiPath NuGet 包的订阅源。 |
自动创建流程 | 如果要在不创建流程的情况下部署包,请选择此选项。 默认情况下选中该选项。如果选中,则需要配置“入口点路径”参数。 |
Orchestrator 文件夹(必需) | 指定正在部署流程的文件夹。对于传统文件夹,您可以使用指定的机器人名称。对于新式文件夹,您可以使用指定的用户和计算机名称。
要输入子文件夹,请确保同时输入父文件夹的名称和子文件夹的名称。例如,
AccountingTeam\TeamJohn 。
|
环境 | (可选)如果使用传统文件夹(已弃用),则需要定义将要部署包的环境。您可以使用此字段创建或更新包。您可以使用以下示例将环境添加到此字段,以逗号分隔:testingEnvironment,productionEnvironment 。
|
入口点路径 (必填) | 指定入口点路径以创建或更新流程。 入口点路径指定从项目根目录开始的文件路径。在配置入口点路径之前,请考虑以下事项: 入口点适用于 Orchestrator 21.4 或更高版本(例如 21.4.UiPathDeploy.entryPoints )。 对于低于 21.4 的 Orchestrator 版本, 您需要输入任何值,因为该字段不得留空。 默认入口点设置为Main.xaml 。 可以将多个入口点指定为“Main.xaml”, “入口点 2.xaml”。 对于传统文件夹(已弃用),您只能为每个环境指定一个入口点。 对于嵌套文件夹,您需要指定文件路径,如下所示: Folder01/Folder02/Main.xaml 或Folder01/Folder02/Entrypoint.xaml 有关更多信息,请参阅 Orchestrator 入口点。
|
追踪级别 | 从下拉列表中选择用户。 |
- 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
通常, UiPath 测试任务在 Orchestrator 上运行现有测试集。此外,您可以通过指定 UiPath 测试项目的路径,将其用于打包、部署和运行测试用例。后一个选项在 Orchestrator 中显示为暂态测试集。
任务执行完成后,测试结果将上传到 Azure DevOps 中的“测试”选项卡。您可以 JUnit 格式指定测试结果输出路径。
根据结果,构建将被标记为成功(所有测试用例都通过)或失败(至少一个测试用例失败)。
使用下表配置 UiPath 测试输入。
参数 | 描述 |
---|---|
显示名称是必填项 | 输入租户的名称。 |
选择测试执行方法 | 选择要执行的测试:执行测试集:在 Orchestrator 中指定并运行现有测试集。在项目中执行测试:指定项目,部署包并将测试用例作为暂态测试集的一部分运行。 |
需要 Orchestrator 连接 | 配置服务连接以访问 UiPath Orchestrator 服务。您只能为此步骤配置连接,也可以使用现有的全局连接。有关更多信息,请参阅“配置 UiPath Orchestrator 服务连接”。 |
输入参数 | 指定 JSON 输入文件的文件路径,例如Input\jobParameters.json 。 如果要在测试集级别创建新输入参数,请指定type 参数。 否则,您可以使用name 和value 。
|
测试集(执行测试集方法需要) | 要执行的测试集的显示名称。确保测试集包含最新版本的测试用例。
如果测试集不在默认文件夹中,请确保在其前面添加相关文件夹名称。例如,
AccountingTeam\TestSet 。
|
测试项目路径(在项目方法中执行测试需要) | 指定将作为暂态测试集的一部分执行的测试项目位置。 |
环境(在项目方法中执行测试需要) | 如果使用传统文件夹(已弃用),则需要定义将要部署包的环境。您可以使用此字段创建或更新包。您可以使用以下示例将环境添加到此字段,以逗号分隔:testingEnvironment, productionEnvironment 。
|
Orchestrator 文件夹(必需) | 指定正在部署流程的文件夹。对于传统文件夹,您可以使用指定的机器人名称。对于新式文件夹,您可以使用指定的用户和计算机名称。
要输入子文件夹,请确保同时输入父文件夹的名称和子文件夹的名称。例如,
AccountingTeam\TeamJohn 。
|
测试结果输出路径 | 以 JUnit 格式(例如Output\testResults.json )指定测试结果输出路径。
|
超时 | 指定请求超时前要等待的秒数。 |
追踪级别 | 从下拉列表中选择用户。 |
附加机器人日志 | 选择此选项可附加正在执行的机器人中的 INFO 级别日志。默认情况下,此选项处于取消选中状态。有关更多信息,请参阅“机器人日志”。 |
-- 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