- Introdução ao Test Suite
- Studio
- Orchestrator
- Testing Robots
- Test Manager
- Integrações CI/CD
Guia do usuário do Test Suite
Trabalhos
Você pode usar a tarefa UiPathInstallPlatform quando:
- Você deseja baixar uma versão diferente da CLI, para poder, por exemplo, compactar projetos do Windows e de plataforma cruzada.
-
Os agentes de compilação não têm acesso ao UiPath NuGet Feed.
Você deve executar a tarefa UiPathInstallPlatform antes de qualquer outra tarefa no plug-in. A tarefa UiPath InstallPlatform baixa a CLI do NuGet Public Feed somente se a versão compatível não estiver disponível no cache.
Selecione a versão da CLI que você deseja usar com sua extensão do Azure DevOps, no menu suspenso Escolher uma versão da CLI .
As opções na lista suspensa incluem:
- As últimas versões disponíveis da CLI.
- Os requisitos de ambiente necessários para serem compatíveis com a versão CLI escolhida.
Se o seu pipeline não conseguir acessar o UiPath Public Feed e não conseguir baixar a versão CLI que você escolheu na lista suspensa, siga as etapas abaixo:
- Baixe a versão CLI desejada do UiPath Public Feed.
-
Coloque o arquivo NUPKG baixado dentro do diretório do espaço de trabalho do agente de seu agente de construção. Lembre-se do caminho do arquivo NUPKG dentro do diretório do espaço de trabalho do agente. Por exemplo,
${WORKSPACE}\nupkg\UiPath.CLI.xx.xx.xx.nupkg
Use a tarefa InstallPlatform e insira o caminho usado na etapa 2 dentro do campo Path to CLI's nupkg .
A etapa pós-criação do UiPath Run Job inicia um processo que já estava implantado em uma instância do Orchestrator. Na versão 2020.10 do Orchestrator, você pode encontrar os processos que estão sendo executados por essa tarefa na guia Processos. Nas versões 2021.10 e superiores do Orchestrator, você pode encontrar os processos que estão sendo executados por essa tarefa em Automações, em Processos.
Parâmetro do trabalho |
Description |
---|---|
Processo (obrigatório) |
Nome do processo. Você pode obter o nome do processo na interface do usuário do orquestrador. Se o processo for implantado em uma pasta Moderna, esse argumento deverá ser o Nome do processo na guia Processos . Se o processo for implantado em uma pasta Classic, o argumento deve ser formado pelo Nome do processo e pelo Ambiente (por exemplo:
NAME: ProcessA ENVIRONMENT: Production ProcessName: ProcessA_Production ).
|
Parâmetros |
O caminho completo para um arquivo de entrada JSON. Isso é usado quando o processo requer entrada. Exemplo de formato de arquivo JSON:
|
Prioridade |
A prioridade da execução do trabalho. |
Strategy |
Especifique a estratégia de execução de trabalhos: trabalhos(s) alocado(s) dinamicamente ou trabalho(s) específico(s) de Robots. Escolha uma das seguintes opções:
|
Tipo de trabalho (disponível apenas para pastas Modernas) |
Escolha o modelo de licença do tempo de execução em que o trabalho será executado. |
Endereço do Orchestrator |
O endereço da instância do Orchestrator onde você executará o processo. |
Tenant do Orchestrator |
Especifique o locatário do orquestrador. |
Pasta do Orchestrator | Especifique a pasta onde o processo especificado foi implantado.
Para inserir subpastas, certifique-se de inserir o nome da pasta pai e o nome da subpasta. Por exemplo, use
AccountingTeam\TeamJohn .
|
Autenticação |
Para autenticação no Orchestrator, você precisa criar credenciais no Jenkins antecipadamente. Existem quatro opções para autenticar: (1) Autenticar em um Orchestrator local usando nome de usuário e senha. (2) Autenticar em um Cloud Orchestrator usando um token de atualização (chave de API). (3) Autentique-se em um Cloud Orchestrator usando autenticação de aplicativo externo. (4) Autenticar em um Orchestrator local usando autenticação de aplicativo externo. |
Caminho de saída dos resultados do trabalho |
Especifique o caminho de saída dos resultados da tarefa (por exemplo,
testResults.json ). Os resultados são gerados no formato JSON.
Se não for especificado, os resultados são enviados Para o diretório de teste de artefatos como
UiPathResults.json . A saída está no formato JSON.
|
Tempo limite |
Especifique o tempo limite da(s) execução(ões) de trabalho em segundos. |
Falha quando um trabalho falha |
A tarefa será marcada como "com falha" se pelo menos um trabalho falhar. O valor padrão é True. |
Aguarde a conclusão do trabalho |
Aguarde a conclusão da(s) execução(ões) do trabalho. O valor padrão é True. |
Nível de registro em log do trace |
Configuração usada para habilitar o registro de rastreamento em um dos seguintes níveis:
|
Número de trabalhos |
O número de execuções de trabalhos. O valor padrão é 1. |
Usuário (disponível apenas para pastas modernas) |
O nome do usuário. Deve ser um usuário de máquina, não um usuário do Orchestrator. Para usuários locais, o formato deve ser MachineName\UserName. |
Máquina (disponível apenas para pastas modernas) |
O nome da máquina. |
Nomes de robô |
Lista de nomes de robôs específicos, separados por vírgula. |
pipeline {
agent any
environment {
MAJOR = '1'
MINOR = '0'
}
stages {
stage ('Build') {
UiPathRunJob(
credentials: UserPass('825c83c9-9a14-44eb-883a-af54f8078af0'),
failWhenJobFails: true,
folderName: 'A_Classic',
orchestratorAddress: 'https://testorchestrator.some-domain.com',
orchestratorTenant: 'Default',
parametersFilePath: '',
priority: 'Low',
processName: 'ProcessA_EnvB',
resultFilePath: 'output.json',
strategy: Dynamically(jobsCount: 1, machine: 'TestMachine', user: 'TestUser'), timeout: 3600, waitForJobCompletion: true, traceLoggingLevel: 'None'
)
UiPathRunJob(
credentials: UserPass('825c83c9-9a14-44eb-883a-af54f8078af0'),
failWhenJobFails: true,
folderName: 'A_Classic',
orchestratorAddress: 'https://testorchestrator.some-domain.com',
orchestratorTenant: 'Default',
parametersFilePath: '',
priority: 'Low',
processName: 'ProcessA_EnvB',
resultFilePath: 'output.json',
strategy: Robot('robot1,robot2'),
timeout: 1800,
waitForJobCompletion: false,
traceLoggingLevel: 'None'
)
}
}
}
pipeline {
agent any
environment {
MAJOR = '1'
MINOR = '0'
}
stages {
stage ('Build') {
UiPathRunJob(
credentials: UserPass('825c83c9-9a14-44eb-883a-af54f8078af0'),
failWhenJobFails: true,
folderName: 'A_Classic',
orchestratorAddress: 'https://testorchestrator.some-domain.com',
orchestratorTenant: 'Default',
parametersFilePath: '',
priority: 'Low',
processName: 'ProcessA_EnvB',
resultFilePath: 'output.json',
strategy: Dynamically(jobsCount: 1, machine: 'TestMachine', user: 'TestUser'), timeout: 3600, waitForJobCompletion: true, traceLoggingLevel: 'None'
)
UiPathRunJob(
credentials: UserPass('825c83c9-9a14-44eb-883a-af54f8078af0'),
failWhenJobFails: true,
folderName: 'A_Classic',
orchestratorAddress: 'https://testorchestrator.some-domain.com',
orchestratorTenant: 'Default',
parametersFilePath: '',
priority: 'Low',
processName: 'ProcessA_EnvB',
resultFilePath: 'output.json',
strategy: Robot('robot1,robot2'),
timeout: 1800,
waitForJobCompletion: false,
traceLoggingLevel: 'None'
)
}
}
}
uft-8
.
name,type,value,description
asset_1_name,text,asset_value,this is an test description # we can have comments
asset_2_name,integer,123
asset_3_name,boolean,false
asset_4_name,credential,"username::password"
name,type,value,description
asset_1_name,text,asset_value,this is an test description # we can have comments
asset_2_name,integer,123
asset_3_name,boolean,false
asset_4_name,credential,"username::password"
Há quatro tipos de ativos:
- Texto
- Número inteiro
- Booleano
-
Credential. Para Credential, você deve codificar o nome de usuário e a senha usando
::
para separar os dois campos.
Parâmetro do trabalho |
Description |
---|---|
Ação |
O que fazer com os recursos fornecidos: implantar ou excluir. Se existir um recurso implantado, ele será atualizado. |
Endereço do Orchestrator |
O endereço da instância do Orchestrator onde você implantará ou atualizará ativos. |
Tenant do Orchestrator |
Especifique o tenant do Orchestrator no qual os ativos serão implantados ou atualizados. |
Pasta do Orchestrator |
Especifique a pasta onde os ativos serão implantados ou atualizados. Para inserir subpastas, certifique-se de inserir o nome da pasta pai e o nome da subpasta. Por exemplo, use
AccountingTeam\TeamJohn .
|
Autenticação |
Para autenticação no Orchestrator, você precisa criar credenciais no Jenkins antecipadamente. Existem quatro opções para autenticar: (1) Autenticar em um Orchestrator local usando nome de usuário e senha. (2) Autenticar em um Cloud Orchestrator usando um token de atualização (chave de API). (3) Autentique-se em um Cloud Orchestrator usando autenticação de aplicativo externo. (4) Autenticar em um Orchestrator local usando autenticação de aplicativo externo. |
Caminho do arquivo CSV |
O caminho para o arquivo CSV que contém os detalhes do ativo. O mesmo arquivo pode ser usado para implantar ou atualizar os ativos, embora o tipo não seja necessário para atualizações. O campo
type também pode estar vazio, mas a coluna deve estar presente. Para excluir, apenas a coluna name é usada, portanto as outras colunas podem estar vazias, mas devem estar presentes.
Você pode definir uma descrição opcional para cada recurso (por exemplo:
type , value , description ). Certifique-se de remover todas as quebras de linha, pois cada linha é interpretada como um novo ativo.
|
Nível de registro em log do trace |
Configuração usada para habilitar o registro de rastreamento em um dos seguintes níveis:
|
pipeline {
agent any
environment {
MAJOR = '1'
MINOR = '0'
}
stages {
stage ('Build') {
UiPathAssets (
assetsAction: DeployAssets(),
credentials: Token(accountName: '', credentialsId: ''),
filePath: '${WORKSPACE}/test.csv',
folderName: 'Default',
orchestratorAddress: 'https://test-orchestrator.somedomain.com',
orchestratorTenant: 'Default',
traceLoggingLevel: 'None'
)
UiPathAssets(
assetsAction: DeleteAssets(),
credentials: UserPass('825c83c9-9a14-44eb-883a-af54f8078af0'),
filePath: '${WORKSPACE}/test.csv',
folderName: 'Default',
orchestratorAddress: 'https://test-orchestrator.somedomain.com',
orchestratorTenant: 'Default',
traceLoggingLevel: 'None'
)
}
}
}
pipeline {
agent any
environment {
MAJOR = '1'
MINOR = '0'
}
stages {
stage ('Build') {
UiPathAssets (
assetsAction: DeployAssets(),
credentials: Token(accountName: '', credentialsId: ''),
filePath: '${WORKSPACE}/test.csv',
folderName: 'Default',
orchestratorAddress: 'https://test-orchestrator.somedomain.com',
orchestratorTenant: 'Default',
traceLoggingLevel: 'None'
)
UiPathAssets(
assetsAction: DeleteAssets(),
credentials: UserPass('825c83c9-9a14-44eb-883a-af54f8078af0'),
filePath: '${WORKSPACE}/test.csv',
folderName: 'Default',
orchestratorAddress: 'https://test-orchestrator.somedomain.com',
orchestratorTenant: 'Default',
traceLoggingLevel: 'None'
)
}
}
}
Aplicação: RPA
Tipo: tarefa de construção
O UiPath Pack está disponível em trabalhos e pipelines padrão e permite empacotar um projeto UiPath existente em um pacote NuGet.
Parâmetro do trabalho |
Description |
---|---|
Escolha o método de controle de versão |
Os pacotes UiPath são versionados. Com o pacote UiPath você pode escolher entre 3 opções diferentes: (1) Geração automática (2) Definir versão personalizada (3) Use a versão atual definida no projeto. |
Caminho do(s) projeto(s) |
A localização do(s) projeto(s) a ser(em) empacotado(s). Pode ser um caminho direto para um arquivo
project.json ou um diretório com um ou mais projetos. Nesse último caso, cada projeto de nível um é empacotado individualmente.
|
OutputFolder |
Caminho para uma pasta onde você deseja criar o pacote. |
Tipo de saída |
O tipo de saída do(s) projeto(s). Existem 5 opções para o(s) tipo(s) de projeto: (1) Tipo de saída do projeto (2) Embalar um projeto de processo (3) Embalar um projeto de biblioteca (4) Embalar um projeto de testes (5) Embalar um projeto de objetos. |
Executar análise do fluxo de trabalho |
Execute a análise do fluxo de trabalho antes de empacotar, verificando o projeto por meio de regras predefinidas quanto a violações. Falhe o trabalho em caso de erros. Por padrão, a análise não é executada. |
Nível de registro em log do trace |
Configuração usada para habilitar o registro de rastreamento em um dos seguintes níveis:
|
Usar orquestrador |
Use o feed do Orchestrator ao empacotar bibliotecas. A versão do Orchestrator deve igual ou superior à 20.4. O feed da biblioteca precisa permitir a autenticação de chave de API em Tenant > Configuração > Implantação. |
Endereço do Orchestrator |
Especifique o endereço da instância do Orchestrator a partir do qual as dependências da biblioteca devem ser restauradas. |
Tenant do Orchestrator |
O tenant do Orchestrator do qual as dependências da biblioteca devem ser restauradas. |
Autenticação |
Para autenticação no Orchestrator, você precisa criar credenciais no Jenkins antecipadamente. Existem quatro opções para autenticar: (1) Autenticar em um Orchestrator local usando nome de usuário e senha. (2) Autenticar em um Cloud Orchestrator usando um token de atualização (chave de API). (3) Autentique-se em um Cloud Orchestrator usando autenticação de aplicativo externo. (4) Autenticar em um Orchestrator local usando autenticação de aplicativo externo. |
ipeline {
agent any
environment {
MAJOR = '1'
MINOR = '0'
}
stages {
stage ('Build') {
steps {
UiPathPack (
outputPath: "Output\)\)\)\)${env.BUILD_NUMBER}",
projectJsonPath: "UiBank\)\)\)\)project.json",
version: [$class: 'ManualVersionEntry', version: "${MAJOR}.${MINOR}.${env.BUILD_NUMBER}"]
useOrchestrator: true,
traceLoggingLevel: "None",
orchestratorAddress: "OrchestratorUrl",
orchestratorTenant: "tenant name",
credentials: [$class: 'UserPassAuthenticationEntry', credentialsId: “credentialsId”]
)
}
}
}
}
ipeline {
agent any
environment {
MAJOR = '1'
MINOR = '0'
}
stages {
stage ('Build') {
steps {
UiPathPack (
outputPath: "Output\)\)\)\)${env.BUILD_NUMBER}",
projectJsonPath: "UiBank\)\)\)\)project.json",
version: [$class: 'ManualVersionEntry', version: "${MAJOR}.${MINOR}.${env.BUILD_NUMBER}"]
useOrchestrator: true,
traceLoggingLevel: "None",
orchestratorAddress: "OrchestratorUrl",
orchestratorTenant: "tenant name",
credentials: [$class: 'UserPassAuthenticationEntry', credentialsId: “credentialsId”]
)
}
}
}
}
Aplicação: RPA
Tipo: Tarefa pós-construção
O UiPath Deploy está disponível em trabalhos e pipelines padrão e permite implantar um pacote UiPath NuGet no UiPath Orchestrator.
Parâmetro do trabalho |
Description |
---|---|
Caminho do(s) pacote(s) |
A pasta que contém seu(s) pacote(s) nuget UiPath. |
Endereço do Orchestrator |
O endereço da Instância do Orchestrator para a qual o(s) pacote(s) será(ão) implantado(s). |
Tenant do Orchestrator |
O tenant do Orchestrator no qual o(s) pacote(s) será(ão) implantado(s). |
Pasta do Orchestrator |
A pasta em que os ativos serão implantados. Se a pasta for uma pasta clássica, você também precisará definir o campo
environments .Para pastas modernas, a configuração do campo environments não é necessária.
Para inserir subpastas, certifique-se de inserir o nome da pasta pai e o nome da subpasta. Por exemplo, use
AccountingTeam\TeamJohn .
|
Ambientes (necessário para pastas Classic) |
O ambiente no qual o pacote será implantado como um processo. Para o projeto e o ambiente com processos existentes, os processos serão atualizados para usar a versão mais recente do projeto. Especifique o ambiente no qual o pacote será implantado como um processo. Para o projeto e o ambiente com processos existentes, os processos serão atualizados para usar a versão mais recente do projeto. |
Pontos de Entrada |
Especifique pontos de entrada para criar ou atualizar um processo. O ponto de entrada especifica o caminho de arquivo começando da raiz do projeto. Condições:
|
Autenticação |
Para autenticação no Orchestrator, você precisa criar credenciais no Jenkins antecipadamente. Existem quatro opções para autenticar: (1) Autenticar em um Orchestrator local usando nome de usuário e senha. (2) Autenticar em um Cloud Orchestrator usando um token de atualização (chave de API). (3) Autentique-se em um Cloud Orchestrator usando autenticação de aplicativo externo. (4) Autenticar em um Orchestrator local usando autenticação de aplicativo externo. |
Nível de registro em log do trace |
Configuração usada para habilitar o registro de rastreamento em um dos seguintes níveis:
|
Certifique-se de que sua rede permite o acesso ao seguinte feed de pacote do 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
pipeline {
agent any
environment {
MAJOR = '1'
MINOR = '0'
}
stages {
stage ('PostBuild') {
steps {
UiPathDeploy (
packagePath: "path\)\)\) o\)\)NuGetpackage",
orchestratorAddress: "OrchestratorUrl",
orchestratorTenant: "tenant name",
folderName: "folder name",
environments: "environment",
credentials: [$class: 'UserPassAuthenticationEntry', credentialsId: “credentialsId”],
traceLoggingLevel: 'None'
)
}
}
}
}
pipeline {
agent any
environment {
MAJOR = '1'
MINOR = '0'
}
stages {
stage ('PostBuild') {
steps {
UiPathDeploy (
packagePath: "path\)\)\) o\)\)NuGetpackage",
orchestratorAddress: "OrchestratorUrl",
orchestratorTenant: "tenant name",
folderName: "folder name",
environments: "environment",
credentials: [$class: 'UserPassAuthenticationEntry', credentialsId: “credentialsId”],
traceLoggingLevel: 'None'
)
}
}
}
}
Aplicativo : Testes
Tipo: Tarefa pós-construção
Os testes UiPath Run estão disponíveis em trabalhos e pipelines padrão e permitem:
- Execute um conjunto de testes existente no Orchestrator.
- Empacote, implante e execute casos de teste, especificando o caminho para um projeto de teste UiPath.
Após a conclusão da execução do teste, a guia Test Result é publicada no build do Jenkins, mostrando os resultados detalhados. Além disso, um arquivo de resultados de teste JUnit é criado para o caminho de saída do resultado do teste, quando especificado, ou para a raiz da área de trabalho, se não for especificado.
Dependendo do resultado, a compilação será marcada como bem-sucedida (todos os casos de teste foram aprovados), ou instável (pelo menos um caso de teste falhou).
Parâmetro do trabalho |
Description |
---|---|
Destino |
|
Caminho de saída dos resultados dos testes |
O conjunto de teste executado retorna o resultado do teste como
junit.xml . Especifique o caminho onde o resultado deve ser armazenado, relativo ao diretório do espaço de trabalho do Jenkins (por exemplo, result.xml ).
|
Parâmetros de Entrada |
Defina Argumentos personalizados para seus casos de teste para substituir os valores padrão no nível do conjunto de testes. Por meio dos argumentos, você pode definir parâmetros para casos de teste no runtime. Para definir argumentos, você precisa publicar um pacote com argumentos. |
Endereço do Orchestrator |
O endereço da Instância do Orchestrator para a qual o(s) pacote(s) será(ão) implantado(s). |
Tenant do Orchestrator |
O tenant do Orchestrator no qual o(s) pacote(s) será(ão) implantado(s). |
Pasta do Orchestrator |
A pasta em que os ativos serão implantados. Se ela for uma pasta clássica, você também precisará definir o campo
environments .
Para pastas modernas, definir o
environments . não é necessário.
Para inserir subpastas, certifique-se de inserir o nome da pasta pai e o nome da subpasta. Por exemplo, use
AccountingTeam\TeamJohn .
|
Ambientes (necessário para pastas Classic) |
O ambiente no qual o pacote será implantado como um processo. Para o projeto e o ambiente com processos existentes, os processos serão atualizados para usar a versão mais recente do projeto. Especifique o ambiente no qual o pacote será implantado como um processo. Para o projeto e o ambiente com processos existentes, os processos serão atualizados para usar a versão mais recente do projeto. |
Autenticação |
Para autenticação no Orchestrator, você precisa criar credenciais no Jenkins antecipadamente. Existem quatro opções para autenticar: (1) Autenticar em um Orchestrator local usando nome de usuário e senha. (2) Autenticar em um Cloud Orchestrator usando um token de atualização (chave de API). (3) Autentique-se em um Cloud Orchestrator usando autenticação de aplicativo externo. (4) Autenticar em um Orchestrator local usando autenticação de aplicativo externo. |
Tempo Limite (segundos) |
O tempo limite de execução para a execução do teste. O valor padrão é 7200 segundos. Se o tempo limite exceder antes que a execução no Orchestrator seja concluída e retorne o resultado, a compilação será cancelada e marcada como falha. |
Nível de registro em log do trace |
Configuração usada para habilitar o registro de rastreamento em um dos seguintes níveis:
|
pipeline {
agent any
environment {
MAJOR = '1'
MINOR = '0'
}
stages {
stage ('PostBuild') {
steps {
UiPathTest (
testTarget: [$class: 'TestSetEntry', testSet: "My Test Set"],
orchestratorAddress: "OrchestratorUrl",
orchestratorTenant: "tenant name",
folderName: "folder name",
timeout: "10000",
traceLoggingLevel: 'None',
testResultsOutputPath: "result.xml",
credentials: [$class: 'UserPassAuthenticationEntry', credentialsId: "credentialsId"]
)
}
}
}
}
pipeline {
agent any
environment {
MAJOR = '1'
MINOR = '0'
}
stages {
stage ('PostBuild') {
steps {
UiPathTest (
testTarget: [$class: 'TestSetEntry', testSet: "My Test Set"],
orchestratorAddress: "OrchestratorUrl",
orchestratorTenant: "tenant name",
folderName: "folder name",
timeout: "10000",
traceLoggingLevel: 'None',
testResultsOutputPath: "result.xml",
credentials: [$class: 'UserPassAuthenticationEntry', credentialsId: "credentialsId"]
)
}
}
}
}
- Plataforma de instalação UiPath
- Seletor de versão CLI
- Caminho para o nupkg da CLI
- UiPath Run Job
- Configuração
- Exemplo de pipeline
- UiPath Manage Assets
- Configuração
- Exemplo de pipeline
- UiPath Pack
- Configuração
- Exemplo de pipeline
- UiPath Deploy
- Configuração
- Exemplo de pipeline
- Testes do UiPath Run
- Configuração
- Exemplo de pipeline