Partilhar via


Tutorial do Regression Suite Automation Tool

Nota

Utilize as ferramentas do seu browser para transferir e guardar esta página em formato pdf.

Este tutorial percorre algumas das funcionalidades avançadas da Regression Suite Automation Tool (RSAT), inclui uma atribuição de demonstração e descreve estratégia e pontos-chave de aprendizagem.

Características notáveis da gravação de tarefas RSAT

Validar um valor de campo

O RSAT permite-lhe incluir etapas de validação no seu caso de teste para validar os valores esperados. Para obter informações sobre esta funcionalidade, consulte o artigo Validar valores esperados.

O exemplo a seguir mostra como pode utilizar esta funcionalidade para validar se o inventário disponível é superior a 0 (zero).

  1. Nos dados de demonstração da empresa USMF, crie uma gravação de tarefas que tenha os seguintes passos:

    1. Aceda a Gestão de informações do produto > Produtos > Produtos lançados.
    2. Utilize o Filtro Rápido para localizar registos. Por exemplo, filtre um valor de 1000 para o campo Número de item.
    3. Selecione Inventário disponível.
    4. Utilize o Filtro Rápido para localizar registos. Por exemplo, filtre um valor de 1 para o campo Local.
    5. Na lista, marque a linha selecionada.
    6. Valide que o valor do campo Total disponível é 411.0000000000000000.
  2. Guarde a gravação de tarefas como uma gravação do programador e anexe-a ao seu caso de teste no Azure DevOps.

  3. Adicione o caso de teste ao plano de teste e carregue o caso de teste no RSAT.

  4. Abra o ficheiro de parâmetros do Excel e aceda ao separador TestCaseSteps.

  5. Para validar se o inventário disponível será sempre superior a 0, aceda ao passo Validar Total Disponível e altere o seu valor de 411 para 0. Altere o valor do campo Operador de um sinal igual (=) para um sinal maior do que o sinal (>).

  6. Guarde e feche o ficheiro de parâmetros do Excel.

  7. Selecione Carregar para guardar as alterações que fez no ficheiro de parâmetros do Excel no Azure DevOps.

Agora, se o valor do campo Total Disponível para o item especificado no inventário for superior a 0 (zero), os testes passarão, independentemente do valor real do inventário disponível.

Variáveis guardadas e encadeamento de casos de teste

Uma das principais característica do RSAT é o encadeamento de casos de teste, isto é, a capacidade de um teste passar variáveis para outros testes. Para obter mais informações, consulte o artigo Copiar variáveis para casos de teste encadeados.

Caso de teste derivado

O RSAT permite-lhe utilizar a mesma gravação de tarefas com vários casos de teste, permitindo que uma tarefa seja executada com diferentes configurações de dados. Consulte o artigo Casos de teste derivados para obter mais informações.

Validar notificações e mensagens

Esta funcionalidade pode ser utilizada para validar se ocorreu uma ação. Por exemplo, quando uma ordem de produção é criada, estimada e depois iniciada, a aplicação mostra uma mensagem "Produção – Início" para notificá-lo de que a ordem de produção foi iniciada.

Notificação Produção – Início

Pode validar esta mensagem através do RSAT introduzindo o texto da mensagem no separador MessageValidation do ficheiro de parâmetros do Excel da gravação apropriada.

Separador de Validação de Mensagem

Após a execução do caso de teste, a mensagem no ficheiro de parâmetros do Excel é comparada com a mensagem mostrada. Se as mensagens não corresponderem, o caso de teste falhará.

Nota

Pode introduzir mais do que uma mensagem no separador MessageValidation no ficheiro de parâmetros do Excel. As mensagens também podem ser mensagens de erro ou aviso em vez de mensagens informativas.

Instantâneo

Esta funcionalidade faz capturas de ecrã dos passos que foram realizados durante a gravação de tarefas. É útil para fins de auditoria ou depuração.

  • Para utilizar esta funcionalidade enquanto executa o RSAT com a interface do utilizador, abra o ficheiro Microsoft.Dynamics.RegressionSuite.WindowsApp.exe.config na pasta de instalação RSAT (por exemplo, C:\Program Files (x86)\Regression Suite Automation Tool) e altere o valor do seguinte elemento de falso para verdadeiro.

    <add key="VerboseSnapshotsEnabled" value="false" />
    
  • Para utilizar esta funcionalidade enquanto executa o RSAT através do CLI (por exemplo, Azure DevOps), abra o ficheiro Microsoft.Dynamics.RegressionSuite.ConsoleApp.exe.config na pasta de instalação RSAT (por exemplo, C:\Program Files (x86)\Regression Suite Automation Tool) e altere o valor do seguinte elemento de falso para verdadeiro.

    <add key="VerboseSnapshotsEnabled" value="false" />
    

Quando executa os casos de teste, o RSAT gera capturas de ecrã (imagens) dos passos e guarda-os na pasta de reprodução dos casos de teste no diretório de funcionamento. Na pasta de reprodução, é criada uma subpasta separada chamada StepSnapshots. Esta pasta contém instantâneos para os casos de teste que são executados.

Atribuição

Cenário

  1. O designer de produtos cria um novo produto lançado.
  2. O gestor de produção inicia uma ordem de produção para elevar o nível de stock para duas peças.
  3. O fabrico inicia e termina a ordem de produção e verifica se a quantidade disponível é de duas peças.
  4. A equipa de vendas recebe um pedido de quatro peças do novo produto. Por isso, a equipa de vendas atualiza os requisitos líquidos através do plano dinâmico. Como não existe capacidade adicional, a política de encomendas por defeito está definida para "comprar em vez de fazer". Portanto, é criada uma nota de encomenda planeada.
  5. O comprador adiciona um vendedor, firma a nota de encomenda planeada e, em seguida, confirma a nota de encomenda.
  6. Quando os bens que foram comprados chegam à loja, o operador da loja procura a nota de encomenda relacionada e recebe os bens. Como a encomenda está agora concluída, os bens podem ser recolhidos e embalados com base na ordem de venda.
  7. As finanças registam a fatura de compra e a fatura de venda.

A ilustração a seguir mostra o fluxo deste cenário.

Fluxo do cenário de demonstração.

A seguinte ilustração mostra a hierarquia dos processos de negócio para este cenário no Modelador de Processos de Negócio do LCS.

Processos de negócio para o cenário de demonstração.

Estratégia – Aprendizagem-chave

Dados

  • Certifique-se de que tem volumes de dados representativos (uma cópia dos dados de produção/configuração dourada mais dados migrados).

  • Quando gerar novos dados através do gravador de tarefas, crie nomes de teste que não entram em conflito com os nomes existentes (por exemplo, utilize um prefixo como RSATxxx).

  • Utilize o restauro para um ponto anterior no tempo do Azure para voltar a executar testes em ambientes não escalão 1.

  • Embora possa utilizar as funções RANDOM e NOW do Excel para gerar uma combinação única, o esforço é consideravelmente elevado. Vejamos um exemplo.

    product = "AT" &TEXT(NOW(),"yyymmddhhmm")
    

Gravador de tarefas

  • Defina cenários antes de começar a gravação. Um projeto bem gerido tem cenários de teste predefinidos. Para compilar um caso de teste, considere o quão previsível é o resultado desses cenários de teste.
  • Gravações divididas, se forem executadas por diferentes funções, ou se houver tempo de espera ou um evento externo antes do passo seguinte.
  • Evite selecionar valores em listas. Em vez disso, utilize formatos de texto, tais como FIFO, AudioRM e SiteWH. Quando seleciona numa lista, a posição do valor na lista é registada, não o valor em si. Se os itens forem adicionados a essa lista, a posição do valor pode mudar. Portanto, a sua gravação utilizará um parâmetro diferente, e o resto do cenário pode ser afetado.
  • Pense no comportamento de vários utilizadores. Por exemplo, não assuma que a sua ordem de venda recém-criada será sempre selecionada automaticamente. Em vez disso, utilize sempre o filtro para encontrar a ordem correta.
  • Utilize a função Copiar no gravador de tarefas para guardar o nome de um produto recém-criado para que possa ser utilizado em casos de teste encadeados.
  • Utilize a função Validar no gravador de tarefas para definir pontos de verificação que verifiquem se os passos foram corretamente executados.

RSAT

  • Para executar o teste noutra empresa, pode alterar a empresa no separador Geral do ficheiro de parâmetros do Excel. Certifique-se de que as configurações e os dados estão disponíveis na empresa recém-selecionada.
  • Pode alterar o utilizador de teste no separador Geral do ficheiro de parâmetros do Excel. Especifique o ID de e-mail do utilizador que irá executar o caso de teste. Desta forma, o caso de teste pode ser executado utilizando as permissões de segurança do utilizador especificado.
  • Para esperar antes do início do teste, pode definir uma pausa no separador Geral do ficheiro de parâmetros do Excel. Esta pausa pode ser utilizada numa tarefa de lote (por exemplo, se um fluxo de trabalho tiver de ser executado antes de ser realizado o próximo passo).

Script avançado

CLI

O RSAT pode ser chamado a partir de uma janela da linha de comandos ou do PowerShell.

Nota

Verifique se a variável ambiental TestRoot está definida para o caminho de instalação do RSAT. (No Microsoft Windows, abra o Painel de Controlo, selecione Sistema e Segurança > Sistema > Definições avançadas do sistema e, em seguida, selecione Variáveis ambientais.)

  1. Abra uma janela da linha de comandos ou do PowerShell como administrador.

  2. Navegue para o diretório de instalações RSAT.

    cd "c:\Program Files (x86)\Regression Suite Automation Tool\"
    
  3. Liste todos os comandos.

    C:\Program Files (x86)\Regression Suite Automation Tool>Microsoft.Dynamics.RegressionSuite.ConsoleApp.exe help
    
    Usage:
        Microsoft.Dynamics.RegressionSuite.ConsoleApp.exe command
        or
        Microsoft.Dynamics.RegressionSuite.ConsoleApp.exe /settings "C:\Path to\file.settings" command
    
    Available commands:
        ?
        about
        cls
        download
        edit
        generate
        generatederived
        generatetestonly
        generatetestsuite
        help
        list
        listtestplans
        listtestsuite
        listtestsuitenames
        playback
        playbackbyid
        playbackmany
        playbacksuite
        quit
        upload
        uploadrecording
        usage
    

?

Mostra ajuda sobre todos os comandos disponíveis e os seus parâmetros.

Microsoft.Dynamics.RegressionSuite.ConsoleApp?[command]

?: Parâmetros opcionais

command: Onde [command] é um dos comandos especificados abaixo.

acerca de

Apresenta a versão atual.

Microsoft.Dynamics.RegressionSuite.ConsoleAppabout

cls

Limpa o ecrã.

Microsoft.Dynamics.RegressionSuite.ConsoleAppcls

transferir

Transfere anexos para o caso de teste especificado para o diretório de saída. Pode utilizar o comando list para obter todos os casos de teste disponíveis. Utilize qualquer valor da primeira coluna como um parâmetro test_case_id.

Microsoft.Dynamics.RegressionSuite.ConsoleAppdownload[test_case_id] [output_dir]

transferir: parâmetros obrigatórios
  • test_case_id: Representa o ID do caso de teste.
  • output_dir: Representa o diretório de saída. O diretório deve existir.
transferir: exemplos

download 123 c:\temp\rsat

download 765 c:\rsat\last

editar

Permite-lhe abrir o ficheiro de parâmetros no programa Excel e editá-lo.

Microsoft.Dynamics.RegressionSuite.ConsoleAppedit[excel_file]

editar: parâmetros obrigatórios
  • excel_file: Deve conter um caminho completo para um ficheiro Excel existente.
editar: exemplos

edit c:\RSAT\TestCase_123_Base.xlsx

edit e:\temp\TestCase_456_Base.xlsx

gerar

Gera a execução do teste e dos ficheiros de parâmetros para o caso de teste especificado no diretório de saída. Pode utilizar o comando list para obter todos os casos de teste disponíveis. Utilize qualquer valor da primeira coluna como um parâmetro test_case_id.

Microsoft.Dynamics.RegressionSuite.ConsoleAppgenerate[test_case_id] [output_dir]

gerar: parâmetros obrigatórios
  • test_case_id: Representa o ID do caso de teste.
  • output_dir: Representa o diretório de saída. O diretório deve existir.
gerar: exemplos

generate 123 c:\temp\rsat

generate 765 c:\rsat\last

generatederived

Gera um novo caso de teste, derivado do caso de teste fornecido. Pode utilizar o comando list para obter todos os casos de teste disponíveis. Utilize qualquer valor da primeira coluna como um parâmetro test_case_id.

Microsoft.Dynamics.RegressionSuite.ConsoleAppgeneratederived[parent_test_case_id] [test_plan_id] [test_suite_id]

generatederived: parâmetros obrigatórios
  • parent_test_case_id: Representa o ID do caso de teste principal.
  • test_plan_id: Representa o ID do plano de teste.
  • test_suite_id: Representa o ID do pacote de teste.
generatederived: exemplos

generatederived 123 8901 678

generatetestonly

Gera apenas a execução do ficheiro teste para o caso de teste especificado no diretório de saída. Pode utilizar o comando list para obter todos os casos de teste disponíveis. Utilize qualquer valor da primeira coluna como um parâmetro test_case_id.

Microsoft.Dynamics.RegressionSuite.ConsoleAppgeneratetestonly[test_case_id] [output_dir]

generatetestonly: parâmetros obrigatórios
  • test_case_id: Representa o ID do caso de teste.
  • output_dir: Representa o diretório de saída. O diretório deve existir.
generatetestonly: exemplos

generatetestonly 123 c:\temp\rsat

generatetestonly 765 c:\rsat\last

generatetestsuite

Gera todos os casos de teste para o pacote especificado no diretório de saída. Pode utilizar o comando listtestsuitenames para obter todos os pacotes de teste disponíveis. Utilize qualquer valor da primeira coluna como um parâmetro test_suite_name.

Microsoft.Dynamics.RegressionSuite.ConsoleAppgeneratetestsuite[test_suite_name] [output_dir]

generatetestsuite: parâmetros obrigatórios
  • test_suite_name: Representa o nome do pacote de teste.
  • output_dir: Representa o diretório de saída. O diretório deve existir.
generatetestsuite: exemplos

generatetestsuite Tests c:\temp\rsat

generatetestsuite Purchase c:\rsat\last

ajuda

Idêntico ao ? comando.

lista

Lista todos os casos de teste disponíveis.

Microsoft.Dynamics.RegressionSuite.ConsoleApplist

listtestplans

Lista todos os planos de teste disponíveis.

Microsoft.Dynamics.RegressionSuite.ConsoleApplisttestplans

listtestsuite

Lista casos de teste para o pacote de teste especificado. Pode utilizar o comando listtestsuitenames para obter todos os pacotes de teste disponíveis. Utilize qualquer valor da primeira coluna como um parâmetro suite_name.

Microsoft.Dynamics.RegressionSuite.ConsoleApplisttestsuite[suite_name]

listtestsuite: parâmetros obrigatórios
  • suite_name: Nome do pacote pretendido.
listtestesuite: exemplos

listtestsuite "sample suite name"

listtestsuite NameOfTheSuite

listtestsuitenames

Lista todos os pacotes de teste disponíveis.

Microsoft.Dynamics.RegressionSuite.ConsoleApplisttestsuitenames

reproduzir

Reproduz um caso de teste utilizando um ficheiro Excel.

Microsoft.Dynamics.RegressionSuite.ConsoleAppplayback[excel_file]

reproduzir: parâmetros obrigatórios
  • excel_file: Um caminho completo para o ficheiro Excel. O ficheiro deve existir.
reproduzir: exemplos

playback c:\RSAT\TestCaseParameters\sample1.xlsx

playback e:\temp\test.xlsx

playbackbyid

Reproduz vários casos de teste ao mesmo tempo. Pode utilizar o comando list para obter todos os casos de teste disponíveis. Utilize qualquer valor da primeira coluna como um parâmetro test_case_id.

Microsoft.Dynamics.RegressionSuite.ConsoleAppplaybackbyid[test_case_id1] [test_case_id2] ... [test_case_idN]

playbackbyid: parâmetros obrigatórios
  • test_case_id1: ID do caso do teste de existente.
  • test_case_id2: ID do caso do teste de existente.
  • test_case_idN: ID do caso do teste de existente.
playbackbyid: exemplos

playbackbyid 878

playbackbyid 2345 667 135

playbackmany

Reproduz muitos casos de teste ao mesmo tempo, utilizando ficheiros Excel.

Microsoft.Dynamics.RegressionSuite.ConsoleAppplaybackmany[excel_file1] [excel_file2] ... [excel_fileN]

playbackmany: parâmetros obrigatórios
  • excel_file1: Caminho completo para o ficheiro Excel. O ficheiro deve existir.
  • excel_file2: Caminho completo para o ficheiro Excel. O ficheiro deve existir.
  • excel_fileN: Caminho completo para o ficheiro Excel. O ficheiro deve existir.
playbackmany: exemplos

playbackmany c:\RSAT\TestCaseParameters\param1.xlsx

playbackmany e:\temp\test.xlsx f:\rsat\sample1.xlsx c:\RSAT\sample2.xlsx

playbacksuite

Reproduz todos os casos de teste do pacote de teste especificado. Pode utilizar o comando listtestsuitenames para obter todos os pacotes de teste disponíveis. Utilize qualquer valor da primeira coluna como um parâmetro suite_name.

Microsoft.Dynamics.RegressionSuite.ConsoleAppplaybacksuite[suite_name]

playbacksuite: parâmetros obrigatórios
  • suite_name: Nome do pacote pretendido.
playbacksuite: exemplos

playbacksuite suiteName

playbacksuite sample_suite

sair

Fecha a aplicação.

Microsoft.Dynamics.RegressionSuite.ConsoleAppquit

carregar

Carrega todos os ficheiros pertencentes ao pacote de teste ou aos casos de teste especificados.

Microsoft.Dynamics.RegressionSuite.ConsoleAppupload[suite_name] [testcase_id]

carregar: parâmetros obrigatórios

  • suite_name: Todos os ficheiros pertencentes ao pacote de teste especificado serão carregados.
  • testcase_id: Todos os ficheiros pertencentes ao caso de teste especificado serão carregados.
carregar: exemplos

upload sample_suite

upload 123

upload 123 456

uploadrecording

Carrega apenas os ficheiros de gravação pertencentes aos casos de teste especificados.

Microsoft.Dynamics.RegressionSuite.ConsoleAppuploadrecording[testcase_id]

uploadrecording: parâmetros obrigatórios
  • testcase_id: Os ficheiros de gravação pertencentes aos casos de teste especificados serão carregados.
uploadrecording: exemplos

uploadrecording 123

uploadrecording 123 456

utilização

Mostra duas formas de invocar esta aplicação: uma utilizando um ficheiro de definições predefinido, outra fornecendo um ficheiro de definições.

Microsoft.Dynamics.RegressionSuite.ConsoleAppusage

Exemplos do Windows PowerShell

Executar um caso de teste em ciclo

Tem um script de teste que cria um novo cliente. Através do script, este caso de teste pode ser executado em ciclo, tornando os seguintes dados aleatórios antes de cada iteração ser executada:

  • ID de cliente
  • Nome do cliente
  • Endereço do cliente

O ID do cliente estará no formato ATCUS<number>, onde <number> é um valor entre 000000001 e 999999999.

O exemplo a seguir utiliza um parâmetro, iniciar, para definir o primeiro número que é utilizado. Utiliza um segundo parâmetro, nr, para definir o número de clientes que devem ser criados. Para cada iteração, os parâmetros no ficheiro de parâmetros do Excel são alterados utilizando uma função UpdateCustomer. Em seguida, a linha de comando do RSAT é chamada numa função RunTestCase.

Abra o Microsoft Windows PowerShell Integrated Scripting Environment (ISE) no modo de administrador e cole o seguinte código na janela denominada Untitled1.ps1.

param ( [int]$start = 1, [int]$nr = 1 )
function UpdateCustomer
{
    param ([string]$paramFilename, [string]$sheetName, [string]$CustId)
    $xl = New-Object -COM "Excel.Application"
    $xl.Visible = $false
    $wb = $xl.Workbooks.Open($paramFilename)
    $ws = $wb.Sheets.Item($sheetName)
    $ws.Cells.Item(3, 2).Value = "ATCUS" + $CustId
    $ws.Cells.Item(4, 2).Value = "Automated Test Customer " + $CustId
    $ws.Cells.Item(8, 2).Value = "Automated Test Street " + $CustId
    $wb.Save()
    $wb.Close()
    $xl.Quit()
    [System.Runtime.Interopservices.Marshal]::ReleaseComObject($xl)
}
function RunTestCase
{
    param ( [string]$filename )
    $cmd = "cd c:\Program Files (x86)\Regression Suite Automation Tool\ &&  "
    $cmd = $cmd + "Microsoft.Dynamics.RegressionSuite.ConsoleApp.exe playback "
    $cmd = $cmd + $filename
    cmd /c $cmd
}
$excelFilename = "full path to Excel parameter file"
l$sheetName = "DirPartyQuickCreateForm"
for ($i = $start; $i -lt $start + $nr; $i++ )
{
    $CustomerId = $i.ToString("000000000")
    Write-Host "customer : " $CustomerId
    UpdateCustomer $excelFilename $sheetName $CustomerId
    RunTestCase $excelFilename

Executar um script que depende de dados no Microsoft Dynamics 365

O exemplo a seguir utiliza uma chamada de Protocolo de Open Data (OData) para encontrar o estado da encomenda de uma nota de encomenda. Se o estado não for faturado, pode, por exemplo, chamar um caso de teste do RSAT que publica a fatura.

function Odata_Get
{
    Param ( [string] $environment, [string] $cmd )
    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    $tenant = "your tenant"
    $creds = @{
        grant_type = "client_credentials"
        client_id = "your client application Id"
        client_secret = "your client secret"
        resource = $environment
    }
    $headers = $null
    $bearer = Invoke-RestMethod https://login.microsoftonline.com/$tenant/oauth2/token -Method Post -Body $creds -Headers $headers;
    $headers = @{
        Authorization = "Bearer " + $bearer.access_token
    }
    $Odata_cmd = $environment + '/data/' + $cmd
    return (Invoke-RestMethod -Uri $Odata_cmd -Method Get -Headers $headers -ContentType application/json )
}
function PurchaseOrderStatus
{
    Param ( [string] $environment, [string] $purchaseOrderNumber )
    $cmd = 'PurchaseOrderHeaders?$filter=PurchaseOrderNumber eq '
    $cmd = $cmd + "'" + $purchaseOrderNumber + "'"
    $response = Odata_Get -environment $environment -cmd $cmd
    return $response.value.PurchaseOrderStatus
}
$environment = "https://your environment"
$orderStatus = PurchaseOrderStatus -environment $environment -purchaseOrderNumber '000003'
if ($orderStatus -eq $null) {   write-host 'doesn''t exist'}
elseif ($orderStatus -ne 'invoiced') { RunTestCase "PostInvoice" }