Este guia descreve como executar um XCTest ou loop de jogo usando a CLI 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 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 executar testes em várias versões do iOS e em tipos diferentes de 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 suportadas pela versão do iOS do dispositivo), substitua
models
,versions
oulocales
pordimension
com o 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 uma flag--device
separada: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 flag
--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=15
Para ajudar a identificar e localizar as matrizes de teste no Console do Firebase, você tem a opção de identificar sua matriz de teste com a flag
--client-details matrixLabel="<label>"
no exemplo abaixo:gcloud beta firebase test ios run --test PATH/TO/MyTests.zip \ --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1 \ --client-details matrixLabel="my label"
Testar direitos especiais
Para testar direitos que exigem um ID do aplicativo explícito, configure a sinalização --test-special-entitlements
. Test Lab
assina novamente o aplicativo com um novo identificador de pacote para dar suporte a solicitações,
portanto, verifique se não há recursos no seu arquivo ZIP
contendo referências diretas ao identificador do pacote do app.
- Notificações push
apns-environment
- VPN pessoal
com.apple.developer.networking.vpn.api
Para autorizar solicitações de notificação push, os usuários podem criar tokens JSON da Web usando a chave de assinatura privada com o ID da chave - C7FD9DJAA8 e o ID da equipe: 9CKCGNNUQN. Os tokens gerados seriam válidos por uma hora e precisariam ser atualizados a cada 60 minutos. Leia mais sobre Como estabelecer uma conexão a APNs baseada em token.
Grupos de appsOs IDs dos grupos de apps são universalmente exclusivos. Isso significa que, quando assinamos novamente os apps dos usuários, só podemos usar o ID do grupo de aplicativos associado à conta de desenvolvedor do Test Lab. Se o teste depender de grupos de apps, ele vai falhar.
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 3 (opcional): automatizar testes futuros criados por você
Como escrever scripts de comandos gcloud com 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 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 vários 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 4: analisar 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. Uma vez finalizados os testes, analise os resultados. Consulte Como analisar os resultados do Firebase Test Lab para saber mais sobre como interpretar os resultados do teste.
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 na versão Beta.