Replies: 9 comments 2 replies
-
K6 설치윈도우 😊1. chocolatey 설치 Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1')) 2. choco 설치 확인choco 3. k6 설치choco install k6 맥1. k6 설치brew install k6 |
Beta Was this translation helpful? Give feedback.
-
k6 실행테스트1. 폴더 하나 만들어서 javascript 파일 생성
import http from 'k6/http';
import { sleep } from 'k6';
export default function () {
http.get('http://test.k6.io'); // http.get('확인하고 싶은 경로');
sleep(1);
} 2. bash에서 해당 경로로 이동한 후 실행k6 run test.js 실행 결과추가적인 코드 설정html로 결과 확인1. 파일 상단에 해당 코드 추가import { htmlReport } from "https://raw.githubusercontent.com/benc-uk/k6-reporter/main/dist/bundle.js"; 2. 파일 하단에 해당 코드 추가export function handleSummary(data) {
return {
"summary.html" : htmlReport(data)
}
} 결과
지속 시간 및 사용자 설정 가능옵션 설정 : 해당 코드 추가export const options = {
stages: [
// 지속 시간(duration): 30초 가상 사용자(target): 20명
// 각 가상 사용자가 1초에 한 번씩 요청을 보내므로: 20명 × 30초 = 600개의 요청
{ duration: '30s', target: 20 },
],
}; 여러 옵션을 추가할 수도 있음export const options = {
stages: [
{ duration: '30s', target: 20 },
{ duration: '1m30s', target: 10 },
{ duration: '20s', target: 0 },
],
}; |
Beta Was this translation helpful? Give feedback.
-
실행 결과 값들의 의미
|
Beta Was this translation helpful? Give feedback.
-
로컬 서버로 우리 서비스 테스트도 해봄 (1)
현재 데이터 수템플릿 26000개성능평가 테스트 스크립트import http from 'k6/http';
import { sleep } from 'k6';
import { htmlReport } from "https://raw.githubusercontent.com/benc-uk/k6-reporter/main/dist/bundle.js";
export const options = {
stages: [
// 지속 시간(duration): 30초 가상 사용자(target): 20명
// 각 가상 사용자가 1초에 한 번씩 요청을 보내므로: 20명 × 30초 = 600개의 요청
{ duration: '30s', target: 20 },
{ duration: '1m30s', target: 10 },
{ duration: '20s', target: 0 },
],
};
export default function () {
http.get('http://localhost:8080/templates?memberId=2');
sleep(1);
}
export function handleSummary(data) {
return {
"summary.html" : htmlReport(data)
}
} 실행k6 run test.js 결과의미 분석이 K6 로드 테스트 결과를 분석해보면 다음과 같습니다: 1. 총 요청 수 (Total Requests):
2. 실패한 요청 (Failed Requests):
3. Threshold 위반 (Breached Thresholds):
4. 실패한 체크 (Failed Checks):
5. 요청 처리 시간 (Request Metrics):
전반적인 분석:
이 결과를 통해 시스템이 현재 설정된 부하 수준에서 적절하게 처리하고 있으며, 성능 문제는 크게 없는 것으로 보입니다. |
Beta Was this translation helpful? Give feedback.
-
로컬 서버로 우리 서비스 테스트도 해봄 (2)
현재 데이터 수템플릿 26000개성능평가 테스트 스크립트import http from 'k6/http';
import { sleep } from 'k6';
import { htmlReport } from "https://raw.githubusercontent.com/benc-uk/k6-reporter/main/dist/bundle.js";
export const options = {
stages: [
{ duration: '30s', target: 20 },
{ duration: '1m30s', target: 10 },
{ duration: '20s', target: 0 },
],
};
export default function () {
http.get('http://localhost:8080/templates?keyword=a');
sleep(1);
}
export function handleSummary(data) {
return {
"summary.html" : htmlReport(data)
}
} 실행k6 run test.js 결과의미 분석이 K6 로드 테스트 결과를 분석해보면 다음과 같습니다: 1. 총 요청 수 (Total Requests):
2. 실패한 요청 (Failed Requests):
3. Threshold 위반 (Breached Thresholds):
4. 실패한 체크 (Failed Checks):
5. 요청 처리 시간 (Request Metrics):
전반적인 분석:
이 결과를 통해 시스템이 현재 설정된 부하 수준에서 적절하게 처리하고 있으며, 성능 문제는 크게 없는 것으로 보입니다. |
Beta Was this translation helpful? Give feedback.
-
집이라서 실제로 테스트 해보지는 못했지만 아래 링크에서처럼 그라파나를 이용해서 GUI로도 쉽게 확인할 수 있는 것 같네요. |
Beta Was this translation helpful? Give feedback.
-
다음과 같이 시나리오도 작성할 수 있습니다.
해석해보면 다음과 같습니다. 2분 동안 5명으로 유저를 증가시키고 또, 95%가 100ms 안에 응답을 받는 것을 목표로� 합니다. |
Beta Was this translation helpful? Give feedback.
-
시나리오1: 가장 부하가 많은 상황가능한 상황: 7기 프리코스 대상 홍보 직후, 7기 프리코스 2차 미션 발표 직후, 프리코스 최종코테 시나리오2: 평상시실제로 하루 100건이므로 TPS로 계산하면 0.001TPS 🥲 그렇게 테스트할 순 없을 것 같으니 조금 올려볼까? |
Beta Was this translation helpful? Give feedback.
-
Standard built-in metricsk6는 테스트에서 사용하는 프로토콜에 관계없이 항상 다음 메트릭을 수집합니다
HTTP-specific built-in metrics이러한 메트릭은 테스트가 HTTP 요청을 할 때만 생성됩니다.
|
Beta Was this translation helpful? Give feedback.
-
설치 방법
실행 방법
html로 결과 확인
간단한 실행 결과
실행 결과 값들의 의미
Beta Was this translation helpful? Give feedback.
All reactions