코딩 노트
성능 테스트 본문
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. 로그인 할 수 있게 아이디와 비번을 알려준다.
결과가 나온다.
'프로젝트 배포' 카테고리의 다른 글
서버 배포 자동화 - hybrid (0) | 2023.10.11 |
---|---|
배포에 필요한 내용 리스트 (0) | 2023.10.11 |
배포 시 절대 경로를 수정해야 하는 이유 (0) | 2023.10.11 |
애플리케이션 배포 - cloud 환경 (0) | 2023.10.10 |