Azure DevOps
Tämä opas selittää kuinka integroida LoadFocus JMeter API Client Azure DevOpsin kanssa automatisoitua suorituskykytestausta varten.
Asennusvaiheet
1. Tallenna tunnistetiedot Azure Key Vaultiin
Turvallista tunnistetietojen hallintaa varten tallenna LoadFocus API -tunnistetietosi Azure Key Vaultiin:
- Luo Key Vault Azuressa, jos sinulla ei vielä ole sellaista
- Lisää seuraavat salaisuudet:
loadfocus-api-key: LoadFocus API -avaimesiloadfocus-team-id: LoadFocus tiimi-ID:si
- Määritä palveluyhteys Key Vaultin käyttämiseen putkesta
2. Luo Azure-putki
Luo uusi tiedosto nimeltä azure-pipelines.yml repositorioosi:
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. Määritä Variable Group Key Vault -integraatiolla
- Siirry kohtaan Pipelines > Library > Variable Groups
- Luo uusi Variable Group nimeltä "loadfocus-variables"
- Linkitä se Azure Key Vaultiisi
- Lisää seuraavat muuttujat linkittämällä ne Key Vault -salaisuuksiisi:
LOADFOCUS_API_KEY: Linkitäloadfocus-api-key-salaisuuteenLOADFOCUS_TEAM_ID: Linkitäloadfocus-team-id-salaisuuteen
Edistynyt konfigurointi
YAML-mallien käyttö
Uudelleenkäytettäviä suorituskykytestausvaiheita varten luo mallitiedosto 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
Sitten pääputkessasi:
- template: performance-test-template.ymlparameters:testName: 'AzureDevOps_$(Build.Repository.Name)_$(Build.SourceBranchName)'thresholds: 'avgresponse<=150,errors==0,p95<=200'waitTimeout: 2400
Useiden testien suorittaminen
Useiden suorituskykytestien suorittaminen peräkkäin:
- 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'
Integraatio Azure Test Plans -työkalun kanssa
Suorituskykytestitulosten integrointi Azure Test Plans -työkaluun:
- task: PublishTestResults@2inputs:testResultsFormat: 'JUnit'testResultsFiles: '$(Build.ArtifactStagingDirectory)/test-results.xml'testRunTitle: 'Performance Tests'displayName: 'Publish Test Results'condition: succeededOrFailed()
Sinun on muunnettava JSON-tulostus JUnit-muotoon:
- 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'
Vinkkejä Azure DevOps -integraatioon
Rinnakkaiset tehtävät: Jos sinulla on useita suorituskykytestejä, harkitse rinnakkaisten tehtävien käyttöä:
jobs:- job: API_Performance_Teststeps:# Run API performance test- job: UI_Performance_Teststeps:# Run UI performance testKäyttöönottokynnykset: Käytä suorituskykytestin tuloksia käyttöönottokynnyksenä:
- 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;]"fiMukautettu kojelauta: Luo mukautettu kojelauta suorituskykytestitulosten visualisointiin ajan kuluessa.
Ilmoitukset: Aseta ilmoitukset suorituskykytestin epäonnistumisille:
- 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()
Lisätietoja löydät Azure DevOps -dokumentaatiosta ja LoadFocus API Client -dokumentaatiosta.