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

Você pode automatizar um teste de carga no Teste de Carga do Azure criando um pipeline de CI/CD. Neste artigo, você aprenderá a configurar manualmente as Ações do GitHub, os Pipelines do Azure ou outras ferramentas de CI para invocar um teste existente no Teste de Carga do Azure. Automatize um teste de carga para validar continuamente o desempenho e a estabilidade sob carga do aplicativo.

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 seu recurso de teste de carga do Azure.
  • Adicione arquivos de entrada de teste de carga ao seu repositório, como o script de teste JMeter e a configuração YAML de teste de carga.
  • Atualize a definição de pipeline de CI/CD para invocar o Teste de Carga do Azure.

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 do Colaborador de Teste de Carga do Azure.

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

No Azure Pipelines, crie uma conexão de serviço em seu projeto do Azure DevOps para acessar recursos na assinatura do 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 do Azure DevOps (https://dev.azure.com/<your-organization>) e selecione seu projeto.

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

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

  3. No painel Nova conexão de serviço, selecione o Azure Resource Manager e, em seguida, selecione Avançar.

  4. Selecione o método de autenticação Entidade de serviço (automático) e 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
    Scope level Assinatura.
    Assinatura Selecione a assinatura do 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.
    Service connection name Insira um nome exclusivo para a conexão de serviço.
    Conceder permissão de acesso a todos os pipelines Marcada.
  6. Na lista de conexões de serviço, selecione a que você criou anteriormente e, em seguida, selecione Gerenciar Entidade de Serviço.

    Screenshot that shows selections for managing a service principal.

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

  7. No portal do Azure, copie o valor Nome de exibição.

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

Conceder acesso ao Teste de Carga do Azure

O Teste de Carga do Azure usa o RBAC do Azure para conceder permissões e 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 portal do Azure, acesse seu recurso de Teste de Carga do Azure.

  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 that shows the list of roles in the Add role assignment page in the Azure portal, highlighting the Load Test Contributor role.

  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 na definição de fluxo de trabalho do Azure Pipelines para acessar o recurso de teste de carga do Azure.

Adicionar arquivos de teste de carga em seu repositório

Para executar um teste de carga com o Teste de Carga do Azure em um fluxo de trabalho de CI/CD, você precisa adicionar todos os arquivos de entrada de teste de carga em seu repositório de controle de origem.

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

  • Arquivo YAML de configuração de teste de carga. Saiba como você pode criar um arquivo YAML de configuração de teste de carga.
  • Arquivo do plano de teste. Para testes baseados em JMeter, adicione um script de teste JMeter (JMX arquivo). Para testes baseados em URL, adicione um arquivo JSON de solicitações.
  • Qualquer arquivo de propriedades de usuário do JMeter.
  • Todos os arquivos de dados de entrada que seu plano de teste usa. Por exemplo, arquivos de dados CSV.

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

  1. No portal do Azure, acesse seu recurso de Teste de Carga do Azure.

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

    Screenshot that shows the list of tests for an Azure Load Testing resource.

  3. Selecione as reticências (...) ao lado da execução de teste com a 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.

    Screenshot that shows how to download the results file for a load test run.

  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: o script de teste do JMeter
    • 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

O Teste de Carga do Azure oferece suporte ao GitHub Actions e ao Azure Pipelines para executar testes de carga.

Instalar a extensão do Teste de Carga do Azure para o Azure DevOps

Para criar e executar um teste de carga, a definição do fluxo de trabalho do Azure Pipelines usa a extensão Tarefa de Teste de Carga do Azure do Azure DevOps Marketplace.

  1. Abra a extensão de tarefa do Teste de Carga do Azure no Azure DevOps Marketplace e selecione Obter gratuitamente.

  2. Selecione sua organização do Azure DevOps e escolha Instalar a extensão.

    Se você não tiver privilégios de administrador para a organização selecionada do Azure DevOps, escolha Solicitar o privilégio ao administrador para instalar a extensão.

Atualizar o fluxo de trabalho do Azure Pipelines

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

  1. Entre em sua organização do 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 Criar 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 do 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.

  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.

Screenshot that shows the workflow logging information.

Limpar os recursos

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

  1. Remover alterações do Azure Pipelines:

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

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

    2. Se você criou um novo pipeline":

      1. Selecione Pipelines e escolha o pipeline.

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

        Screenshot that shows how to delete an Azure Pipelines definition.

      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, em seguida, 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.