config:target:'http://localhost:8080'phases:# 성능 테스트의 요청 설정# 30초 동안 초당 3개의 요청 - duration:30arrivalRate:3# 시나리오 개수만큼 요청name:Warm up# 페이지 이름 - duration:30arrivalRate:3rampTo:30# 점점 요청 횟수를 늘려서 최종 초당 30개의 요청name:Ramp up load - duration:60arrivalRate:30name:Sustained load - duration:30arrivalRate:30rampTo:10# 점점 요청 횟수를 줄여서 최종 초당 10개의 요청name:End of loadscenarios:# 한 명의 사용자가 어떤 순서로 요청을 할지 설정 - name:"login and use some functions"# 1번 시나리오 이름flow: - post:url:"/login" - get:url:"/some-function-one" - get:url:"/some-function-two" - name:"just login"# 2번 시나리오 이름flow: - post:url:"/login"
성능 테스트 로그
# 성능 테스트 실행$artilleryrun--outputsecario-report.jsonscenario-test-config.yaml...AllvirtualusersfinishedSummaryreport@00:00:00(+0000) 2024-00-00Scenarioslaunched:3025Scenarioscompleted:3025Requestscompleted:6115Meanresponse/sec:40.47Responsetime (msec):min:15max:64median:24p95:36p99:39Scenariocounts:loginandusesomefunctions:1545 (51.074%)justlogin:1480 (48.926%)Codes:200:6115# 결과를 html 파일로 변환$artilleryreportsecario-report.json--outputsecario-report.html
config:target:'http://localhost:8080'phases: - duration:30arrivalRate:3name:Warm uppayload:path:"id-password.csv"# 파일 경로fields:# 필드 구분 - "id" - "password"scenarios: - name:"just login"flow: - post:# json 파라미터url:"/login-with-id-password"json:id:"{{ id }}"password:"{{ password }}" - name:"find user"flow: - get:# url 파라미터url:"/search?query={{ id }}"
성능 테스트 로그
# 성능 테스트 실행$artilleryrun--outputparameter-report.jsonparameter-test-config.yaml...AllvirtualusersfinishedSummaryreport@00:00:00(+0900) 2024-00-00Scenarioslaunched:90Scenarioscompleted:90Requestscompleted:90Meanresponse/sec:2.98Responsetime (msec):min:1max:56median:3p95:4p99:36Scenariocounts:justlogin:46 (51.111%)finduser:44 (48.889%)Codes:200:90# 결과를 html 파일로 변환$artilleryreportparameter-report.json--outputparameter-report.html
High Load Test
파라미터 테스트 스크립트 작성
config:target:'http://localhost:8080'phases: - duration:30arrivalRate:20name:Warm up - duration:10arrivalRate:20rampTo:200name:Ramp up load - duration:10arrivalRate:200name:Sustained load - duration:30arrivalRate:200rampTo:20name:End of loadscenarios: - name:"high load cpu"flow: - get:url:"/high-load-cpu" - name:"high load memory"flow: - get:url:"/high-load-memory"
성능 테스트 로그
# 성능 테스트 실행$artilleryrun--outputhigh-load-report.jsonhigh-load-test-config.yaml...AllvirtualusersfinishedSummaryreport@00:00:00(+0900) 2024-00-00Scenarioslaunched:7214Scenarioscompleted:6767Requestscompleted:6767Meanresponse/sec:87.59Responsetime (msec):min:2max:7781median:1823p95:4456p99:5369Scenariocounts:highloadcpu:3669 (50.859%)highloadmemory:3545 (49.141%)Codes:200:6767Errors:ECONNRESET:14ETIMEDOUT:433# 결과를 html 파일로 변환$artilleryreporthigh-load-report.json--outputhigh-load-report.html