Azure DevOps
Ez az útmutató bemutatja, hogyan integrálhatja a LoadFocus JMeter API klienst az Azure DevOps-szal az automatizált teljesítményteszteléshez.
Beállítási lépések
1. Hitelesítő adatok tárolása az Azure Key Vaultban
A biztonságos hitelesítő adatok kezeléséhez tárolja LoadFocus API hitelesítő adatait az Azure Key Vaultban:
- Hozzon létre egy Key Vaultot az Azure-ban, ha még nincs
- Adja hozzá a következő titkos kulcsokat:
loadfocus-api-key: Az Ön LoadFocus API kulcsaloadfocus-team-id: Az Ön LoadFocus csapat azonosítója
- Állítson be egy szolgáltatás kapcsolatot a Key Vault eléréséhez a pipeline-ból
2. Azure Pipeline létrehozása
Hozzon létre egy új fájlt azure-pipelines.yml néven a tárhelyen:
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. Változócsoport beállítása Key Vault integrációval
- Navigáljon a Pipelines > Library > Variable Groups menüpontba
- Hozzon létre egy új változócsoportot "loadfocus-variables" néven
- Kapcsolja össze az Azure Key Vaulttal
- Adja hozzá a következő változókat a Key Vault titkos kulcsaihoz kapcsolva:
LOADFOCUS_API_KEY: Kapcsolja aloadfocus-api-keytitkos kulcshozLOADFOCUS_TEAM_ID: Kapcsolja aloadfocus-team-idtitkos kulcshoz
Haladó konfiguráció
YAML sablonok használata
Újrafelhasználható teljesítménytesztelési lépésekhez hozzon létre egy performance-test-template.yml sablonfájlt:
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
Ezután a fő pipeline-ban:
- template: performance-test-template.ymlparameters:testName: 'AzureDevOps_$(Build.Repository.Name)_$(Build.SourceBranchName)'thresholds: 'avgresponse<=150,errors==0,p95<=200'waitTimeout: 2400
Több teszt futtatása
Több teljesítményteszt egymás utáni futtatásához:
- 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áció az Azure Test Plans-szel
A teljesítményteszt eredmények integrálásához az Azure Test Plans-szel:
- task: PublishTestResults@2inputs:testResultsFormat: 'JUnit'testResultsFiles: '$(Build.ArtifactStagingDirectory)/test-results.xml'testRunTitle: 'Performance Tests'displayName: 'Publish Test Results'condition: succeededOrFailed()
A JSON kimenetet JUnit formátumba kell konvertálnia:
- 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'
Tippek az Azure DevOps integrációhoz
Párhuzamos feladatok: Ha több teljesítménytesztje van, fontolja meg párhuzamos feladatok használatát:
jobs:- job: API_Performance_Teststeps:# Run API performance test- job: UI_Performance_Teststeps:# Run UI performance testTelepítési kapuk: Használja a teljesítményteszt eredményeket telepítési kapuként:
- 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;]"fiEgyéni irányítópult: Hozzon létre egyéni irányítópultot a teljesítményteszt eredmények időbeli megjelenítéséhez.
Értesítések: Állítson be értesítéseket a teljesítményteszt hibákhoz:
- 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()
További információkért tekintse meg az Azure DevOps dokumentációt és a LoadFocus API kliens dokumentációt.