UNPKG

k6-test-framework

Version:

Enterprise-grade load testing solution with k6

85 lines (69 loc) 2.27 kB
trigger: branches: include: - main pr: branches: include: - main parameters: - name: test_type type: string default: 'smoke' values: - smoke - stress - soak - load - ramp - spike variables: BASE_URL: "https://reqres.in/api" # Replace with your actual base URL workingDirectory: $(System.DefaultWorkingDirectory) jobs: - job: LoadTest displayName: 'K6 Load Testing' pool: vmImage: 'ubuntu-latest' steps: - checkout: self displayName: 'Checkout repository' - script: | sudo apt-get remove -y containerd containerd.io docker docker-engine docker.io sudo apt-get purge -y containerd containerd.io docker docker-engine docker.io sudo apt-get autoremove -y displayName: 'Remove conflicting Docker packages' - script: | sudo apt-get update sudo apt-get install -y docker.io sudo systemctl start docker sudo systemctl enable docker displayName: 'Install Docker' - script: | mkdir -p $(workingDirectory)/reports chmod -R 777 $(workingDirectory)/reports displayName: 'Create reports directory' - script: | docker build -t k6-reqres . displayName: 'Build Docker image' - script: | export BASE_URL=$(BASE_URL) export TEST_TYPE=${{ parameters.test_type }} echo "BASE_URL is set to: $BASE_URL" echo "TEST_TYPE is set to: $TEST_TYPE" docker run --rm -v $(workingDirectory):/app \ -e BASE_URL="$BASE_URL" \ -e TEST_TYPE="$TEST_TYPE" \ k6-reqres run tests/"$TEST_TYPE".test.js displayName: 'Run K6 test' - script: | ls -l $(workingDirectory)/reports displayName: 'Debug: List reports directory' - task: PublishBuildArtifacts@1 displayName: 'Publish K6 test report' inputs: PathtoPublish: '$(workingDirectory)/reports' ArtifactName: 'k6-test-report' - script: | docker rmi k6-reqres || true displayName: 'Cleanup Docker image'