Initial commit: 교육 프로젝트 배포
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
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://domain.cafe24.com'; // 실제 서비스 도메인으로 변경
|
||||
|
||||
// [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초 사이 랜덤 대기
|
||||
}
|
||||
Reference in New Issue
Block a user