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:

  1. Luo Key Vault Azuressa, jos sinulla ei vielä ole sellaista
  2. Lisää seuraavat salaisuudet:
    • loadfocus-api-key: LoadFocus API -avaimesi
    • loadfocus-team-id: LoadFocus tiimi-ID:si
  3. Määritä palveluyhteys Key Vaultin käyttämiseen putkesta

2. Luo Azure-putki

Luo uusi tiedosto nimeltä azure-pipelines.yml repositorioosi:

trigger:
- main
- develop
pool:
vmImage: 'ubuntu-latest'
variables:
- group: loadfocus-variables # Variable group containing Key Vault references
stages:
- stage: Build
jobs:
- job: BuildAndTest
steps:
# Your existing build and test steps...
- stage: PerformanceTest
dependsOn: Build
condition: succeeded()
jobs:
- job: RunPerformanceTests
steps:
- task: NodeTool@0
inputs:
versionSpec: '16.x'
displayName: 'Install Node.js'
- script: |
npm install -g @loadfocus/loadfocus-api-client
displayName: '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.json
displayName: 'Run Performance Tests'
continueOnError: false
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: 'performance-test-results'
displayName: 'Publish Performance Test Results'
- stage: Deploy
dependsOn: PerformanceTest
condition: succeeded()
jobs:
- job: DeployApplication
steps:
# Your deployment steps...

3. Määritä Variable Group Key Vault -integraatiolla

  1. Siirry kohtaan Pipelines > Library > Variable Groups
  2. Luo uusi Variable Group nimeltä "loadfocus-variables"
  3. Linkitä se Azure Key Vaultiisi
  4. Lisää seuraavat muuttujat linkittämällä ne Key Vault -salaisuuksiisi:
    • LOADFOCUS_API_KEY: Linkitä loadfocus-api-key -salaisuuteen
    • LOADFOCUS_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: 1800
steps:
- script: |
loadfocus-api jmeter run-test \
--name "${{ parameters.testName }}" \
--thresholds "${{ parameters.thresholds }}" \
--waitTimeout ${{ parameters.waitTimeout }} \
--format json > $(Build.ArtifactStagingDirectory)/performance_results.json
displayName: 'Run Performance Tests'
continueOnError: false

Sitten pääputkessasi:

- template: performance-test-template.yml
parameters:
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 test
loadfocus-api jmeter run-test \
--name "API_Test" \
--thresholds "avgresponse<=200,errors==0" \
--format json > $(Build.ArtifactStagingDirectory)/api_test_results.json
# Run UI test
loadfocus-api jmeter run-test \
--name "UI_Test" \
--thresholds "avgresponse<=500,errors==0" \
--format json > $(Build.ArtifactStagingDirectory)/ui_test_results.json
displayName: 'Run Multiple Performance Tests'

Integraatio Azure Test Plans -työkalun kanssa

Suorituskykytestitulosten integrointi Azure Test Plans -työkaluun:

- task: PublishTestResults@2
inputs:
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 test
loadfocus-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.xml
displayName: 'Run Performance Tests and Convert Results'

Vinkkejä Azure DevOps -integraatioon

  1. Rinnakkaiset tehtävät: Jos sinulla on useita suorituskykytestejä, harkitse rinnakkaisten tehtävien käyttöä:

    jobs:
    - job: API_Performance_Test
    steps:
    # Run API performance test
    - job: UI_Performance_Test
    steps:
    # Run UI performance test
  2. Käyttöönottokynnykset: Käytä suorituskykytestin tuloksia käyttöönottokynnyksenä:

    - job: DeploymentGate
    steps:
    - script: |
    # Check if performance tests passed
    if grep -q '"overallResult": "FAILED"' $(Build.ArtifactStagingDirectory)/performance_results.json; then
    echo "##vso[task.logissue type=error]Performance tests failed"
    echo "##vso[task.complete result=Failed;]"
    fi
  3. Mukautettu kojelauta: Luo mukautettu kojelauta suorituskykytestitulosten visualisointiin ajan kuluessa.

  4. Ilmoitukset: Aseta ilmoitukset suorituskykytestin epäonnistumisille:

    - task: SendEmail@1
    inputs:
    to: 'team@example.com'
    subject: 'Performance Test Failed'
    body: 'Performance tests failed to meet thresholds. See attached results.'
    addAttachment: true
    attachmentPath: '$(Build.ArtifactStagingDirectory)/performance_results.json'
    condition: failed()

Lisätietoja löydät Azure DevOps -dokumentaatiosta ja LoadFocus API Client -dokumentaatiosta.