27 lines
1.1 KiB
JavaScript
27 lines
1.1 KiB
JavaScript
|
|
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초 사이 랜덤 대기
|
|
} |