获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

Teste com a CLI do gcloud

Este guia descreve como executar um teste XCTest ou Game Loop usando a CLI do gcloud.

Etapa 1 : configurar seu ambiente local do SDK do Google Cloud

  1. Faça o download do SDK do Google Cloud.
  2. Isso inclui a ferramenta CLI gcloud.

  3. Verifique se sua instalação está atualizada e inclui o comando gcloud firebase firebase:
          gcloud components update
  4. Faça login na CLI do gcloud usando sua conta do Google:
          gcloud auth login
  5. Defina seu projeto do Firebase no gcloud, onde PROJECT_ID é o ID do seu projeto do Firebase:
         gcloud config set project PROJECT_ID

Etapa 2 : execute seu teste

Execute um XCTest

  1. Carregue o arquivo .zip do seu teste executando o seguinte comando (se você ainda não tiver empacotado seu aplicativo, consulte Empacotando seu XCTest ):

    cd FOLDER_WITH_TEST_OUTPUT/Build/Products ; \
    zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
  2. Escolha suas dimensões de teste.

    O Test Lab permite que você execute testes em uma variedade de versões, dispositivos, orientações de tela e localidades do iOS. Essas configurações são conhecidas como dimensões de teste do teste . Para ver as opções de cada dimensão (por exemplo, versões Xcode compatíveis para a versão iOS do dispositivo), substitua models , versions ou locales para dimension no comando a seguir:

    gcloud firebase test ios dimension list

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

    Examine a lista de dimensões de teste e selecione algumas combinações nas quais você gostaria de executar seu teste. Visite Planos de preços para ver o número máximo de combinações que você pode executar por dia.

  3. 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ê deseja 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 com a qual o teste foi criado e a versão padrão do Xcode usada pelo Test Lab. Para especificar uma versão compatível do Xcode para seu teste, use 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

Direitos especiais de teste

Para testar os direitos que exigem um ID do aplicativo explícito, você pode fazer isso definindo o --test-special-entitlements . O Test Lab assina novamente o aplicativo com um novo identificador de pacote para oferecer suporte a direitos especiais, portanto, verifique se não há recursos em seu arquivo zip contendo referências diretas ao ID do pacote do aplicativo.

Notificações via push

Para autorizar solicitações de notificação por push, os usuários podem criar tokens da Web JSON usando a chave de assinatura privada junto 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 baseada em token para APNs.

Grupos de aplicativos

Os IDs do grupo de aplicativos são universalmente exclusivos. Isso significa que, quando assinamos novamente os aplicativos do usuário, só podemos usar o ID do grupo de aplicativos associado à conta de desenvolvedor do Test Lab. Se seu teste depender de grupos de aplicativos, seu teste falhará.

Executar um teste de loop de jogo

Execute o gcloud beta firebase test ios run e use as seguintes sinalizações para configurar a execução:

Sinalizadores para testes de loop de jogo
--type

Obrigatório : especifica o tipo de teste do iOS que você deseja executar. Você pode inserir os tipos de teste xctest (padrão) ou game-loop .

--app

Obrigatório : caminho absoluto (GCS ou sistema de arquivos) para o arquivo IPA do seu aplicativo. Este sinalizador só é válido ao executar testes de Game Loop.

--scenario-numbers

Os loops (também conhecidos como cenários) que você deseja executar em seu aplicativo. Você pode inserir um loop, uma lista ou loops ou um intervalo de loops. O loop padrão é 1.

Por exemplo, --scenario-numbers=1-3,5 executa os loops 1, 2, 3 e 5.

--device-model

O dispositivo físico em que você deseja executar seu teste (descubra quais dispositivos disponíveis você pode usar).

--timeout

A duração máxima que você deseja que seu teste seja executado. Você pode 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.

Por exemplo:

  • --timeout=200 força seu teste a terminar quando é executado em até 200 segundos.
  • --timeout=1h força seu teste a terminar quando é executado em até uma hora.

Por exemplo, o comando a seguir executa um teste de Loop de Jogo que executa os 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 obter mais informações sobre a CLI do gcloud, consulte a documentação de referência .

Etapa 4 (opcional) : automatize os testes futuros que você criar

Como criar scripts de comandos gcloud com o Test Lab

Você pode usar scripts de shell ou arquivos em lote para automatizar comandos de teste de aplicativos para dispositivos móveis que você executaria usando a linha de comando gcloud. Este script bash de amostra executa um XCTest com um tempo limite de dois minutos e informa se a execução do teste foi concluída com êxito:

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 de script

O Test Lab fornece vários códigos de saída que você pode usar para entender melhor os resultados dos testes executados usando scripts ou arquivos em lote.

Código de saída Notas
0 Todas as execuções de teste foram aprovadas.
1 Ocorreu uma falha geral. As causas possíveis incluem: um nome de arquivo que não existe ou um erro HTTP/rede.
2 O teste foi encerrado porque comandos ou argumentos desconhecidos foram fornecidos.
10 Um ou mais casos de teste (classes testadas ou métodos de classe) em uma execução de teste não foram aprovados.
15 O Firebase Test Lab não conseguiu determinar 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 : Investigue os resultados do teste

Quando o teste é iniciado, você recebe um link para a página Resultados do teste . Os testes podem levar alguns minutos para serem executados, dependendo do número de configurações diferentes que você selecionou e da duração do tempo limite de teste definida para seus testes. Depois que seus testes forem executados, você poderá revisar os resultados do teste. Consulte 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 geralmente disponíveis ou em versão beta .