Configurare manualmente il flusso di lavoro CI/CD per l'esecuzione di test di carico

È possibile automatizzare un test di carico in Test di carico di Azure creando una pipeline CI/CD. Questo articolo illustra come configurare manualmente GitHub Actions, Azure Pipelines o altri strumenti di integrazione continua per richiamare un test esistente in Test di carico di Azure. Automatizzare un test di carico per convalidare continuamente le prestazioni e la stabilità dell'applicazione in condizioni di carico.

Per aggiungere un test di carico esistente a una pipeline CI/CD:

  • Configurare l'autenticazione del servizio per consentire allo strumento ci di connettersi alla risorsa di test di carico di Azure.
  • Aggiungere file di input del test di carico al repository, ad esempio lo script di test JMeter e la configurazione YAML del test di carico.
  • Aggiornare la definizione della pipeline CI/CD per richiamare Test di carico di Azure.

Prerequisiti

Configurare l'autenticazione del servizio

Per eseguire un test di carico nel flusso di lavoro CI/CD, è necessario concedere l'autorizzazione al flusso di lavoro CI/CD per accedere alla risorsa di test di carico. Creare un'entità servizio per il flusso di lavoro CI/CD e assegnare il ruolo Controllo degli accessi in base al ruolo di Azure Collaboratore test di carico.

Creare una connessione al servizio in Azure Pipelines

In Azure Pipelines si crea una connessione al servizio nel progetto Azure DevOps per accedere alle risorse nella sottoscrizione di Azure. Quando si crea la connessione al servizio, Azure DevOps crea un oggetto entità servizio Microsoft Entra.

  1. Accedere all'organizzazione di Azure DevOps (https://dev.azure.com/<your-organization>) e selezionare il progetto.

    Sostituire il segnaposto di testo con l'identificatore <your-organization> del progetto.

  2. Selezionare Impostazioni progetto>Connessioni> servizio+ Nuova connessione al servizio.

  3. Nel riquadro Nuova connessione al servizio selezionare Azure Resource Manager e quindi selezionare Avanti.

  4. Selezionare il metodo di autenticazione dell'entità servizio (automatico) e quindi selezionare Avanti.

  5. Immettere i dettagli della connessione al servizio e quindi selezionare Salva per creare la connessione al servizio.

    Campo Valore
    Livello di ambito Sottoscrizione.
    Abbonamento Selezionare la sottoscrizione di Azure che ospita la risorsa di test di carico.
    Gruppo di risorse Selezionare il gruppo di risorse che contiene la risorsa di test di carico.
    Nome connessione del servizio Immettere un nome univoco per la connessione al servizio.
    Concedere l'autorizzazione di accesso a tutte le pipeline Selezionato.
  6. Nell'elenco delle connessioni al servizio selezionare quella creata in precedenza e quindi selezionare Gestisci entità servizio.

    Screenshot that shows selections for managing a service principal.

    Il portale di Azure viene aperto in una scheda separata del browser e mostra i dettagli dell'entità servizio.

  7. Nella portale di Azure copiare il valore Nome visualizzato.

    Questo valore viene usato nel passaggio successivo per concedere le autorizzazioni per l'esecuzione di test di carico all'entità servizio.

Concedere l'accesso a Test di carico di Azure

Test di carico di Azure usa il controllo degli accessi in base al ruolo di Azure per concedere le autorizzazioni per l'esecuzione di attività specifiche nella risorsa di test di carico. Per eseguire un test di carico dalla pipeline CI/CD, si concede il ruolo Collaboratore test di carico all'entità servizio.

  1. Nella portale di Azure passare alla risorsa Test di carico di Azure.

  2. Selezionare Controllo di accesso (IAM)>Aggiungi>assegnazione di ruolo.

  3. Nella scheda Ruolo selezionare Collaboratore test di carico nell'elenco dei ruoli della funzione del processo.

    Screenshot that shows the list of roles in the Add role assignment page in the Azure portal, highlighting the Load Test Contributor role.

  4. Nella scheda Membri selezionare Seleziona membri e quindi usare il nome visualizzato copiato in precedenza per cercare l'entità servizio.

  5. Selezionare l'entità servizio e quindi selezionare Seleziona.

  6. Nella scheda Rivedi e assegna selezionare Rivedi e assegna per aggiungere l'assegnazione di ruolo.

È ora possibile usare la connessione al servizio nella definizione del flusso di lavoro di Azure Pipelines per accedere alla risorsa di test di carico di Azure.

Aggiungere file di test di carico nel repository

Per eseguire un test di carico con test di carico di Azure in un flusso di lavoro CI/CD, è necessario aggiungere tutti i file di input del test di carico nel repository del controllo del codice sorgente.

Se non si dispone di un test di carico esistente, aggiungere i file seguenti al repository del codice sorgente:

  • File YAML di configurazione del test di carico. Informazioni su come creare un file YAML di configurazione del test di carico.
  • File del piano di test. Per i test basati su JMeter, aggiungere uno script di test JMeter (JMX file). Per i test basati su URL, aggiungere un file JSON di richieste.
  • Tutti i file delle proprietà utente di JMeter.
  • Qualsiasi file di dati di input usato dal piano di test. Ad esempio, file di dati CSV.

Se si dispone di un test di carico esistente, è possibile scaricare le impostazioni di configurazione e tutti i file di input direttamente dal portale di Azure. Seguire questa procedura per scaricare i file di input per un test di carico esistente nel portale di Azure:

  1. Nella portale di Azure passare alla risorsa Test di carico di Azure.

  2. Nel riquadro sinistro selezionare Test per visualizzare l'elenco dei test di carico e quindi selezionare il test.

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

  3. Selezionare i puntini di sospensione (...) accanto all'esecuzione del test in uso e quindi selezionare Scarica file di input.

    Il browser scarica una cartella compressa che contiene i file di input del test di carico.

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

  4. Usare qualsiasi strumento ZIP per estrarre i file di input.

    La cartella contiene i file seguenti:

    • config.yaml: il file di configurazione YAML del test di carico. Questo file viene fatto riferimento nella definizione del flusso di lavoro CI/CD.
    • .jmx: script di test di JMeter
    • Eventuali file di input aggiuntivi, ad esempio file CSV o file di proprietà utente necessari per eseguire il test di carico.
  5. Eseguire il commit di tutti i file di input estratti nel repository del controllo del codice sorgente.

    Usare il repository del codice sorgente in cui si configura la pipeline CI/CD.

Aggiornare la definizione del flusso di lavoro CI/CD

Test di carico di Azure supporta sia GitHub Actions che Azure Pipelines per l'esecuzione di test di carico.

Installare l'estensione Test di carico di Azure per Azure DevOps

Per creare ed eseguire un test di carico, la definizione del flusso di lavoro di Azure Pipelines usa l'estensione dell'attività Test di carico di Azure da Azure DevOps Marketplace.

  1. Aprire l'estensione dell'attività Test di carico di Azure in Azure DevOps Marketplace e selezionare Scarica gratuitamente.

  2. Selezionare l'organizzazione Azure DevOps e quindi selezionare Installa per installare l'estensione.

    Se non si hanno privilegi di amministratore per l'organizzazione Azure DevOps selezionata, selezionare Richiedi per richiedere a un amministratore di installare l'estensione.

Aggiornare il flusso di lavoro di Azure Pipelines

Aggiornare il flusso di lavoro di Azure Pipelines per eseguire un test di carico per la risorsa di test di carico di Azure.

  1. Accedere all'organizzazione di Azure DevOps (https://dev.azure.com/<your-organization>) e selezionare il progetto.

  2. Selezionare Pipeline nel riquadro di spostamento sinistro, selezionare la pipeline e quindi selezionare Modifica per modificare la definizione del flusso di lavoro.

    In alternativa, selezionare Crea pipeline per creare una nuova pipeline in Azure Pipelines.

  3. Usare l'attività AzureLoadTest per eseguire il test di carico.

    Specificare il file di configurazione del test di carico esportato in precedenza nella loadTestConfigFile proprietà .

    Sostituire i <load-testing-resource> segnaposto di testo e <load-testing-resource-group> con il nome della risorsa di test di carico di Azure e del gruppo di risorse.

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

    Facoltativamente, è possibile passare parametri o segreti al test di carico usando la env proprietà o secrets .

  4. Usare l'attività publish per pubblicare i risultati del test come artefatti nell'esecuzione del flusso di lavoro di Azure Pipelines.

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

Visualizzare i risultati dei test di carico

Quando si esegue un test di carico dalla pipeline CI/CD, è possibile visualizzare i risultati di riepilogo direttamente nel log di output CI/CD. Se i risultati del test sono stati pubblicati come artefatto della pipeline, è anche possibile scaricare un file CSV per ulteriori report.

Screenshot that shows the workflow logging information.

Pulire le risorse

Se non si prevede di usare alcuna delle risorse create, eliminarle in modo da non comportare ulteriori addebiti.

  1. Rimuovere le modifiche di Azure Pipelines:

    1. Accedere all'organizzazione di Azure DevOps (https://dev.azure.com/<your-organization>) e selezionare il progetto.

      Sostituire il segnaposto di testo con l'identificatore <your-organization> del progetto.

    2. Se è stata creata una nuova pipeline:If you created a new pipeline":

      1. Selezionare Pipeline e quindi selezionare la pipeline.

      2. Selezionare i puntini di sospensione e quindi selezionare Elimina.

        Screenshot that shows how to delete an Azure Pipelines definition.

      3. Immettere il nome della pipeline e quindi selezionare Elimina per eliminare la pipeline.

    3. Se è stata modificata una definizione del flusso di lavoro esistente, annullare le modifiche per l'esecuzione del test di carico e salvare il flusso di lavoro.

  2. Rimuovere la connessione al servizio:

    1. Selezionare Impostazioni progetto>Connessioni al servizio e quindi selezionare la connessione al servizio.
    2. Selezionare Modifica>elimina per rimuovere la connessione al servizio.

Passaggi successivi

Passare all'articolo successivo per informazioni su come identificare le regressioni delle prestazioni definendo i criteri di esito negativo del test e confrontando le esecuzioni dei test.