Configurar manualmente o fluxo de trabalho de CI/CD para executar testes de carga

Você pode automatizar um teste de carga em Azure Load Testing criando um pipeline de CI/CD. Neste artigo, você aprenderá a configurar manualmente GitHub Actions, Azure Pipelines ou outras ferramentas de CI para invocar um teste existente no Azure Load Testing. Automatize um teste de carga para validar continuamente o desempenho e a estabilidade do aplicativo sob carga.

Para adicionar um teste de carga existente a um pipeline de CI/CD:

  • Configure a autenticação de serviço para permitir que a ferramenta de CI se conecte ao recurso de teste de carga Azure.
  • Adicione arquivos de entrada de teste de carga ao seu repositório, como o script de teste e a configuração YAML de teste de carga.
  • Atualize a definição de pipeline de CI/CD para invocar Azure Load Testing.

Pré-requisitos

Configurar autenticação de serviço

Para executar um teste de carga no fluxo de trabalho de CI/CD, é necessário conceder permissão ao fluxo de trabalho de CI/CD para acessar o recurso de teste de carga. Crie uma entidade de serviço para o fluxo de trabalho de CI/CD e atribua a função RBAC Colaborador de Teste de Carga do Azure.

Criar uma conexão de serviço no Azure Pipelines

Em Azure Pipelines, você cria uma conexão service em seu projeto Azure DevOps para acessar recursos em sua assinatura Azure. Quando você cria a conexão de serviço, o Azure DevOps cria um objeto de entidade de serviço do Microsoft Entra.

  1. Entre em sua organização Azure DevOps (https://dev.azure.com/<your-organization>) e selecione seu projeto.

    Substitua o espaço reservado para texto <your-organization> pelo identificador do seu projeto.

  2. Selecione Configurações do projeto>Conexões de serviço>+ Nova conexão de serviço.

  3. No painel A nova conexão de serviço, selecione o Azure Resource Manager e selecione Next.

  4. Selecione o método de autenticação Entidade de serviço (automático) e, em seguida, selecione Avançar.

  5. Insira os detalhes da conexão de serviço e selecione Salvar para criar a conexão de serviço.

    Campo Valor
    Nível de escopo Assinatura.
    Subscrição Selecione a assinatura Azure que hospeda o recurso de teste de carga.
    Grupo de recursos Selecione o grupo de recursos que contém o recurso de teste de carga.
    Nome da conexão de serviço Insira um nome exclusivo para a conexão de serviço.
    Conceder permissão de acesso a todos os pipelines Verificado.
  6. Na lista de conexões de serviço, selecione a que você criou anteriormente e, em seguida, selecione Gerenciar Entidade de Serviço.

    Captura de tela que mostra seleções para gerenciamento de uma entidade de serviço.

    O portal do Azure é aberto em uma guia separada do navegador e mostra os detalhes da entidade de serviço.

  7. No portal Azure, copie o valor do Display name.

    Use esse valor na próxima etapa para conceder permissões para executar testes de carga na entidade de serviço.

Conceder acesso ao Azure Load Testing

Azure Load Testing usa Azure RBAC para conceder permissões para executar atividades específicas no recurso de teste de carga. Para executar um teste de carga a partir do pipeline de CI/CD, conceda a função Colaborador de Teste de Carga à entidade de serviço.

  1. No Azure portal, vá para o recurso Azure Load Testing.

  2. Selecione Controle de acesso (IAM)>Adicionar>Adicionar atribuição de função.

  3. Na guia Função, selecione Colaborador de Teste de Carga na lista de funções de trabalho.

    Screenshot que mostra a lista de funções na página Adicionar atribuição de função no portal Azure, realçando a função Colaborador de Teste de Carga.

  4. Na guia Membros, selecione Selecionar membros e, em seguida, use o nome de exibição que você copiou anteriormente para pesquisar a entidade de serviço.

  5. Selecione a entidade de serviço e, em seguida, selecione Selecionar.

  6. Na guia Examinar + atribuir, selecione Examinar + atribuir para adicionar a atribuição de função.

Agora você pode usar a conexão de serviço em sua definição de fluxo de trabalho Azure Pipelines para acessar seu recurso de teste de carga Azure.

Adicionar arquivos de teste de carga ao repositório

Para executar um teste de carga com Azure Load Testing em um fluxo de trabalho de CI/CD, você precisa adicionar todos os arquivos de entrada de teste de carga no repositório de controle do código-fonte.

Se você não tiver um teste de carga existente, adicione os seguintes arquivos ao repositório de código-fonte:

Se você tiver um teste de carga existente, poderá baixar as configurações e todos os arquivos de entrada diretamente do portal Azure. Execute as seguintes etapas para baixar os arquivos de entrada para um teste de carga existente no portal Azure:

  1. No Azure portal, vá para o recurso Azure Load Testing.

  2. No painel esquerdo, selecione Testes para exibir a lista de testes de carga e selecione o seu teste.

    Captura de tela que mostra a lista de testes para um recurso de Teste de Carga do Azure.

  3. Selecione as reticências (...) ao lado da execução do teste com o qual está trabalhando e, em seguida, selecione Baixar arquivo de entrada.

    O navegador baixa uma pasta compactada que contém os arquivos de entrada do teste de carga.

    Captura de tela que mostra como baixar o arquivo de resultados de uma execução de teste de carga.

  4. Use qualquer ferramenta zip para extrair os arquivos de entrada.

    A pasta contém os seguintes arquivos:

    • config.yaml: o arquivo de configuração YAML do teste de carga. Faça referência a esse arquivo na definição do fluxo de trabalho de CI/CD.
    • .jmx ou .py: o script de teste JMeter ou Locust
    • Os arquivos de entrada adicionais, como arquivos CSV ou arquivos de propriedades do usuário necessários para executar o teste de carga.
  5. Confirme todos os arquivos de entrada extraídos no repositório de controle do código-fonte.

    Use o repositório de código-fonte no qual você configura o pipeline de CI/CD.

Atualizar a definição do fluxo de trabalho de CI/CD

Azure Load Testing dá suporte a GitHub Actions e Azure Pipelines para executar testes de carga.

Instalar a extensão Azure Load Testing para Azure DevOps

Para criar e executar um teste de carga, a definição de fluxo de trabalho Azure Pipelines usa a extensão tarefa Azure Load Testing do marketplace do Azure DevOps.

  1. Abra a extensão de tarefa Azure Load Testing no Azure DevOps Marketplace e selecione Get-lo gratuitamente.

  2. Selecione sua organização Azure DevOps e selecione Instalar para instalar a extensão.

    Se você não tiver privilégios de administrador para a organização Azure DevOps selecionada, selecione Request para solicitar que um administrador instale a extensão.

Atualizar o fluxo de trabalho Azure Pipelines

Atualize seu fluxo de trabalho Azure Pipelines para executar um teste de carga para seu recurso de teste de carga Azure.

  1. Entre em sua organização Azure DevOps (https://dev.azure.com/<your-organization>) e selecione seu projeto.

  2. Selecione Pipelines na navegação à esquerda, selecione o pipeline e, em seguida, selecione Editar para editar a definição do fluxo de trabalho.

    Como alternativa, selecione Create Pipeline para criar um novo pipeline no Azure Pipelines.

  3. Use a tarefa AzureLoadTest para executar o teste de carga.

    Especifique o arquivo de configuração do teste de carga que você exportou anteriormente na propriedade loadTestConfigFile.

    Substitua os espaços reservados de texto <load-testing-resource> e <load-testing-resource-group> pelo nome do recurso de teste de carga Azure e do grupo de recursos.

        - task: AzureLoadTest@1
          inputs:
            azureSubscription: $(serviceConnection)
            loadTestConfigFile: 'config.yaml'
            loadTestResource: <load-testing-resource>
            resourceGroup: <load-testing-resource-group>
    

    Opcionalmente, você pode passar parâmetros ou segredos para o teste de carga usando a propriedade env ou secrets. Defina waitForCompletion: false se você deseja continuar sem aguardar a conclusão da execução do teste de carga.

  4. Use a tarefa publish para publicar os resultados do teste como artefatos na execução do fluxo de trabalho do Azure Pipelines.

        - publish: $(System.DefaultWorkingDirectory)/loadTest
          artifact: loadTestResults
    

Exibir resultados de testes de carga

Ao executar um teste de carga a partir do pipeline de CI/CD, você poderá exibir os resultados do resumo diretamente no registro de saída de CI/CD. Se você publicou os resultados do teste como um artefato de pipeline, também poderá fazer o download de um arquivo CSV para relatórios adicionais.

Captura de tela que mostra as informações de log do fluxo de trabalho.

Limpar os recursos

Se você não pretende usar nenhum dos recursos criados, exclua-os para não gerar custos.

  1. Remova as alterações do Azure Pipelines:

    1. Entre em sua organização Azure DevOps (https://dev.azure.com/<your-organization>) e selecione seu projeto.

      Substitua o espaço reservado para texto <your-organization> pelo identificador do seu projeto.

    2. Se você criou um novo pipeline":

      1. Selecione Pipelines e, em seguida, selecione seu pipeline.

      2. Selecione as reticências e, em seguida, selecione Excluir.

        Screenshot que mostra como excluir uma definição de Azure Pipelines.

      3. Insira o nome do pipeline e selecione Excluir para excluir o pipeline.

    3. Se você modificou uma definição de fluxo de trabalho existente, desfaça as modificações para executar o teste de carga e salve o fluxo de trabalho.

  2. Remover a conexão de serviço:

    1. Selecione Configurações do Projeto>Conexões de Serviço e depois selecione sua conexão de serviço.
    2. Selecione Editar>Excluir para remover a conexão de serviço.

Próximas etapas

Vá para o próximo artigo para saber como identificar regressões de desempenho definindo critérios de falha de teste e comparando execuções de teste.