Après avoir couvert le « pourquoi » et le « comment » des tests de charges/stress, il nous fallait parler de son intégration dans un environnement Azure DevOps.
Commencez tout d’abord par ajouter l’extension K6 à votre projet Azure DevOps:
Pour le coup j’ai importé mon repository GitHub vers mon projet Azure Devops et j’ai crée une pipeline de build afin de pouvoir générer un artifact de build.
All in one in build pipeline
Pour cela, ajoutez une pipeline de build à votre projet sur Azure DevOps comme suit :
Choissisez votre repository puis prenez le template ASP.NET Core que nous allons modifier :
# ASP.NET Core (.NET Framework)
# Build and test ASP.NET Core projects targeting the full .NET Framework.
# Add steps that publish symbols, save build artifacts, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core
trigger:
- main
pool:
vmImage: 'windows-latest'
variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
steps:
- task: UseDotNet@2
displayName: 'Use .NET Core sdk'
inputs:
packageType: 'sdk'
version: '6.0.x'
- task: NuGetToolInstaller@1
- task: NuGetCommand@2
inputs:
restoreSolution: '$(solution)'
- task: DotNetCoreCLI@2
displayName: Build
inputs:
command: build
projects: '**/*.csproj'
arguments: '--configuration $(buildConfiguration)' # Update this to match your need
- task: DotNetCoreCLI@2
inputs:
command: publish
publishWebProjects: True
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
zipAfterPublish: True
# this code takes all the files in $(Build.ArtifactStagingDirectory) and uploads them as an artifact of your build.
- task: PublishPipelineArtifact@1
inputs:
targetPath: '$(Build.ArtifactStagingDirectory)'
artifactName: 'loadtestK6'
- task: AzureRmWebAppDeployment@4
inputs:
ConnectionType: 'AzureRM'
azureSubscription: 'your azure subscription'
appType: 'webApp'
WebAppName: 'k6loadtest'
packageForLinux: '$(Build.ArtifactStagingDirectory)/loadtestK6/AOP-Logging-PostSharp-Sample.zip'
- task: k6-load-test@0
inputs:
filename: 'AOP-Logging-PostSharp-Sample/test.js'
args: '--env API_BASEURL=k6loadtest.azurewebsites.net'
Cette pipeline intégre tout ce dont vous avez besoin pour builder , publier votre artefact et déployer vers votre instance Azure App Service.
Avec pipeline de release
Une fois que votre pipeline est en capacité de créer des artifacts de build , nous allons créer une pipeline de release pour lancer nos tests K6.
Sélectionnez « Empty Job » pour partir d’un modèle vide :
Rajoutez votre artifact généré lors de votre pipeline de build :
J’ai créé au préalable un app service sur Azure en .NET 6.0 pour pouvoir héberger mon application et je vais le déployer vers celui-ci comme suit en créant la tache appropriée:
Puis une tache de test K6 :
Ajoutez ensuite une tache pour lire les résultats des tests :
Une fois que la release est lancée, vous obtiendrez vos résultats de manière visuelle 😉
Voila c’est tout pour cette intégration avec Azure DevOps.
Faites en bon usage et have fun coding !
Articles similaires