개틀링
JDK 1.8 이상 설치되어있음을 가정한다.
jdk가 깔린 폴더를 JAVA_HOME이라는 환경변수로 잡아주고
JAVA_HOME/bin 폴더를 Path환경변수에 추가해준다.
QUICK START
번들버전으로 시작
인코딩
Gatling의 기본 인코딩은 UTF-8이다.
레코더를 사용하는동안 적절한 인코딩을 사용해야 한다.
- gatling.conf 파일에서 적절한 인코딩을 구성. 시뮬레이션을 컴파일하고 요청 및 응답을 작성하는데 사용한다.
- 텍스트 편집기의 인코딩도 설정이 올바로 되어있는지 확인해야 한다.
스칼라
개틀링 시뮬레이션 스크립트 사용언어는 스칼라인다. 공식 홈페이지에서는 스칼라에 대해 많이 모르더라도 개틀링의 모든 기본 기능을 사용할 수 있다고 한다. 왠지 뻥인것 같지만 믿어보도록 한다.
테스트 케이스
- 시뮬레이션, 시나리오, 피더, 레코더, 루프 등에 대해 배운다.
- GatlingHTTP 기능 안내
기본
레코더 사용
- Recorder를 사용하면 시나리오 생성을 용이하게 할 수 있다.
실행 방법
// 실행환경이 윈도우임을 가정한다.
// %GATLING_HOME%/bin 까지의 경로를 해당 경로를 환경변수로 잡아놓으면 더욱 편리하게 사용할 수 있다.
%GATLING_HOME%/bin/recorder.bat
* start를 눌렀는데 아무런 반응이 없을땐, GATLING을 시작하는데 실행했었던 cmd를 살펴보자.
bind- 하는 에러가 나오면 이미 포트가 사용중일것이다. 사용중이지 않은 포트를 설정하자.
+ css나 js처럼 정적인 리소스를 request에 포함시키지 않으려면 아래의 버튼을 클릭한다.
시나리오 생성 동작 START
1) naver.com 으로 이동한다.
2) 아이디와 비밀번호를 입력한다
3) 로그인 버튼을 클릭한다.
* 실제 사용자처럼 행동하려고 노력하자. 휙휙, 빨리빨리 넘기지 말고 자제하라는 얘기. 이렇게 하면 시나리오가 실제 사용자의 행동에 더 가까워진다.
시나리오 재생이 끝나면 Stop버튼을 클릭한다.
시뮬레이션 저장위치 :
%GATLING_HOME%user-files/simulations/computerdatabase 폴더에, 저장된다.
Gatling으로 실행하기
// window 기준
%GATLING_HOME%\bin\gatling.bat
하지만 슬프게도, 내가 원했던 시나리오가 아니다 ! record가 안되고 있었다..
왜냐하면, 프록시 설정을 안했기 때문이다.
당신은 바보입니까? Gatling의 Listening port가 괜히있는것 같습니까?
브라우저의 request가 Gatling을 통과후 서버로 가지 않으면
어떻게 request를 수집할수 있겠니?! 개틀링이 마법이야? 어?
아무튼, 브라우저의 request가 Gating의 Port로 거쳐야 한다.
프록시 설정하기
* Window 기준
start 버튼을 누르고.. 테스트하길 원하는 페이지에 접근하면..
크롬: 안돼. 인증서 문제있어 돌아가.
ㅠㅠ
HTTP는 정상적으로 레코드가 되지만, HTTPS는 크롬에서 인증서가 올바르지 않는다는 에러를 발생시킨다.
-> Gatling에서 자체적으로 생성한 인증서는 크롬에서 신뢰하는인증기관에서 발급한 인증서가 아니기 때문이다.(애초에 일리가 없지만..)
-> 1) 자체생성한 인증서를 '검증된 인증서야' 라고 인증해주는 CA정보를 브라우저에 등록해 줘야 한다.
->2) Gatling에서 자체 생성한 인증서를 OS에서 설치하는 과정이 필요하다.
이후에 알림메시지는 확인을 클릭한다.
크롬에 인증서 등록 으로 이동
chrome://settings/security
아까 생성했었던 파일중 GatlingCA.cert.pem 파일을 가져온다.
그다음 확인>확인>확인
그리고 다시 들어가서 인증서를 다운받은 후...
다시 Gatling으로 돌아가서..
self-signed Certificate로 설정한후.. 다시 start
start이후 패킷이 레코딩 되는것이 보이고..
인증서 정보를 봤을때 발급자가 Gatling으로 뜨면 성공...!
'Today I learned' 카테고리의 다른 글
2020 11 11 (0) | 2020.11.11 |
---|---|
2020 11 09 (0) | 2020.11.09 |
2020 11 05 (0) | 2020.11.05 |
2020 11 03 (0) | 2020.11.03 |
2020 11 01 (0) | 2020.11.01 |
댓글