Configure 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 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 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 em seu fluxo de trabalho de CI/CD, você precisa conceder permissão ao fluxo de trabalho de CI/CD para acessar seu 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 Azure de Colaborador de Teste de Carga.

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

No Azure Pipelines, você cria uma conexão de serviço em seu projeto do Azure DevOps para acessar recursos em sua assinatura do Azure. Quando você cria a conexão de serviço, o Azure DevOps cria um objeto principal 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 <your-organization> texto 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 Gerenciador de Recursos do Azure e selecione Avançar.

  4. Selecione o método de autenticação da entidade de serviço (automática) 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 âmbito Subscrição.
    Subscrição Selecione a assinatura do Azure que hospeda seu 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 Selecionado.
  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 para exibição .

    Use esse valor na próxima etapa para conceder permissões para executar testes de carga para a 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 para executar atividades específicas em seu recurso de teste de carga. Para executar um teste de carga a partir do pipeline de CI/CD, conceda a função de Colaborador de Teste de Carga à entidade de serviço.

  1. No portal do Azure, vá para 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 função.

    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 use o nome para exibição copiado anteriormente para pesquisar a entidade de serviço.

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

  6. No separador Rever + atribuir, selecione Rever + 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 do Azure Pipelines para acessar seu 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 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:

  • Teste de carga do arquivo YAML de configuração. Saiba como você pode criar um arquivo YAML de configuração de teste de carga.
  • Arquivo de 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 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 seguintes etapas para baixar os arquivos de entrada para um teste de carga existente no portal do Azure:

  1. No portal do Azure, vá para seu recurso de Teste de Carga do Azure.

  2. No painel esquerdo, selecione Testes para exibir a lista de testes de carga e, em seguida, selecione 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 você está trabalhando e, em seguida, selecione Baixar arquivo de entrada.

    O navegador baixa uma pasta compactada que contém os arquivos de entrada de 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 ficheiros:

    • config.yaml: o arquivo de configuração YAML de teste de carga. Você faz referência a esse arquivo na definição de fluxo de trabalho CI/CD.
    • .jmx: o script de teste JMeter
    • Quaisquer arquivos de entrada adicionais, como arquivos CSV ou arquivos de propriedades do usuário que são necessários para executar o teste de carga.
  5. Confirme todos os arquivos de entrada extraídos em seu 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 dá suporte às Ações do GitHub e aos Pipelines do Azure para executar testes de carga.

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

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

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

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

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

Atualizar o fluxo de trabalho do Azure Pipelines

Atualize seu fluxo de trabalho do Azure Pipelines para executar um teste de carga para seu 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 seu pipeline e selecione Editar para editar sua definição de fluxo de trabalho.

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

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

    Especifique o arquivo de configuração de teste de carga exportado loadTestConfigFile anteriormente na propriedade.

    Substitua os espaços reservados e de <load-testing-resource> texto pelo nome do seu recurso de teste de carga do Azure e <load-testing-resource-group> 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 env propriedade or secrets .

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

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

Ver resultados do teste de carga

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

Screenshot that shows the workflow logging information.

Clean up resources (Limpar recursos)

Se você não planeja usar nenhum dos recursos que criou, exclua-os para não incorrer em mais cobranças.

  1. Remova as 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 <your-organization> texto pelo identificador do 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 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. Remova 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>exclusão para remover a conexão de serviço.

Próximos passos

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