Jenkins
Siame vadove paaiskiname, kaip integruoti LoadFocus JMeter API klienta su Jenkins automatizuotam nasumo testavimui.
Nustatymo zingsniai
1. Saugokite kredencialus Jenkins
Pirmiausia saugiai issaugokite savo LoadFocus API kredencialus Jenkins:
- Naviguokite i Jenkins Dashboard > Manage Jenkins > Manage Credentials
- Pasirinkite atitinkama kredencialu domena (pvz., global)
- Spauskite "Add Credentials"
- Pridekite siuos kredencialus:
- Kind: Secret text
- Scope: Global
- Secret: jusu LoadFocus API raktas
- ID: loadfocus-api-key
- Description: LoadFocus API Key
- Pakartokite savo komandos ID su ID: loadfocus-team-id
2. Sukurkite Jenkins konvejeri
Sukurkite Jenkinsfile savo saugykloje:
pipeline {agent {docker {image 'node:16-alpine'}}environment {LOADFOCUS_API_KEY = credentials('loadfocus-api-key')LOADFOCUS_TEAM_ID = credentials('loadfocus-team-id')}stages {stage('Build') {steps {sh 'npm install'sh 'npm run build'}}stage('Test') {steps {sh 'npm test'}}stage('Performance Test') {steps {sh 'npm install -g @loadfocus/loadfocus-api-client'sh 'loadfocus-api config set apikey $LOADFOCUS_API_KEY'sh 'loadfocus-api config set teamid $LOADFOCUS_TEAM_ID'sh '''loadfocus-api jmeter run-test \--name "Jenkins_${JOB_NAME}_${BUILD_NUMBER}" \--thresholds "avgresponse<=200,errors==0,p95<=250" \--format json > performance_results.json'''archiveArtifacts artifacts: 'performance_results.json', fingerprint: true}}stage('Deploy') {when {expression {return currentBuild.resultIsBetterOrEqualTo('SUCCESS')}}steps {echo 'Deploying...'}}}post {always {cleanWs()}}}
3. Sukonfiguruokite Jenkins uzduoti
- Sukurkite nauja Pipeline uzduoti Jenkins
- Sukonfiguruokite konvejeri naudoti jusu Jenkinsfile
- Nustatykite atitinkama SCM konfiguracija jusu saugyklai gauti
Isplestine konfiguracija
Deklaratyvinis konvejeris su lygiagrecziu testavimu
Vykdykite kelis nasumo testus lygiagrecziai:
pipeline {agent anyenvironment {LOADFOCUS_API_KEY = credentials('loadfocus-api-key')LOADFOCUS_TEAM_ID = credentials('loadfocus-team-id')}stages {stage('Performance Tests') {parallel {stage('API Performance') {agent {docker {image 'node:16-alpine'}}steps {sh 'npm install -g @loadfocus/loadfocus-api-client'sh 'loadfocus-api config set apikey $LOADFOCUS_API_KEY'sh 'loadfocus-api config set teamid $LOADFOCUS_TEAM_ID'sh '''loadfocus-api jmeter run-test \--name "API_Performance_Test" \--thresholds "avgresponse<=150,errors==0" \--format json > api_performance_results.json'''archiveArtifacts artifacts: 'api_performance_results.json', fingerprint: true}}stage('UI Performance') {agent {docker {image 'node:16-alpine'}}steps {sh 'npm install -g @loadfocus/loadfocus-api-client'sh 'loadfocus-api config set apikey $LOADFOCUS_API_KEY'sh 'loadfocus-api config set teamid $LOADFOCUS_TEAM_ID'sh '''loadfocus-api jmeter run-test \--name "UI_Performance_Test" \--thresholds "avgresponse<=300,errors==0" \--format json > ui_performance_results.json'''archiveArtifacts artifacts: 'ui_performance_results.json', fingerprint: true}}}}}}
Patarimai Jenkins integracijai
Laiko limito apdorojimas: Nustatykite laiko limitus ilgai trunkancziems nasumo testams:
stage('Performance Test') {options {timeout(time: 60, unit: 'MINUTES')}steps {// Nasumo testo zingsniai}}Salyginis vykdymas: Vykdykite nasumo testus tik tam tikrose sakose:
stage('Performance Test') {when {anyOf {branch 'main'branch 'develop'tag pattern: "v\\d+\\.\\d+\\.\\d+", comparator: "REGEXP"}}steps {// Nasumo testo zingsniai}}Suplanuotas testavimas: Vykdykite nasumo testus pagal grafika:
pipeline {agent anytriggers {cron('0 0 * * *') // Kiekviena diena vidurnakti}stages {// Konvejerio etapai}}Parametrizuoti testai: Leiskite pritaikyti testo parametrus:
pipeline {agent anyparameters {string(name: 'TEST_NAME', defaultValue: 'API_Performance_Test', description: 'LoadFocus testo pavadinimas')string(name: 'THRESHOLDS', defaultValue: 'avgresponse<=200,errors==0', description: 'Nasumo ribines vertes')string(name: 'WAIT_TIMEOUT', defaultValue: '1800', description: 'Maksimalus laukimo laikas sekundemis')}stages {stage('Performance Test') {steps {sh """loadfocus-api jmeter run-test \\--name "${params.TEST_NAME}" \\--thresholds "${params.THRESHOLDS}" \\--waitTimeout ${params.WAIT_TIMEOUT} \\--format json > performance_results.json"""}}}}
Daugiau informacijos rasite Jenkins dokumentacijoje ir LoadFocus API kliento dokumentacijoje.