Ir para o console

Primeiros passos com o Firebase Test Lab na linha de comando do gcloud

Com o Firebase Test Lab, você testa seu app para iOS em vários dispositivos por meio da interface da linha de comando do gcloud. Continue lendo para descobrir como começar.

Criar um projeto do Firebase

Se você não tiver um projeto do Firebase para o app, acesse o Console do Firebase e clique em Criar novo projeto para fazer isso agora mesmo. Você precisa ser o proprietário ou ter permissões de edição no projeto.

Você pode usar o Test Lab para um número limitado de execuções diárias de teste nos planos Spark e Flame. Para usar o Test Lab sem limites diários de cota, faça upgrade para o plano Firebase Blaze.

Configurar o ambiente local do Google Cloud SDK

  1. Faça o download da ferramenta de linha de comando do gcloud caso ainda não tenha feito isso: Google Cloud SDK
  2. Verifique se a instalação do Cloud SDK está atualizada e se ela inclui o comando gcloud firebase:
    gcloud components update
  3. Verifique se as credenciais de autenticação estão atualizadas:
    gcloud auth login
  4. Configure seu projeto atual no gcloud:
    gcloud config set project PROJECT_ID

Criar XCtests para seu app

Para criar seu teste, use o seguinte comando no terminal:

project

xcodebuild -project PATH/TO/YOUR_WORKSPACE.xcodeproj \
  -scheme YOUR_SCHEME \
  -derivedDataPath FOLDER_WITH_TEST_OUTPUT \
  -sdk iphoneos build-for-testing

workspace

xcodebuild -workspace PATH/TO/YOUR_WORKSPACE.xcworkspace \
  -scheme YOUR_SCHEME \
  -derivedDataPath FOLDER_WITH_TEST_OUTPUT \
  -sdk iphoneos build-for-testing

Depois de criar o projeto, faça upload para o Test Lab:

cd FOLDER_WITH_TEST_OUTPUT/Build/Products ; \
zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun

Executar seus testes

Escolha suas dimensões de teste

O Test Lab permite que você execute testes em várias versões, dispositivos, orientações de tela e localidades do iOS. Essas configurações são conhecidas como dimensões de teste. Para ver as opções de cada dimensão, substitua models, versions ou locales por dimension no seguinte comando:

gcloud firebase test ios dimension list

A orientação da tela é um pouco mais simples, porque as únicas opções são portrait e landscape.

Examine a lista de dimensões de teste e selecione algumas combinações nas quais você quer realizar seu teste. Se você estiver nos planos Spark ou Flame, poderá executar até cinco combinações por dia. Se você estiver no plano Blaze, poderá realizar testes em combinações ilimitadas por dia, mas só poderá incluir até 200 combinações em cada execução. Para mais informações sobre limites e preços de teste, consulte Planos de preços.

Executar os testes

Depois de escolher um conjunto de dimensões de teste, você pode fazer com que o Test Lab execute seus testes usando o comando firebase test ios run. Para cada combinação de dimensões de teste que você quiser testar, inclua um sinalizador --device separado:

gcloud firebase test ios run --test PATH/TO/MyTests.zip \
  --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1 \
  --device model=MODEL_ID_2,version=VERSION_ID_2,locale=LOCALE_2,orientation=ORIENTATION_2 \
  etc...

É possível que seu teste falhe devido a uma incompatibilidade entre a versão do Xcode usada para criar o teste e a versão padrão do Xcode usada pelo Test Lab. Para escolher a versão do Xcode a ser usada nos testes, use a sinalização --xcode-version:

gcloud firebase test ios run --test PATH/TO/MyTests.zip \
  --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1 \
  --xcode_version=9.4

Analisar os resultados do teste

Quando o teste é concluído, a ferramenta gcloud imprime um resumo dos resultados do seu teste. Como parte do resumo, a ferramenta inclui um link para visualizar resultados mais detalhados no Console do Firebase. Para saber mais sobre como interpretar esses resultados, consulte Como analisar resultados de teste do Firebase.

Automatizar testes futuros

Como escrever scripts de comandos do gcloud com o Test Lab

Use scripts de shell ou arquivos em lote para automatizar os testes de apps para dispositivos móveis que seriam executados com a linha de comando do gcloud. Este script bash de amostra executa um XCTest com um tempo limite de dois minutos. O resultado é exibido, informando se o teste foi concluído com sucesso:

if gcloud firebase test ios run --test MyTest.zip --timeout 2m
then
    echo "Test matrix successfully finished"
else
    echo "Test matrix exited abnormally with non-zero exit code: " $?
fi

Códigos de saída do script

O Test Lab fornece diversos códigos de saída que podem ser usados para entender melhor os resultados dos testes que você executa usando scripts ou arquivos em lote.

Códigos de saída de script do Test Lab

Código de saída Observações
0 Todas as execuções de testes foram aprovadas.
1 Ocorreu uma falha geral. As possíveis causas incluem um nome de arquivo que não existe ou um erro de HTTP/rede.
2 O teste foi encerrado porque comandos ou argumentos desconhecidos foram fornecidos.
10 Um ou mais casos de testes (classes ou métodos de classes testados) foram reprovados na execução do teste.
15 Não foi possível determinar no Firebase Test Lab se a matriz de teste foi aprovada ou reprovada devido a um erro inesperado.
19 A matriz de teste foi cancelada pelo usuário.
20 Ocorreu um erro de infraestrutura de teste.

Próxima etapa

Explore o SDK da linha de comando do Test Lab para iOS: gcloud firebase test ios