코딩 노트

성능 테스트 본문

프로젝트 배포

성능 테스트

newbyeol 2023. 10. 24. 18:13

1. 단위 테스트

2. 통합 테스트

3. 시스템 테스트 (성능 테스트, 부하 테스트, 스트레스 테스트)

    - JMeter

    - Scouter

    - 프로메테우스, 그라파나

4. 인수 테스트

 

 

JMerter 홈페이지 들어간 후 Binaries에 zip 파일을 다운 받는다.

 

 

1. 가상의 유저를 만든다.

2. 사용자를 몇 명 만드나? / 사용자를 몇 초에 걸쳐서 만드나?

3. 테스터에게 할 일을 정해주자. 

4. 주소를 알려주고 세팅한다.

5. springhome에 TestInterceptor에 들어가서 주석을 해제한다.

6. InterceptorConfiguration에 들어가서 마찬가지로 주석을 해제한다.

/**

인터셉터(Interceptor)

- 완성된 스프링 프로젝트의 구석구석을 간섭할 수 있도록 만들어진 도구

 

만드는 법

1. 상속을 받아서 자격을 획득

2. 등록

3. 메소드 재정의

4. 설정파일을 만들어서 어느 주소를 간섭할 것인지 설정

*/

@Component

public class TestInterceptor implements HandlerInterceptor{

//preHandle은 컨트롤러가 실행되기 직전 시점을 간섭하는 매소드

//- true를 반환하면 요청에 대한 작업을 진행하겠다는 의미

//- false를 반환하면 요청에 대한 작업을 차단하겠다는 의미

//- 자격 여부에 따른 접근 가능/차단 여부를 처리할 때 적합

//- request에는 사용자의 요청정보가 들어있다. (ex: 파라미터, 세션 정보, ..)

//- response에는 사용자에게 나갈 정보가 들어있다. (ex: 화면 정보, ..)

//- handler에는 이 요청을 처리할 대상 컨트롤러/메소드의 정보가 들어있다.

 

//1관문

@Override

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)

throws Exception {

System.out.println("preHandle 실행");

 

return true;

// return false;// 홈페이지 실행이 안됨

}

 

//postHandle은 컨트롤러 처리 후 화면 생성 전 시점을 간섭하는 매소드

//- 유일하게 Model의 정보와 들어있는 데이터를 확인할 수 있다.

//- 검사, 모니터링, 치환 등의 작업을 할 수 있다.

@Override

public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,

ModelAndView modelAndView) throws Exception {

 

System.out.println("postHandle 실행");

System.out.println(modelAndView);

}

 

//afterCompletion은 화면 생성 후(모드 처리가 끝난 후) 시점을 간섭하는 메소드

//- 유일하게 예외의 발생 여부를 알 수 있는 곳

//- 발생한 예외에 따라 처리할 내용들을 이곳에 작성할 수 있다.

//- 사용자가 볼 페이지를 변경할 수는 없다.

// 모니터링, 로깅(기록을 남기는 행위)용도

 

@Override

public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)

throws Exception {

System.out.println("afterCompletion 실행");

System.out.println(ex);

}

 

}

7. 실행을 누르고 No를 누른다. 

100명이 1번씩 실행한 결과가 나온다.

1. 로그인 테스트를 해보자.

2. Summary Report를 만든다.

3. Disable을 누르면 실행중지를 시킬 수 있다.

4. Loop Controller를 만든다.

5. 이렇게 설정한다.

6. 맨 위와 같은 방법으로 로그인 페이지 접속을 만든다.

7. 타이머를 1초로 설정한다.

8. 그래프를 확인할 수 있다.

9. 여기서 결과를 볼 수 있다.

10. 로그인 할 수 있게 아이디와 비번을 알려준다.

Follow Redirects 체크 해제 하기

결과가 나온다.