Este guia descreve como executar um XCTest ou loop de jogo usando a CLI do gcloud.
Etapa 1: configurar o ambiente local do SDK do Google Cloud
- Faça o download do SDK do Google Cloud.
- Verifique se a instalação está atualizada e inclui o comando
gcloud firebase
:gcloud components update
- Faça login na CLI do gcloud usando sua Conta do Google:
gcloud auth login
- Defina seu projeto do Firebase no gcloud, em que PROJECT_ID é o ID do projeto do Firebase:
gcloud config set project PROJECT_ID
Isso inclui a ferramenta CLI do gcloud.
Etapa 2: executar o teste
Executar um XCTest
Faça o upload do arquivo .ZIP do teste. Para isso, basta executar o comando a seguir. Caso ainda não tenha criado um pacote do app, consulte Como criar um pacote do XCTest:
cd FOLDER_WITH_TEST_OUTPUT/Build/Products ; \ zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
Escolhe as dimensões do seu teste
O Test Lab permite que você execute testes em várias versões do iOS, dispositivos, orientações de tela e localidades. Essas configurações são conhecidas como dimensões de teste. Para ver as opções de cada dimensão (por exemplo, versões do Xcode compatíveis com a versão do iOS do dispositivo), substitua
models
,versions
oulocales
pordimension
. 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
elandscape
.Examine a lista de dimensões de teste e selecione algumas combinações em que você quer realizar seu teste. Acesse Planos de preços para ver o número máximo de combinações que podem ser executadas por dia.
Depois de escolher um conjunto de dimensões de teste, é possível 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 usada pelo Test Lab. Para especificar uma versão do Xcode compatível com o teste, 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=11.3
Executar um teste de loop de jogo
Execute o comando gcloud beta firebase test ios run
e use as seguintes sinalizações para configurar a execução:
Sinalizações para testes de loop de jogo | |
---|---|
--type
|
Obrigatório: especifica o tipo de teste do iOS que você quer executar. É possível inserir tipos de teste |
--app
|
Obrigatório: caminho absoluto (GCS ou sistema de arquivos) para o arquivo IPA do seu aplicativo. Essa sinalização só é válida ao executar testes de loop de jogo. |
--scenario-numbers
|
Os loops (também conhecidos como cenários) que você quer executar no seu aplicativo. É possível inserir um loop, uma lista ou loops, ou um intervalo de loops. O loop padrão é 1.
Por exemplo, |
--device-model
|
O dispositivo físico em que você quer executar o teste (descubra quais dispositivos disponíveis é possível usar). |
--timeout
|
A duração máxima do teste a ser executado. É possível inserir um número inteiro para representar a duração em segundos ou um número inteiro e uma enumeração para representar a duração como uma unidade de tempo mais longa. Exemplo:
|
Por exemplo, o comando a seguir executa um teste de loop de jogo que executa loops 1, 4, 6, 7 e 8 em um iPhone 8 Plus:
gcloud beta firebase test ios run --type game-loop --app path/to/my/App.ipa --scenario-numbers 1,4,6-8 --device-model=iphone8plus
Para mais informações sobre a CLI gcloud, consulte a documentação de referência.
Etapa 4 (opcional): automatize testes futuros criados por você.
Como escrever scripts de comandos 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ó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. |
Etapa 5: investigar os resultados do teste
Quando o teste começar, você receberá um link para a página de Resultados do teste. Pode demorar alguns minutos para que os testes sejam executados, dependendo da quantidade de configurações diferentes que você selecionou e do tempo limite definido para os testes. Depois da execução dos testes, é possível analisar os resultados. Consulte Como analisar os resultados do Firebase Test Lab e aprenda a interpretar esses resultados.
Próxima etapa
Leia a documentação do SDK do Google Cloud para explorar as opções de teste que têm disponibilidade geral ou estão disponíveis na versão Beta.