GitLab CI/CD

คู่มือนี้อธิบายวิธีผสาน LoadFocus JMeter API Client กับ GitLab CI/CD สำหรับการทดสอบประสิทธิภาพอัตโนมัติ

ขั้นตอนการตั้งค่า

1. จัดเก็บ Credentials เป็น GitLab CI/CD Variables

ก่อนอื่น จัดเก็บ LoadFocus API credentials เป็น GitLab CI/CD variables:

  1. ไปที่โปรเจกต์ GitLab ของคุณ
  2. นำทางไปที่ Settings > CI/CD > Variables
  3. เพิ่ม variables ต่อไปนี้:
    • LOADFOCUS_API_KEY: API key ของ LoadFocus (ทำเครื่องหมายเป็น "Masked")
    • LOADFOCUS_TEAM_ID: Team ID ของ LoadFocus

2. สร้าง GitLab CI/CD Pipeline

สร้างหรืออัปเดตไฟล์ .gitlab-ci.yml ใน repository ของคุณ:

stages:
- build
- test
- performance
- deploy
variables:
NODE_VERSION: "16"
build:
stage: build
image: node:${NODE_VERSION}
script:
- npm install
- npm run build
artifacts:
paths:
- dist/
expire_in: 1 week
test:
stage: test
image: node:${NODE_VERSION}
script:
- npm install
- npm test
performance_test:
stage: performance
image: 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.json
artifacts:
paths:
- performance_results.json
expire_in: 1 week
when: always
only:
- main
- develop
deploy:
stage: deploy
script:
- echo "Deploying application..."
only:
- main
when: on_success

เคล็ดลับสำหรับการผสาน GitLab CI/CD

  1. Caching: แคช npm dependencies เพื่อเร่งการรัน pipeline
  2. การตั้งค่า Timeout: ตั้ง timeouts สำหรับทดสอบประสิทธิภาพที่ใช้เวลานาน
  3. Manual Triggers: อนุญาตให้ทดสอบประสิทธิภาพถูกทริกเกอร์ด้วยตนเอง
  4. การกำหนดค่าทดสอบแบบไดนามิก: ใช้ GitLab predefined variables เพื่อกำหนดค่าทดสอบแบบไดนามิก
  5. การแจ้งเตือน: ส่งการแจ้งเตือนเมื่อทดสอบประสิทธิภาพล้มเหลว

สำหรับข้อมูลเพิ่มเติม ดู เอกสาร GitLab CI/CD และ เอกสาร LoadFocus API Client