Azure DevOps
Šī pamācība izskaidro, kā integrēt LoadFocus JMeter API klientu ar Azure DevOps automatizētai veiktspējas testēšanai.
Iestatīšanas soļi
1. Saglabājiet akreditācijas datus Azure Key Vault
Drošai akreditācijas datu pārvaldībai saglabājiet savus LoadFocus API akreditācijas datus Azure Key Vault:
- Izveidojiet Key Vault Azure, ja jums tāda vēl nav
- Pievienojiet šādus noslēpumus:
loadfocus-api-key: Jūsu LoadFocus API atslēgaloadfocus-team-id: Jūsu LoadFocus komandas ID
- Iestatiet pakalpojuma savienojumu, lai piekļūtu Key Vault no sava cauruļvada
2. Izveidojiet Azure cauruļvadu
Izveidojiet jaunu failu ar nosaukumu azure-pipelines.yml savā repozitorijā:
trigger:- main- developpool:vmImage: 'ubuntu-latest'variables:- group: loadfocus-variables # Variable group containing Key Vault referencesstages:- stage: Buildjobs:- job: BuildAndTeststeps:# Your existing build and test steps...- stage: PerformanceTestdependsOn: Buildcondition: succeeded()jobs:- job: RunPerformanceTestssteps:- task: NodeTool@0inputs:versionSpec: '16.x'displayName: 'Install Node.js'- script: |npm install -g @loadfocus/loadfocus-api-clientdisplayName: 'Install LoadFocus JMeter API Client'- script: |loadfocus-api config set apikey $(LOADFOCUS_API_KEY)loadfocus-api config set teamid $(LOADFOCUS_TEAM_ID)displayName: 'Configure LoadFocus API Client'- script: |loadfocus-api jmeter run-test \--name "AzureDevOps_$(Build.Repository.Name)_$(Build.SourceBranchName)" \--thresholds "avgresponse<=200,errors==0,p95<=250" \--format json > $(Build.ArtifactStagingDirectory)/performance_results.jsondisplayName: 'Run Performance Tests'continueOnError: false- task: PublishBuildArtifacts@1inputs:pathtoPublish: '$(Build.ArtifactStagingDirectory)'artifactName: 'performance-test-results'displayName: 'Publish Performance Test Results'- stage: DeploydependsOn: PerformanceTestcondition: succeeded()jobs:- job: DeployApplicationsteps:# Your deployment steps...
3. Iestatiet mainīgo grupu ar Key Vault integrāciju
- Dodieties uz Pipelines > Library > Variable Groups
- Izveidojiet jaunu mainīgo grupu ar nosaukumu "loadfocus-variables"
- Saistiet to ar savu Azure Key Vault
- Pievienojiet šādus mainīgos, saistot tos ar Key Vault noslēpumiem:
LOADFOCUS_API_KEY: Saistīt arloadfocus-api-keynoslēpumuLOADFOCUS_TEAM_ID: Saistīt arloadfocus-team-idnoslēpumu
Papildu konfigurācija
YAML veidņu izmantošana
Atkārtoti izmantojamiem veiktspējas testēšanas soļiem izveidojiet veidnes failu performance-test-template.yml:
parameters:testName: 'Default_Test'thresholds: 'avgresponse<=200,errors==0,p95<=250'waitTimeout: 1800steps:- script: |loadfocus-api jmeter run-test \--name "${{ parameters.testName }}" \--thresholds "${{ parameters.thresholds }}" \--waitTimeout ${{ parameters.waitTimeout }} \--format json > $(Build.ArtifactStagingDirectory)/performance_results.jsondisplayName: 'Run Performance Tests'continueOnError: false
Pēc tam savā galvenajā cauruļvadā:
- template: performance-test-template.ymlparameters:testName: 'AzureDevOps_$(Build.Repository.Name)_$(Build.SourceBranchName)'thresholds: 'avgresponse<=150,errors==0,p95<=200'waitTimeout: 2400
Vairāku testu izpilde
Lai izpildītu vairākus veiktspējas testus secīgi:
- script: |# Run API testloadfocus-api jmeter run-test \--name "API_Test" \--thresholds "avgresponse<=200,errors==0" \--format json > $(Build.ArtifactStagingDirectory)/api_test_results.json# Run UI testloadfocus-api jmeter run-test \--name "UI_Test" \--thresholds "avgresponse<=500,errors==0" \--format json > $(Build.ArtifactStagingDirectory)/ui_test_results.jsondisplayName: 'Run Multiple Performance Tests'
Integrācija ar Azure Test Plans
Lai integrētu veiktspējas testu rezultātus ar Azure Test Plans:
- task: PublishTestResults@2inputs:testResultsFormat: 'JUnit'testResultsFiles: '$(Build.ArtifactStagingDirectory)/test-results.xml'testRunTitle: 'Performance Tests'displayName: 'Publish Test Results'condition: succeededOrFailed()
Jums būs nepieciešams konvertēt JSON izvadi JUnit formātā:
- script: |# Run performance testloadfocus-api jmeter run-test \--name "AzureDevOps_Test" \--thresholds "avgresponse<=200,errors==0" \--format json > $(Build.ArtifactStagingDirectory)/performance_results.json# Convert JSON to JUnit format (using a custom script)node convert-to-junit.js \$(Build.ArtifactStagingDirectory)/performance_results.json \$(Build.ArtifactStagingDirectory)/test-results.xmldisplayName: 'Run Performance Tests and Convert Results'
Padomi Azure DevOps integrācijai
Paralēlie darbi: Ja jums ir vairāki veiktspējas testi, apsveriet paralēlo darbu izmantošanu:
jobs:- job: API_Performance_Teststeps:# Run API performance test- job: UI_Performance_Teststeps:# Run UI performance testIzvietošanas vārti: Izmantojiet veiktspējas testu rezultātus kā izvietošanas vārtus:
- job: DeploymentGatesteps:- script: |# Check if performance tests passedif grep -q '"overallResult": "FAILED"' $(Build.ArtifactStagingDirectory)/performance_results.json; thenecho "##vso[task.logissue type=error]Performance tests failed"echo "##vso[task.complete result=Failed;]"fiPielāgots informācijas panelis: Izveidojiet pielāgotu informācijas paneli, lai vizualizētu veiktspējas testu rezultātus laika gaitā.
Paziņojumi: Iestatiet paziņojumus veiktspējas testu kļūmju gadījumā:
- task: SendEmail@1inputs:to: 'team@example.com'subject: 'Performance Test Failed'body: 'Performance tests failed to meet thresholds. See attached results.'addAttachment: trueattachmentPath: '$(Build.ArtifactStagingDirectory)/performance_results.json'condition: failed()
Papildu informācijai skatiet Azure DevOps dokumentāciju un LoadFocus API klienta dokumentāciju.