Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Teste com a CLI do gcloud

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

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

Etapa 1 : configurar seu ambiente local do Google Cloud SDK

  1. Baixe o SDK do Google Cloud.
  2. Isso inclui a ferramenta gcloud CLI.

  3. Certifique-se de que sua instalação esteja atualizada e inclua 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 Firebase em gcloud, onde PROJECT_ID é o ID do seu projeto Firebase:
         gcloud config set project PROJECT_ID

Etapa 2 : execute o teste

Executar um XCTest

  1. Carregue o arquivo .zip de seu teste executando o seguinte comando (se 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 executar 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 para cada dimensão (por exemplo, versões compatíveis do Xcode para a versão iOS do dispositivo), 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, 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 gostaria de executar o 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

Testar direitos especiais

Para testar direitos que exigem um ID de 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, certifique-se de que não haja 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, podemos usar apenas o ID do grupo de aplicativos associado à conta de desenvolvedor do Test Lab. Se seu teste depende de grupos de aplicativos, seu teste falhará.

Executar um teste de loop de jogo

Execute o gcloud beta firebase test ios run e use os seguintes sinalizadores para configurar a execução:

Flags para testes de Game Loop
--type

Obrigatório : especifica o tipo de teste do iOS que você deseja executar. Você pode inserir 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 no qual você deseja executar o 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 o término do seu teste quando ele é executado por até 200 segundos.
  • --timeout=1h força o término do seu teste quando ele é executado por 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 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 móveis que, de outra forma, seriam executados usando a linha de comando gcloud. Este exemplo de script bash executa um XCTest com um tempo limite de dois minutos e relata se a execução do teste foi concluída 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 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 possíveis causas incluem: um nome de arquivo que não existe ou um erro de HTTP/rede.
2 O teste foi encerrado porque foram fornecidos comandos ou argumentos desconhecidos.
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.

Passo 5 : Investigue os resultados do teste

Quando o teste for iniciado, você receberá 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 definido para seus testes. Depois que seus testes forem executados, você poderá revisar os resultados do teste. Consulte Analisando os resultados do laboratório de teste do Firebase para saber mais sobre como interpretar os resultados do teste.

Próxima Etapa

Leia a documentação do Google Cloud SDK para explorar as opções de teste geralmente disponíveis ou em versão beta .