Introdução aos testes de IU do Gaia

Gaia-ui-tests é uma suite de testes da Mozilla para executar casos de testes de IU (Interface do Usuário) end-to-end no Gaia, a Interface do Usuário do Firefox OS. Todos os testes são escritos em Python com algum JavaScript usado para interagir com as APIs do Firefox OS. Esse conjunto de tutoriais explica como configurar o ambiente para escrever e executar os testes.

Gaia-ui-tests usa Gaiatest, um pacote Python baseado no Marionette. Gaiatest é projetado para empacotar HTML locators, chamadas ao Marionette e APIs para uma comunicação interoperável. Marionette é baseado em padrões W3C e desenvolvido pela Selenium WebDriver uma interface de programas para automação de navegador. Se você já usou WebDriver e objetos page/app você vai achar muito fácil usar o Marionette e gaiatest.

Iniciando os testes de IU do Gaia

Para aqueles interessados em começar com testes automáticos no Gaia/Firefox OS nós temos uma série de tutoriais que ajudará a escrever seus próprios testes. Uma vez que você completou esse tutorial você terá conhecimento o suficiente sobre teste, Firefox OS e Marionette para iniciar como um testador da Mozilla. É altamente recomendado que você complete esse tutorial se você deseja tornar-se um contribuidor.

Parte 1: Iniciando com o Marionette e Firefox OS
Esse artigo cobre a instalação das ferramentas que você vai precisar para executar os testes como B2G Desktop, Python e o Marionette.
Parte 2: Interações básicas com o Firefox OS usando o Marionette
Uma visão geral dos comandos básicos que você usará para manipular o Firefox OS via Marionette.
Parte 3: Atualizando nosso código em um teste reusável
Seguindo em frente, nesse artigo nós montaremos alguns comandos básicos dentro de um teste simples num arquivo Python para que possam ser executados como uma única entidade.
Parte 4: Reutilizando comandos para configurar Firefox OS
Aqui veremos alguns comandos nos métodos Python para promover a reutilização de código.
Parte 5: Introduzindo um executor de teste
Um executor de teste (test runner) é um recurso central de qualquer boa suíte de testes, possibilitando a você executar múltiplos testes e reportar resultados agregados. Nesse artigo vamos explorar o básico do executor de teste em Python unittest.
Parte 6: Usando tuplas e a classe By do Marionette
Será explicado como reduzir duplicação de código, armazenando locators repetidos em tuplas e simplificando a sintaxe com a classe By.
Parte 7: Writing your own tests
Agora que você já sabe o básico, é hora de escrever seus próprios testes! Aqui nós fornecemos algumas recomendações para tornar o trabalho mais fácil e sugerimos alguns testes para você mesmo tentar e escrever.
Parte 8: Usando uma classe base
Nesse estado atual, nosso arquivo de teste contém todo o código para o executor de teste. Isso está ok por enquanto, mas assim que você começar a executar muitos arquivos de teste haverá muita duplicação. Aqui nós solucionamos esse problema abstraindo o código do executor de testes em classes Python seperadas.
Parte 9: Reduzindo a duplicação com objetos app
Como um melhoramento final a manutenção do código, nesse artigo vamos explorar código abstrato que manipula a interação com aplicativos específicos do Firefox OS nos objetos app do Python.

Tópicos avançados

Uma vez que você já conhece o básico para escrever e executar os testes, você vai querer avançar em um trabalho mais avançado, como executar a suíte completa do gaia-ui-tests, ou o registro do consumo de energia como o resultado de um teste.

Executando gaia-ui-tests
Guias para executar a suíte gaia-ui-tests em dispositivos Firefox OS reais e no B2G Desktop em uma variedade de configurações.
Coletando dados de consumo de energia
Como usar o gaiatest para registrar o consumo de energia durante a execução do teste.

Veja também

Repositório principal do Gaia-ui-tests

Questões e comentários

Esse projeto está em um estágio inicial, então seu feedback será muito útil para nós:

Etiquetas do documento e colaboradores

 Colaboradores desta página: jwhitlock, rbrandao, chrisdavidmills
 Última atualização por: jwhitlock,