Article image
Fábio Quispe
Fábio Quispe09/09/2023 12:01
Compartilhe

Testes com Maestro para Aplicativos Flutter

  • #Flutter

Compartilho minha experiencia com o uso do Maestro como uma ferramenta de automação de testes específica para o uso em aplicativos Flutter.

O Desafio dos Testes em Aplicativos Flutter

Antes de mergulharmos nos detalhes do Maestro, é essencial entender alguns dos desafios comuns enfrentados ao automatizar testes em aplicativos Flutter:

1. Renderização Personalizada

O Flutter utiliza sua própria estrutura de renderização, o que pode tornar a identificação de elementos de interface do usuário mais complexa, pois eles não correspondem diretamente aos elementos nativos do Android ou iOS.


2. Manutenção de Testes

Como as interfaces de usuário podem ser alteradas com frequência, a manutenção de testes automatizados deve ser eficiente e fácil de realizar.


Maestro: Automatização de Testes com Acessibilidade

O Maestro é uma ferramenta de automação de testes que se destaca quando se trata de lidar com aplicativos Flutter que priorizam a acessibilidade.

Prós do Maestro

1. Tolerância a Flakiness e Atrasos

O Maestro é projetado para lidar com a instabilidade comum em aplicativos móveis, como elementos que não estão sempre onde se espera e atrasos na carga de conteúdo. Isso garante que seus testes sejam robustos e confiáveis, mesmo em situações menos ideais.


2. Iteração Rápida

Os testes no Maestro são interpretados, o que significa que você não precisa recompilar constantemente seu aplicativo. Isso agiliza o processo de desenvolvimento e execução de testes, permitindo iterações mais rápidas.


3. Sintaxe Declarativa

O Maestro permite que você defina seus testes em um formato declarativo, o que pode simplificar significativamente a criação de testes. Isso é especialmente útil para equipes que não têm experiência em programação.


4. Compatibilidade com Recursos de Acessibilidade

O Flutter expõe rótulos de acessibilidade aos recursos do sistema operacional, e através deles o Maestro consegue lidar com elementos que não tenha texto como botões com ícones ou imagens.


Contras do Maestro

1. Limitações na Integração com Farms de Dispositivos

Até o momentoo Maestro não é compatível com integração nos farms de dispositivos que oferecem suporte ao Appium, limitando as opções de execução de testes em dispositivos reais. Ele é executado apenas no emulador do Maestro Cloud, ou localmente.


2. Dificuldade na Localização de Elementos sem Texto

O Maestro pode enfrentar dificuldades na localização de elementos que não possuem texto associado. Isso pode incluir elementos como botões com ícones ou imagens onde não há texto para referência, ou não se utiliza a acessibilidade.


Considerações nos Testes

Durante os testes com o Maestro, observei algumas questões importantes que vale a pena destacar:

Localização de Elementos: Encontrada limitação de que nenhuma chave declarada no Flutter é reconhecida pelo Maestro. Como resultado, a opção viável para identificação de elementos foi o uso de texto. O Maestro conseguiu reconhecer o texto em campos como "título," "CPF," "Senha," e "Esqueci a Senha."

imageImagem da tela de iteração do elemento do Maestro localizando o titulo por texto

image

Imagem da tela de iteração do elemento do Maestro localizando o CPF por texto

Elementos sem Texto: No entanto, encontramos dificuldades ao localizar elementos que não possuíam texto associado, como os botões "Entrar" e "Limpar," que eram representados apenas por ícones.

image

Imagem da tela de iteração do elemento do Maestro não localizando o botão Entrar por ser um ícone

imageImagem da tela de iteração do elemento do Maestro não localizando o botão Limpar por ser um ícone

Localização por Classes: Tentamos encontrar elementos por suas classes, mas o Maestro não reconheceu os elementos do aplicativo, apenas os elementos nativos do Android.

imageImagem fazendo uma busca de elemento pela classe button mas não aparecendo o elemento do app apenas elementos do Nativo do Android

Reconhecimento de Semantic Label: No entanto, o Maestro reconhece o Semantic Label, que é usado no Flutter para descrever widgets. Esse recurso é vital para tecnologias assistivas, mecanismos de busca e outros softwares de análise semântica, pois ajuda a determinar o significado da aplicação.

image

Imagem da tela de iteração do elemento do Maestro localizando o botão Entrar pelo Semantic Label

image

Imagem da tela de iteração do elemento do Maestro localizando o botão Limpar pelo Semantic Label

Sintaxe declarativa

A simplicidade do código do teste é excelente, não necessitando de conhecimentos de programação

image

Imagem do código do teste do Maestro

Você pode consultar o teste de exemplo com o Maestro disponível no repositório do GitHub.

Dificuldades na Instalação no Windows

É importante mencionar a dificuldade durante a instalação do Maestro no ambiente Windows, seguindo a documentação oficial, que estava incompleta. No entanto, graças ao guia criado pelo Goku, intitulado "Um Guia Definitivo para Configurar o Framework Maestro no Windows," consegui superar essas dificuldades. Você pode encontrar esse guia detalhado no seguinte link: Um Guia Definitivo para Configurar o Framework Maestro no Windows.

Conclusão

A inclusão de rótulos de acessibilidade (Semantic Labels) em aplicativos Flutter se torna necessária quando os elementos não possuem texto para identificação durante os testes automatizados. O Maestro se destaca como uma ferramenta sólida para automatização de testes, especialmente em aplicativos Flutter que enfatizam a acessibilidade.

Essa é uma visão geral das vantagens e desvantagens do Maestro como uma ferramenta de automação de testes para aplicativos Flutter. Lembre-se de que a escolha da ferramenta de automação de testes deve se alinhar às necessidades específicas do projeto e às competências da equipe de desenvolvimento.

Se você tiver alguma dúvida ou precisar de assistência adicional, não hesite em entrar em contato. Você pode encontrar os testes de exemplo e recursos adicionais no repositório de teste com o Maestro no GitHub.

Boa avaliação e sucesso em seus testes de aplicativos Flutter com o Maestro!

#QA #Teste #Flutter

Compartilhe
Comentários (0)