import http from 'k6/http'; import { check, sleep } from 'k6'; // 트래픽 낭비를 막기 위해 단 1분 30초만 짧게 테스트합니다. export const options = { stages: [ { duration: '30s', target: 30 }, // 30초 동안 동시 접속자를 30명까지 올림 { duration: '30s', target: 30 }, // 30명 동시 접속 상태를 30초 유지 (이때 에러가 나는지 집중 확인!) { duration: '30s', target: 0 }, // 30초 동안 접속 서서히 종료 ], }; export default function () { const baseUrl = 'https://baroncs.co.kr/edu/skin/index.php'; // 실제 서비스 도메인으로 변경 // [Point] 불필요한 하위 페이지는 빼고, 쿼리가 가장 많이 도는 메인 페이지만 타격합니다. let res = http.get(`${baseUrl}/`); check(res, { '정상 접속(200)': (r) => r.status === 200, '빠른 응답(<1초)': (r) => r.timings.duration < 1000, }); // [Point] 방화벽 디도스(DDoS) 영구 차단을 피하기 위해 요청 간격을 여유 있게 줍니다. sleep(Math.random() * 4 + 2); // 2~6초 사이 랜덤 대기 }