Tutorial: Criar um pipeline que teste a aplicação iOS com AWS Device Farm - AWS CodePipeline

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Tutorial: Criar um pipeline que teste a aplicação iOS com AWS Device Farm

Você pode usar AWS CodePipeline para configurar facilmente um fluxo de integração contínuo em que o aplicativo é testado sempre que o bucket de origem é alterado. Este tutorial mostra como criar e configurar um pipeline para testar seu aplicativo iOS criado a partir de um bucket do S3. O pipeline detecta a chegada de uma alteração salva por meio do Amazon CloudWatch Events e, depois, usa o Device Farm para testar a aplicação criada.

Importante

Muitas das ações adicionadas ao pipeline neste procedimento envolvem recursos da AWS que você precisa criar antes do pipeline. Os recursos da AWS para as ações de origem sempre devem ser criados na mesma região da AWS onde o pipeline será criado. Por exemplo, se você criar o pipeline na região do Leste dos EUA (Ohio), o repositório do CodeCommit deverá estar na região do Leste dos EUA (Ohio).

É possível adicionar ações entre regiões ao criar o pipeline. Os recursos da AWS para ações entre regiões devem estar na mesma região da AWS onde você planeja executar a ação. Para obter mais informações, consulte Adicionar uma ação entre regiões no CodePipeline.

Você pode experimentar isso usando seu aplicativo iOS existente ou você pode usar o aplicativo iOS de exemplo.

nota

Antes de começar

  1. Faça login no console do AWS Device Farm e escolha Create a new project (Criar novo projeto).

  2. Selecione o projeto. No navegador, copie o URL do novo projeto. O URL contém o ID do projeto.

  3. Copie e retenha esse ID de projeto. É necessário usá-lo ao criar o pipeline no CodePipeline.

    Este é um exemplo de URL para um projeto. Para extrair o ID do projeto, copie o valor depois de projects/. Neste exemplo, o ID do produto é eec4905f-98f8-40aa-9afc-4c1cfexample.

    https://<region-URL>/devicefarm/home?region=us-west-2#/projects/eec4905f-98f8-40aa-9afc-4c1cfexample/runs

Configurar o CodePipeline para usar os testes do Device Farm (exemplo do Amazon S3)

  1. Crie ou use um bucket do S3 com o versionamento habilitado. Você pode seguir as instruções em Etapa 1: Criar um bucket do S3 para o aplicativo para criar um bucket do S3.

  2. No console do Amazon S3 para o bucket, selecione Carregar e siga as instruções para fazer upload do arquivo .zip.

    Seu aplicativo de amostra deve ser compactado em um arquivo .zip.

  3. Para criar seu pipeline e adicionar um estágio de origem, faça o seguinte:

    1. Faça login no AWS Management Console e abra o console do CodePipeline em https://console.aws.amazon.com/codepipeline/.

    2. Selecione Criar pipeline. Na página Step 1: Choose pipeline settings (Etapa 1: selecionar configurações do pipeline), em Pipeline name (Nome do pipeline), insira o nome do seu pipeline.

    3. Em Tipo de pipeline, selecione V1 para os fins deste tutorial. Também é possível selecionar V2; no entanto, observe que os tipos de pipeline diferem em características e preços. Para obter mais informações, consulte Tipos de Pipeline.

    4. Em Service role (Função de serviço), deixe New service role (Nova função de serviço) selecionado e não altere Role name (Nome da função). Você também pode optar por usar uma função de serviço existente se tiver criado uma.

      nota

      Se você usar um perfil de serviço do CodePipeline criado antes de julho de 2018, será necessário adicionar permissões para o Device Farm. Para fazer isso, abra o console do IAM, localize o perfil e, depois, adicione as seguintes permissões à política do perfil. Para obter mais informações, consulte Adicionar permissões à função de serviço do CodePipeline.

      { "Effect": "Allow", "Action": [ "devicefarm:ListProjects", "devicefarm:ListDevicePools", "devicefarm:GetRun", "devicefarm:GetUpload", "devicefarm:CreateUpload", "devicefarm:ScheduleRun" ], "Resource": "*" }
    5. Deixe as configurações em Advanced settings (Configurações avançadas) como padrão e escolha Next (Próximo).

    6. Na página Step 2: Add source stage (Etapa 2: adicionar estágio de origem), em Source provider (Fornecedor de origem), escolha Amazon S3.

    7. Em Local do Amazon S3, insira o bucket, como my-storage-bucket e a chave do objeto, como s3-ios-test-1.zip, para o arquivo .zip.

    8. Escolha Next (Próximo).

  4. Em Build (Criar), crie um estágio de compilação de espaço reservado para o pipeline. Isso permite que você crie o pipeline no assistente. Depois de usar o assistente para criar seu pipeline de dois estágios, você não precisa mais desse estágio de compilação de espaço reservado. Depois que o pipeline é concluído, o segundo estágio é excluído e o novo estágio de teste é adicionado na etapa 5.

    1. Em Build provider (Provedor de compilação), selecione Add Jenkins (Adicionar Jenkins). Essa seleção de compilação é um espaço reservado. Ele não é usado.

    2. Em Provider name (Nome do provedor), insira um nome. O nome é um espaço reservado. Ele não é usado.

    3. Em Server URL (URL do servidor), insira o texto. O texto é um espaço reservado. Ele não é usado.

    4. Em Project name (Nome do projeto), insira um nome. O nome é um espaço reservado. Ele não é usado.

    5. Escolha Next (Próximo).

    6. Na página Step 4: Add deploy stage (Etapa 4: adicionar estágio de implantação), escolha Skip deploy stage (Ignorar estágio de implantação) e aceite a mensagem de aviso ao clicar novamente em Skip (Ignorar).

    7. Em Step 5: Review (Etapa 5: revisar), escolha Create pipeline (Criar pipeline). Você deve ver um diagrama que mostra a origem e os estágios de compilação.

      
                Veja o pipeline.
  5. Adicione uma ação de teste do Device Farm ao pipeline da seguinte maneira:

    1. No canto superior direito, escolha Edit (Editar).

    2. Selecione Edit stage (Editar estágio). Escolha Delete (Excluir). Isso exclui o estágio de espaço reservado agora que ele não é mais necessário para a criação do pipeline.

    3. Na parte inferior do diagrama, escolha + Add stage (+ Adicionar estágio).

    4. Em Stage name (Nome do estágio), insira um nome para o estágio, como Teste, e escolha Add stage (Adicionar estágio).

    5. Escolha + Add action group (Adicionar grupo de ação).

    6. Em Action name (Nome da ação), insira um nome, como DeviceFarmTest.

    7. Em Provedor de ação, selecione AWS Device Farm. Permita que Region (Região) seja definida para a região do pipeline.

    8. Em Input artifacts (Artefatos de entrada), selecione o artefato de entrada que corresponde ao artefato de saída do estágio que vem antes do estágio de teste, como SourceArtifact.

      No console do AWS CodePipeline, você pode encontrar o nome do artefato de saída para cada estágio passando o mouse sobre o ícone de informações no diagrama do pipeline. Se o pipeline testa o aplicativo diretamente no estágio Source (Origem), selecione SourceArtifact. Se o pipeline inclui um estágio Build (Compilação), selecione BuildArtifact.

    9. Em ProjectId, selecione o ID de projeto do Device Farm. Use as etapas no início deste tutorial para recuperar o ID do projeto.

    10. Em DevicePoolArn, insira o ARN do grupo de dispositivos. Para obter os ARNs de grupo de dispositivos disponíveis para o projeto, incluindo o ARN dos principais dispositivos, use a AWS CLI para inserir o seguinte comando:

      aws devicefarm list-device-pools --arn arn:aws:devicefarm:us-west-2:account_ID:project:project_ID
    11. Em AppType, insira iOS.

      A seguir está uma lista de valores válidos para AppType:

      • iOS

      • Android

      • Web

    12. Em App (Aplicativo), insira o caminho do pacote do aplicativo compilado. O caminho é relativo à raiz do artefato de entrada do estágio de teste. Normalmente, esse caminho é semelhante a ios-test.ipa.

    13. Em TestType, insira o tipo de teste e, depois, em Teste, insira o caminho do arquivo de definição do teste. O caminho é relativo à raiz do artefato de entrada para o teste.

      Se estiver usando um dos testes integrados do Device Farm, insira o tipo de teste configurado no projeto do Device Farm, como BUILTIN_FUZZ. Em FuzzEventCount, insira um tempo em milissegundos, como 6000. Em FuzzEventThrottle, insira um tempo em milissegundos, como 50.

      Se não estiver usando um dos testes integrados do Device Farm, insira o tipo de teste e, em Teste, insira o caminho do arquivo de definição do teste. O caminho é relativo à raiz do artefato de entrada para o teste.

      A seguir está uma lista de valores válidos para TestType:

      • APPIUM_JAVA_JUNIT

      • APPIUM_JAVA_TESTING

      • APPIUM_NODE

      • APPIUM_RUBY

      • APPIUM_PYTHON

      • APPIUM_WEB_JAVA_JUNIT

      • APPIUM_WEB_JAVA_TESTING

      • APPIUM_WEB_NODE

      • APPIUM_WEB_RUBY

      • APPIUM_WEB_PYTHON

      • BUILTIN_FUZZ

      • INSTRUMENTATION

      • XCTEST

      • XCTEST_UI

      nota

      Os nós de ambiente personalizados não são compatíveis.

    14. Nos campos restantes, forneça a configuração que seja apropriada para seu teste e tipo de aplicativo.

    15. (Opcional) Em Advanced (Avançado), forneça informações de configuração para a execução do teste.

    16. Escolha Save (Salvar).

    17. No estágio que está editando, escolha Done (Concluído). No painel do AWS CodePipeline, escolha Save (Salvar) e selecione Save (Salvar) na mensagem de aviso.

    18. Para enviar as alterações e iniciar uma execução de pipeline, selecione Release change (Liberar alteração) e Release (Liberar).