k6

k6 คือ เครื่องมือสำหรับ load test เพื่อทดสอบประสิทธิภาพการทำงานรองรับผู้ใช้งานของเว็บไซต์ และข้อผิดพลาดต่างๆ ของระบบ ซี่ง k6 ถูกพัฒนาโดย Grafana Labs

Installation:การติดตั้งใช้งาน

Windows

สามารถใช้ Chocolatey package manager

choco install k6

หรือ Windows Package Manager ใช้ในการติดตั้ง k6 สำหรับ Windows ได้

winget install k6

Running k6 Load Test

import http from 'k6/http';
import { sleep } from 'k6';

export default function () {
  http.get('https://tech.duckfollow.co');
  sleep(1);
}
$ k6 run ./test.js

ผลที่ได้จะหมายถึง 1 คนที่ทดสอบใช้เวลาเท่าไร?

เพิ่ม options ในการทดสอบ

$ k6 run --vus 10 --duration 30s ./test.js

--vus 10 จะหมายถึง virtual users (VUs) 10 คน เข้าใช้งานเว็บไซต์ (essentially parallel) --duration 30s ในระยะเวลา 30 วินาที

นอกจากนี้ยังสามารถเพิ่ม options ในโค้ดได้ดังนี้

import http from 'k6/http';
import { sleep } from 'k6';
export const options = {
  vus: 10,
  duration: '30s',
};
export default function () {
  http.get('https://tech.duckfollow.co');
  sleep(1);
}

สามารถทำเป็น scenarios อื่นๆ ในการทดสอบได้ดังนี้

import http from 'k6/http';
import { check, sleep } from 'k6';

export const options = {
  stages: [
    { duration: '30s', target: 20 },
    { duration: '1m30s', target: 10 },
    { duration: '20s', target: 0 },
  ],
};

export default function () {
  const res = http.get('https://tech.duckfollow.co');
  check(res, { 'status was 200': (r) => r.status == 200 });
  sleep(1);
}

โดยจะแบ่งเป็น 3 stage หมายถึง 30 วินาทีแรก มีผู้เข้ามาใช้งาน 20 คน จากนั้น 1 นาที 30 วินาที ค่อยๆ ลดลงเหลือ 10 คน ต่อมาอีก 30 วินาที ลดลงจนเหลือ 0 คน สามารถ อ่านเพิ่มเติมได้ที่ https://k6.io/docs/using-k6/scenarios/