Partilhar via


Considerações sobre testes de interface do usuário

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Ao executar testes automatizados no pipeline CI/CD, poderá precisar de uma configuração especial para executar testes da IU, por exemplo, testes do Selenium, do Appium ou da IU Codificada. Este artigo descreve as considerações típicas para executar testes de interface do usuário.

Pré-requisitos

Familiarize-se com agentes e implante um agente no Windows.

Modo sem cabeça ou modo de interface do usuário visível?

Ao executar testes do Selenium para um aplicativo Web, você pode iniciar o navegador de duas maneiras:

  1. Modo sem cabeça. Nesse modo, o navegador é executado normalmente, mas sem que nenhum componente da interface do usuário seja visível. Embora esse modo não seja útil para navegar na Web, ele é útil para executar testes automatizados de forma autônoma em um pipeline de CI/CD. Os navegadores Chrome e Firefox podem ser executados no modo sem cabeça.

    Esse modo geralmente consome menos recursos na máquina porque a interface do usuário não é renderizada e os testes são executados mais rapidamente. Como resultado, potencialmente mais testes podem ser executados em paralelo na mesma máquina para reduzir o tempo total de execução do teste.

    As capturas de tela podem ser capturadas nesse modo e usadas para solucionar problemas de falhas.

    Nota

    O navegador Microsoft Edge atualmente não pode ser executado no modo sem cabeça.

  2. Modo de interface do usuário visível. Nesse modo, o navegador é executado normalmente e os componentes da interface do usuário são visíveis. Ao executar testes neste modo no Windows, é necessária uma configuração especial dos agentes .

Se você estiver executando testes de interface do usuário para um aplicativo de área de trabalho, como testes de Appium usando WinAppDriver ou testes de interface do usuário codificada, uma configuração especial dos agentes será necessária.

Gorjeta

Os testes de interface do usuário de ponta a ponta geralmente tendem a ser de longa execução. Ao usar o modo de interface do usuário visível, dependendo da estrutura de teste, talvez não seja possível executar testes em paralelo na mesma máquina porque o aplicativo deve estar em foco para receber eventos de teclado e mouse. Nesse cenário, você pode acelerar os ciclos de teste executando testes em paralelo em máquinas diferentes . Consulte Executar testes em paralelo para qualquer executor de teste e executar testes em paralelo usando a tarefa de teste do Visual Studio.

Teste da interface do usuário no modo de interface do usuário visível

Uma configuração especial é necessária para que os agentes executem testes de interface do usuário no modo de interface do usuário visível.

Teste visível da interface do usuário usando agentes hospedados pela Microsoft

Teste de interface do usuário visível em não suportado em agentes hospedados pela Microsoft. O teste falha com a mensagem de erro "elemento não interactable". Os agentes hospedados pela Microsoft oferecem suporte a testes de navegador sem cabeça.

Teste de interface do usuário no modo Headless usando agentes hospedados pela Microsoft

Os agentes hospedados pela Microsoft são pré-configurados para testes de interface do usuário e testes de interface do usuário para aplicativos Web. Os agentes hospedados pela Microsoft também são pré-configurados com navegadores populares e versões de driver da Web correspondentes que podem ser usadas para executar testes Selenium. Os navegadores e os drivers da Web correspondentes são atualizados periodicamente. Para saber mais sobre como executar testes de Selenium, consulte Teste de interface do usuário com selênio.

Teste visível da interface do usuário usando agentes do Windows auto-hospedados

Os agentes configurados para serem executados como serviço podem executar testes do Selenium somente com navegadores sem cabeça. Se você não estiver usando um navegador sem cabeça ou se estiver executando testes de interface do usuário para aplicativos da área de trabalho, os agentes do Windows deverão ser configurados para serem executados como um processo interativo com o logon automático habilitado.

Ao configurar agentes, selecione 'Não' quando solicitado a executar como um serviço. As etapas subsequentes permitem configurar o agente com o logon automático. Quando os testes da interface do usuário são executados, os aplicativos e navegadores são iniciados no contexto do usuário especificado nas configurações de logon automático.

Se você usar a Área de Trabalho Remota para acessar o computador no qual um agente está sendo executado com o logon automático, simplesmente desconectar a Área de Trabalho Remota fará com que o computador seja bloqueado e todos os testes de interface do usuário executados nesse agente poderão falhar. Para evitar falhas, use o comando tscon no computador remoto para se desconectar da Área de Trabalho Remota. Por exemplo:

%windir%\System32\tscon.exe 1 /dest:console

Neste exemplo, o número '1' é o ID da sessão da área de trabalho remota. Este número pode mudar entre sessões remotas, mas pode ser visualizado no Gestor de Tarefas. Como alternativa, para automatizar a localização do ID de sessão atual, crie um arquivo em lotes contendo o seguinte código:

for /f "skip=1 tokens=3" %%s in ('query user %USERNAME%') do (
  %windir%\System32\tscon.exe %%s /dest:console
)

Salve o arquivo em lotes e crie um atalho na área de trabalho para ele e, em seguida, altere as propriedades do atalho para 'Executar como administrador'. A execução do arquivo em lotes a partir desse atalho desconecta-se da área de trabalho remota, mas preserva a sessão da interface do usuário e permite a execução de testes da interface do usuário.

Provisionando agentes em VMs do Azure para testes de interface do usuário

Se você estiver provisionando máquinas virtuais (VMs) no Azure, a configuração do agente para teste de interface do usuário estará disponível por meio do artefato Agent for DevTest Labs.

agentArtifactDTL

Definindo a resolução da tela

Antes de executar testes de interface do usuário, talvez seja necessário ajustar a resolução da tela para que os aplicativos sejam renderizados corretamente. Para isso, uma tarefa de utilitário de resolução de tela está disponível no Marketplace. Use essa tarefa em seu pipeline para definir a resolução da tela para um valor suportado pela máquina do agente. Por padrão, esse utilitário define a resolução para o valor ideal suportado pela máquina do agente.

Se você encontrar falhas usando a tarefa de resolução de tela, verifique se o agente está configurado para ser executado com o logon automático habilitado e se todas as sessões da área de trabalho remota estão desconectadas com segurança usando o comando tscon , conforme descrito acima.

Nota

A tarefa do utilitário de resolução de tela é executada no agente unificado de compilação/versão/teste e não pode ser usada com a tarefa Executar testes funcionais obsoleta. A tarefa de resolução util também não funciona para máquinas virtuais do Azure.

Solução de problemas de falhas em testes de interface do usuário

Quando você executa testes de interface do usuário de maneira autônoma, a captura de dados de diagnóstico, como capturas de tela ou vídeo , é útil para descobrir o estado do aplicativo quando a falha foi encontrada.

Capturar capturas de tela

A maioria das estruturas de teste de interface do usuário fornece a capacidade de capturar capturas de tela. As capturas de tela coletadas ficam disponíveis como um anexo aos resultados do teste quando esses resultados são publicados no servidor.

Se você usar a tarefa de teste do Visual Studio para executar testes, capturas de tela capturadas devem ser adicionadas como um arquivo de resultado para estarem disponíveis no relatório de teste. Para isso, use o seguinte código:

Primeiro, certifique-se de que TestContext está definido em sua classe de teste. Por exemplo: public TestContext TestContext { get; set; }

Adicione o arquivo de captura de tela usando TestContext.AddResultFile(fileName); //Where fileName is the name of the file.

Se você usar a tarefa Publicar resultados de teste para publicar resultados, os anexos de resultados de teste só poderão ser publicados se você estiver usando o formato de resultados VSTest (TRX) ou o formato de resultados do NUnit 3.0.

Os anexos de resultados não podem ser publicados se você usar os resultados do teste JUnit ou xUnit. Isso ocorre porque esses formatos de resultado de teste não têm uma definição formal para anexos no esquema de resultados. Em vez disso, você pode usar uma das abordagens abaixo para publicar anexos de teste.

  • Se você estiver executando testes no pipeline de compilação (CI), poderá usar a tarefa Copiar e publicar artefatos de compilação para publicar mais arquivos criados em seus testes. Eles aparecem na página Artefatos do resumo da compilação.

  • Use as APIs REST para publicar os anexos necessários. Exemplos de código podem ser encontrados neste repositório GitHub.

Capturar vídeo

Se você usar a tarefa de teste do Visual Studio para executar testes, o vídeo do teste pode ser capturado e está automaticamente disponível como um anexo ao resultado do teste. Para isso, você deve configurar o coletor de dados de vídeo em um arquivo .runsettings e esse arquivo deve ser especificado nas configurações da tarefa.

runSettings

Ajuda e suporte