CircleCI
Šī pamācība izskaidro, kā integrēt LoadFocus JMeter API klientu ar CircleCI automatizētai veiktspējas testēšanai.
Iestatīšanas soļi
1. Pievienojiet vides mainīgos
Saglabājiet savus LoadFocus API akreditācijas datus kā vides mainīgos CircleCI:
- Pārejiet uz savu projektu CircleCI
- Dodieties uz Project Settings > Environment Variables
- Pievienojiet šādus mainīgos:
LOADFOCUS_API_KEY: Jūsu LoadFocus API atslēgaLOADFOCUS_TEAM_ID: Jūsu LoadFocus komandas ID
2. Konfigurējiet CircleCI darbplūsmu
Izveidojiet vai atjauniniet savu .circleci/config.yml failu, lai iekļautu veiktspējas testēšanu:
version: 2.1jobs:performance_test:docker:- image: cimg/node:16.13steps:- checkout- run:name: Install LoadFocus JMeter API Clientcommand: npm install -g @loadfocus/loadfocus-api-client- run:name: Configure LoadFocus API Clientcommand: |loadfocus-api config set apikey $LOADFOCUS_API_KEYloadfocus-api config set teamid $LOADFOCUS_TEAM_ID- run:name: Run Performance Testscommand: |loadfocus-api jmeter run-test \--name "CircleCI_${CIRCLE_PROJECT_REPONAME}_${CIRCLE_BRANCH}" \--thresholds "avgresponse<=200,errors==0,p95<=250" \--format json > performance_results.json- store_artifacts:path: performance_results.jsondestination: performance-test-resultsworkflows:version: 2build_test_deploy:jobs:- build_and_test- performance_test:requires:- build_and_test- deploy:requires:- performance_testfilters:branches:only: main
3. Būvējuma pārtraukšana veiktspējas problēmu gadījumā
Lai jūsu cauruļvads tiktu pārtraukts, kad veiktspējas sliekšņi netiek sasniegti, modificējiet soli "Run Performance Tests":
- run:name: Run Performance Testscommand: |loadfocus-api jmeter run-test \--name "CircleCI_${CIRCLE_PROJECT_REPONAME}_${CIRCLE_BRANCH}" \--thresholds "avgresponse<=200,errors==0,p95<=250" \--format json > performance_results.json# Check exit code - the command will exit with code 1 if thresholds are not metif [ $? -ne 0 ]; thenecho "Performance test failed to meet thresholds"exit 1fi
Papildu konfigurācija
Paralēlā testēšana
Lai palaistu vairākus veiktspējas testus paralēli:
performance_tests:docker:- image: cimg/node:16.13parallelism: 3steps:- checkout- run:name: Install LoadFocus JMeter API Clientcommand: npm install -g @loadfocus/loadfocus-api-client- run:name: Configure LoadFocus API Clientcommand: |loadfocus-api config set apikey $LOADFOCUS_API_KEYloadfocus-api config set teamid $LOADFOCUS_TEAM_ID- run:name: Run Performance Testscommand: |# Get test name based on indexTESTS=("API_Test" "Frontend_Test" "Database_Test")INDEX=$(( $CIRCLE_NODE_INDEX % 3 ))TEST_NAME=${TESTS[$INDEX]}echo "Running test: $TEST_NAME"loadfocus-api jmeter run-test \--name "$TEST_NAME" \--thresholds "avgresponse<=200,errors==0,p95<=250" \--format json > "performance_results_${TEST_NAME}.json"- store_artifacts:path: performance_results_*.jsondestination: performance-test-results
Padomi CircleCI integrācijai
Resursu piešķiršana: Pārliecinieties, ka jūsu CircleCI plānā ir pietiekami resursi veiktspējas testu izpildei, īpaši ja tie ir ilgstoši.
Taimauta iestatījumi: Garākiem testiem pielāgojiet darba taimautu CircleCI:
- run:name: Run Performance Testscommand: loadfocus-api jmeter run-test --name "Test_Name" --waitTimeout 3600no_output_timeout: 60mNosacījuma testēšana: Izpildiet veiktspējas testus tikai noteiktos zaros vai konkrētiem commitiem:
performance_test:# Only run if commit message contains [PERF-TEST]when:condition:or:- equal: [ main, << pipeline.git.branch >> ]- matches:pattern: ".*\\[PERF-TEST\\].*"value: << pipeline.git.commit.message >>Paziņojumi: Iestatiet paziņojumus veiktspējas testu kļūmju gadījumā:
- run:name: Notify on Performance Test Failurecommand: |if [ $? -ne 0 ]; thencurl -X POST -H "Content-Type: application/json" \-d '{"text":"Performance test failed for $CIRCLE_PROJECT_REPONAME"}' \$SLACK_WEBHOOK_URLfiwhen: on_fail
Papildu informācijai skatiet CircleCI dokumentāciju un LoadFocus API klienta dokumentāciju.