How to use HTTP(S) Test Script Recorder in JMeter in chrome browser using macOS
두 가지 방법으로 jmeter로 https script를 recording합니다
- jmeter에서 주는 가이드로 test script recorder 만들기
- proxyman을 이용해 test script recorder 만들기
jmeter에서 주는 가이드로 test script recorder 만들기
test script recorder 생성
여기는 아무거나 입력해도됩니다
잘 생성된것을 확인했습니다
Start 클릭해줍니다
이렇게 RootCA가 jmeter bin 디렉토리에 생성되었으니 browser에 RootCA를 설치하랍니다
그러면 이렇게 뜹니다 jmeter에서 8888포트로 프로세스를 올렸습니다
포트가 정상적으로 열렸는지 확인합니다
lsof -i:8888
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 17579 nohys 177u IPv6 0xdb7954184aaafad 0t0 TCP *:ddi-tcp-1 (LISTEN)
자 이제 다시 꺼줍니다 jmeter proxy 켜는 법을 알았으니 JmeterRootCA를 브라우저에 추가한후 다시 하겠습니다
브라우저에서 chrome://settings, arc://settings 입력한후
인증서 검색해서 설정합니다
키체인으로 접근하세요
jmeter 설치위치 학인
brew info jmeter
==> jmeter: stable 5.6.3 (bottled)
Load testing and performance measurement application
https://jmeter.apache.org/
Installed
/opt/homebrew/Cellar/jmeter/5.6.3 (2,658 files, 213.5MB) *
Poured from bottle using the formulae.brew.sh API on 2024-01-08 at 13:56:16
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/j/jmeter.rb
License: Apache-2.0
==> Dependencies
Required: openjdk@21 ✘
==> Analytics
install: 2,407 (30 days), 8,380 (90 days), 43,245 (365 days)
install-on-request: 2,405 (30 days), 8,377 (90 days), 43,234 (365 days)
build-error: 0 (30 days)
/opt/homebrew/Cellar/jmeter/5.6.3/libexec/bin
위 경로에서 ApacheJMeterTemporaryRootCA.crt를 찾습니다
키체인을 인증서에 복붙해주고 항상 신뢰해줍니다
브라우저에서 chrome://settings, arc://settings 입력한후
해서 proxy 또는 프록시를 검색해서 프록시 설정 열기로 갑니다
이제 여기서 jmeter 로 돌아가서 recording start합니다
그러면 8888포트로 jmeter 프록시 프로세스가 올라갔죠
그러면 이제 브라우저 프록시를 다음으로 설저해줍니다
이제 recording 하시면 됩니다
proxyman을 이용해 test script recorder 만들기
이 방법이 훨씬 간단합니다
인증서 부분을 안써도 되기 때문에 한 단계가 빠지는데 그 한 단계가 rootCA라서 훨씬 간단합니다
문제는 recording할때 proxyman 포함되기 때문에 proxyman도 같이 실행해야합니다
그래서 결과적으로는 JmeterTemporaryRootCA.crt를 통해 https 통신 모두를 프록시해야합니다
JmeterTemporaryRootCA.crt 를 이용해서 사용할때는 아래와 같은 구조로 통신합니다
Proxyman을 끼면
이 구조이고 Proxyman은 ProxymanCA 를 install해서 쓰고 있기 때문에 https 요청을 다 읽을 수 있습니다
jmeter로 전달하면 됩니다
우선 http recording하려는 도메인의 ssl proxy list에 추가해주세요
추가 된것을 확인합니다
Https Test Script Recorder에 Test Plan Creation에 Target group > Recording Controller를 해주시면
하위에 아래와같이 Recording Controller > Transaction Controller > Http Request가 담깁니다
start 버튼을 누르신후 Recorder: Transactions Controller가 올라간 후에 external proxy를 해주시고 순서 지켜서 실행해야합니다
jmeter proxy가 올바르게 올라가지 않았는데 external proxy설정해도 recording이 정상적으로 안됩니다
이제 proxyman external proxy로 트래픽을 jmeter proxy로 전달합니다
Proxyman > Tools
https만 선택해주세요
Done 눌러주시고
브라우저 탭을 많이 띄워두시면 많은 요청이 전달되니 Inclusive List에 도메인을 추가해주세요
jmeter에서도 많은 요청을 recording할때 loading이 많이 발생할겁니다
java.lang.OutOfMemoryError 이슈
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread
vuser마다 메모리를 잡기 때문에 많은수의 vuser 생성시 java outofMemory가 발생합니다
cd /opt/homebrew/Cellar/jmeter/5.6.3/libexec/bin
java -Xms3G -Xmx6G -jar ApacheJMeter.jar
minimum heap size를 넉넉하게 잡아주세요
참고: https://arc.net/l/quote/oubcrnsh
'테스트 > 부하테스트' 카테고리의 다른 글
ngrinder docker-compose 로 생성후 로컬테스트 (1) | 2024.06.13 |
---|