Azure DevOps
Siame vadove paaiskiname, kaip integruoti LoadFocus JMeter API klienta su Azure DevOps automatizuotam nasumui testuoti.
Nustatymo zingsniai
1. Saugokite kredencialus Azure Key Vault
Saugiam kredencialu valdymui saugokite savo LoadFocus API kredencialus Azure Key Vault:
- Sukurkite Key Vault Azure, jei jo dar neturite
- Pridekite siuos slaptazodzius:
loadfocus-api-key: jusu LoadFocus API raktasloadfocus-team-id: jusu LoadFocus komandos ID
- Nustatykite paslaugos rysio jungtis, kad galetumete pasiekti Key Vault is savo konvejerio
2. Sukurkite Azure konvejeri
Sukurkite nauja faila pavadinimu azure-pipelines.yml savo saugykloje:
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. Nustatykite kintamuju grupe su Key Vault integracija
- Eikite i Pipelines > Library > Variable Groups
- Sukurkite nauja kintamuju grupe pavadinimu "loadfocus-variables"
- Susiekite ja su savo Azure Key Vault
- Pridekite siuos kintamuosius, susiedami juos su Key Vault slaptazodziais:
LOADFOCUS_API_KEY: susiekite suloadfocus-api-keyslaptazodziuLOADFOCUS_TEAM_ID: susiekite suloadfocus-team-idslaptazodziu
Isplestine konfiguracija
YAML sablonu naudojimas
Pakartotinai naudojamiems nasumo testavimo zingsniams sukurkite sablono faila 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
Tada pagrindiniame konvejeryje:
- template: performance-test-template.ymlparameters:testName: 'AzureDevOps_$(Build.Repository.Name)_$(Build.SourceBranchName)'thresholds: 'avgresponse<=150,errors==0,p95<=200'waitTimeout: 2400
Keliu testu vykdymas
Norint vykdyti kelis nasumo testus nuosekliai:
- 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'
Integracija su Azure Test Plans
Norint integruoti nasumo testu rezultatus su Azure Test Plans:
- task: PublishTestResults@2inputs:testResultsFormat: 'JUnit'testResultsFiles: '$(Build.ArtifactStagingDirectory)/test-results.xml'testRunTitle: 'Performance Tests'displayName: 'Publish Test Results'condition: succeededOrFailed()
Jums reikes konvertuoti JSON isvestis i JUnit formata:
- 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'
Patarimai Azure DevOps integracijai
Lygiagrecios uzduotys: jei turite kelis nasumo testus, apsvarstykite galimybe naudoti lygiagrecias uzduotis:
jobs:- job: API_Performance_Teststeps:# Run API performance test- job: UI_Performance_Teststeps:# Run UI performance testDiegimo vartai: naudokite nasumo testu rezultatus kaip diegimo vartus:
- 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;]"fiPasirinktine informacine suvestine: sukurkite pasirinktine informacine suvestine nasumo testu rezultatams vizualizuoti laiko begiu.
Pranesimai: nustatykite pranesimus apie nasumo testu nesekmes:
- 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()
Daugiau informacijos rasite Azure DevOps dokumentacijoje ir LoadFocus API kliento dokumentacijoje.