성능 테스트를 진행하면서 Jmeter가 오픈소스이기 때문에 무료로 많이들 사용 할 수 있다.
좋은 UI와 성능을 지녔지만 비싼 비용인 로드러너는 많이 사용하지 않는 추세다.
오늘은 Jmeter를 사용해서 레코딩을 하고 그 레코딩한 트랜잭션 중 의미있는 것을 어떻게 추려내는지 살펴보도록 하겠다.
Jmeter 다운로드
우선 Jmeter 를 실행하기 위해서는 두가지 준비물이 필요하다.
PC 는 당연히 있어야 한다고 가정하고
1. JAVA 1.8 버전설치 (https://github.com/ojdkbuild/ojdkbuild)
--> open jdk 를 받으면 된다.
--> 자세한 설치방법과 환경변수 셋팅은 (https://kwonoj.tistory.com/9) 를 참고하면 된다
2. Jmeter 설치파일 (https://jmeter.apache.org/download_jmeter.cgi)
-->바이너리 형태로 되어있는 것을 받으면 된다.
Jmeter 실행하기
jmeter 폴더의 bin 폴더에 jmeter.bat 파일을 실행하면 실행된다
cmd 창이 같이 뜨기 때문에 cmd 창을 끄면 본UI 가 같이 꺼진다
cmd 창은 내려두어도 좋으니 끄진 않도록 한다
Jmeter 레코딩 템플릿 불러오기
좌측 상단의 초록색 아이콘을 누르면 레코딩이라는 템플릿을 불러올 수 있다
선택을 하고 merge 버튼을 누르면 아래와 같은 창이 뜨게되는데
테스트 대상이 되는 메인 url 을 입력하고
레코딩을 진행한 후 recording.xml 파일에 실시간으로 레코딩을 할 때 결과물 파일이 그대로 저장이 되어있게된다
원본 파일이라고 보면 되고 레코딩 된 파일을 실행했을 때의 결과와 xml 파일을 비교해서 보면서 필요한 트랜잭션이 무엇인지 정확히 판단 할 수 있는 근거가 된다.
이번에는 naver.com 으로 해보도록 하겠다
물론 주의해 할 점으로는 naver.com 과 같은 포털에 잘못 부하를 발생시켰다가는 디도스 공격으로 의심을 해서 해당 ip 을 block 하거나 접속 제한을 둘 수 있기 때문에 조심해야 한다
아마도 아주 적은 user 로 부하를 발생시키면 괜찮을 것으로 생각된다
레코딩하는 브라우저로는 firefox 를 사용했다
프록시를 설정하기 편리해서 사용한다
레코딩을 하면 레코딩 컨트롤러가 작게 뜨게되고 시작을 누르면 동작한다
여기서 transaction name 을 페이지를 넘어갈때마다 이름을 다르게 해줘야 작업 후 구분하기 편하다
본인이 구분하기 쉽도록 로그인, 어떤탭, 어떤페이지로 이동하는지 기록해주도록 한다
한글 영어 관계없이 레코딩이 가능하다
네이버는 레코딩을 해보려 했으나 레코딩이 되지 않는다.
이미 Jmeter 와 같은 부하발생기로 가능하지 않도록 되어있는 것 같다.
구성되어있는 샘플 페이지를 레코딩해서 진행해보도록 하겠다.
이렇게 샘플페이지1, 2, 3 이런식으로 페이지 네이밍을 해주도록 하고 페이지가 구분이 갈 수 있도록 레코딩을 진행한다
그러면 실제로 레코딩을 진행할 때 어떤식으로 레코딩이 되었는지 알아보려면 ./bin/recording.xml 파일을 찾아보면 된다. 이것을 view result tree 에 넣어서 실제 레코딩 상태가 어땠는지 확인해본다.
지금 결과를 보면 잡다한 url 이 섞여들어오는 것을 확인할 수 있고 이런것들은 실제 레코딩된 트랜잭션에서 걸러주어야 할 것들이다.
레코딩이 된 결과를 새로운 스레드를 만들어서 돌려보면 이렇게 결과값이 error 로 뜨는 것들도 있고 성공도 있다.
이중에서 왜 에러가 났는지 확인해보도록 하고, 이것이 실제 우리가 호출하고자 하는 데이터인지 불필요한 데이터인지 확인을 해보자.
확인을 하는 방법으로는 request 와 response 를 보고 판단해보도록 하자.
text 또는 json 형식으로 확인이 잘 안된다면 html 로 변경해서 페이지가 실제로 제대로 동작했는지 확인해본다
그러면 불필요한 데이터를 제거하고 다시한번 돌려보도록 하자
각 페이지가 정상적으로 뜨는 것을 html 형식으로 확인을 해주었고, 정상 동작하는 것을 볼 수 있다.
오늘은 jmeter 로 레코딩을 한 후에 어떻게 제대로된 트랜잭션을 뽑아내는지까지 해보았다.
원래는 네이버 페이지로 해보려 했지만 접근이 되지 않아 아쉬운점이 있었다
아무래도 매우 많은 사람들이 트래픽을 발생시키는 사이트이다 보니 여러가지 보안 설정을 해둔 것 같다.
다음글에서는 jmeter의 세션 유지와 같은 corelation 하는 방법에 대해서 다뤄보도록 하겠다.
'성능테스트' 카테고리의 다른 글
[성능테스트] Jmeter OS Process Sampler (0) | 2022.06.28 |
---|---|
[성능테스트] Jmeter Authorizations Manager (0) | 2022.05.10 |
[성능테스트] Jmeter 보안로그인 세션유지 (0) | 2022.04.30 |
[성능테스트] Jmeter 레코딩이 안될때 HAR 파일 사용 (0) | 2022.04.28 |
댓글