GitLab CI/CD
Siame vadove paaiskiname, kaip integruoti LoadFocus JMeter API klienta su GitLab CI/CD automatizuotam nasumo testavimui.
Nustatymo zingsniai
1. Saugokite kredencialus kaip GitLab CI/CD kintamuosius
Pirmiausia saugokite savo LoadFocus API kredencialus kaip GitLab CI/CD kintamuosius:
- Eikite i savo GitLab projekta
- Naviguokite i Settings > CI/CD > Variables
- Pridekite siuos kintamuosius:
LOADFOCUS_API_KEY: jusu LoadFocus API raktas (pazymekite kaip "Masked")LOADFOCUS_TEAM_ID: jusu LoadFocus komandos ID
2. Sukurkite GitLab CI/CD konvejeri
Sukurkite arba atnaujinkite savo .gitlab-ci.yml faila saugykloje:
stages:- build- test- performance- deployvariables:NODE_VERSION: "16"build:stage: buildimage: node:${NODE_VERSION}script:- npm install- npm run buildartifacts:paths:- dist/expire_in: 1 weektest:stage: testimage: node:${NODE_VERSION}script:- npm install- npm testperformance_test:stage: performanceimage: node:${NODE_VERSION}script:- npm install -g @loadfocus/loadfocus-api-client- loadfocus-api config set apikey $LOADFOCUS_API_KEY- loadfocus-api config set teamid $LOADFOCUS_TEAM_ID- |loadfocus-api jmeter run-test \--name "GitLab_${CI_PROJECT_NAME}_${CI_COMMIT_REF_NAME}" \--thresholds "avgresponse<=200,errors==0,p95<=250" \--format json > performance_results.jsonartifacts:paths:- performance_results.jsonexpire_in: 1 weekwhen: alwaysonly:- main- developdeploy:stage: deployscript:- echo "Deploying application..."only:- mainwhen: on_success
3. Perziurekite testo rezultatus
Po konvejerio vykdymo:
- Eikite i savo GitLab projekta
- Naviguokite i CI/CD > Pipelines
- Raskite savo konvejeri ir spauskite ant jo
- Eikite i "performance_test" uzduoti
- Spauskite "Browse" desiniajame soniniame skydelyje, kad perziuretumete artefaktus
- Atsisiuskite ir perziurekite
performance_results.jsonfaila
Isplestine konfiguracija
Aplinkoms specifinis testavimas
Vykdykite skirtingus nasumo testus skirtingoms aplinkoms:
.performance_test_template: &performance_test_definitionstage: performanceimage: node:${NODE_VERSION}script:- npm install -g @loadfocus/loadfocus-api-client- loadfocus-api config set apikey $LOADFOCUS_API_KEY- loadfocus-api config set teamid $LOADFOCUS_TEAM_ID- |loadfocus-api jmeter run-test \--name "${TEST_NAME}" \--thresholds "${THRESHOLDS}" \--format json > performance_results.jsonartifacts:paths:- performance_results.jsonexpire_in: 1 weekwhen: alwaysperformance_test_develop:<<: *performance_test_definitionvariables:TEST_NAME: "API_Test_Develop"THRESHOLDS: "avgresponse<=300,errors==0,p95<=500"only:- developperformance_test_staging:<<: *performance_test_definitionvariables:TEST_NAME: "API_Test_Staging"THRESHOLDS: "avgresponse<=250,errors==0,p95<=350"only:- stagingperformance_test_production:<<: *performance_test_definitionvariables:TEST_NAME: "API_Test_Production"THRESHOLDS: "avgresponse<=200,errors==0,p95<=250"only:- main
Lygiagretus testavimas
Vykdykite kelis nasumo testus lygiagrecziai:
performance_test_api:stage: performanceimage: node:${NODE_VERSION}script:- npm install -g @loadfocus/loadfocus-api-client- loadfocus-api config set apikey $LOADFOCUS_API_KEY- loadfocus-api config set teamid $LOADFOCUS_TEAM_ID- |loadfocus-api jmeter run-test \--name "API_Performance_Test" \--thresholds "avgresponse<=150,errors==0" \--format json > api_performance_results.jsonartifacts:paths:- api_performance_results.jsonexpire_in: 1 weekperformance_test_ui:stage: performanceimage: node:${NODE_VERSION}script:- npm install -g @loadfocus/loadfocus-api-client- loadfocus-api config set apikey $LOADFOCUS_API_KEY- loadfocus-api config set teamid $LOADFOCUS_TEAM_ID- |loadfocus-api jmeter run-test \--name "UI_Performance_Test" \--thresholds "avgresponse<=300,errors==0" \--format json > ui_performance_results.jsonartifacts:paths:- ui_performance_results.jsonexpire_in: 1 week
Patarimai GitLab CI/CD integracijai
Podeliu naudojimas: Naudokite npm priklausomybiu podeli, kad pagreitintumete konvejerio vykdyma.
Laiko limito nustatymai: Nustatykite laiko limitus ilgai trunkancziems nasumo testams:
performance_test:stage: performanceimage: node:${NODE_VERSION}timeout: 2hscript:# Nasumo testo skriptas...Rankinis paleidimas: Leiskite nasumo testus paleisti rankiniu budu:
performance_test:stage: performanceimage: node:${NODE_VERSION}script:# Nasumo testo skriptas...when: manualPranesimai: Siuskite pranesimus, kai nasumo testai nepavyksta:
performance_test:stage: performanceimage: node:${NODE_VERSION}script:# Nasumo testo skriptas...after_script:- |if [ $? -ne 0 ]; thencurl -X POST -H "Content-Type: application/json" \-d "{\"text\":\"Performance test failed for ${CI_PROJECT_NAME}\"}" \$WEBHOOK_URLfi
Daugiau informacijos rasite GitLab CI/CD dokumentacijoje ir LoadFocus API kliento dokumentacijoje.