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/