Front 서버 부하테스트 진행 시 로그인 정보 암호화 처리를 위해 자바스크립트 사용이 필요하였습니다.
구글링 해본 결과.. Jmeter 공식 홈페이지 릴리스노트에서 답을 찾았습니다.
저는 JMeter (5.6.3) 버전 기준으로 테스트 진행하였습니다.
1. JAVA 버전 확인
로컬환경에 설치된 JVM 버전에 따라 아래의 절차대로 환경을 구성하시면 됩니다.
1.1) JAVA 11 이하 환경
- Nashorn 엔진 및 별도 엔진 사용 가능
- Java11 버전 사용 시 Nashorn 엔진 사용을 지양하므로 JDK 버전 별로 오류가 발생할 수 있음
- Zulu OpenJDK 11.0.24 테스트 확인
@Deprecated(since="11", forRemoval=true)
public final class NashornScriptEngineFactory implements ScriptEngineFactory {}
1.2) JAVA 15 이상 환경
- Java 15부터 Nashorn 엔진 제거되므로 별도 엔진 설치 필요
- Amazon Corretto 17 JDK 테스트 확인
- 설치방법
- JMeter 에서 제공하는 Mozilla Rhino 엔진 다운로드
rhino-engine-1.7.14.jar
- 다운받은 엔진을 $JMETER_HOME/lib/ext 에 복사
[case1] $JMETER_HOME = /Users/user/apache-jmeter-5.6.3
복사경로 = /Users/user/apache-jmeter-5.6.3/lib/ext
[case2] $JMETER_HOME = /opt/homebrew/bin/jmeter
복사경로 = /opt/homebrew/bin/jmeter /lib/ext
2. 테스트
- JSR-223 PostProcessor에서 인식되는 JavaScript 엔진 확인
- 스크립트 예시를 활용하여 엔진 호출 테스트
ScriptEngine engine = new ScriptEngineManager().getEngineByName("js");
engine.eval(new FileReader("test.js"));
3. 트러블 슈팅
3.1) 실리콘 MAC (M1Pro) JMeter 호환성 이슈
- JDK 설치 시 주의사항으로는 openjdk 공식 빌드 버전 사용 권장 ⭐️
https://github.com/oracle/visualvm/issues/528 - Homebrew OpenJDK 오류 발생될 수 있으므로 최신버전 수동 설치 권장
java[22970:244037] *** WARNING: References to Carbon menus are disallowed with AppKit menu system on macOS 14 and newer. Use instances of NSMenu and NSMenuItem directly instead. See https://developer.apple.com/documentation/macos-release-notes/appkit-release-notes-for-macos-14#Menus
Uncaught Exception java.lang.ExceptionInInitializerError in thread Thread[#36,AWT-EventQueue-0,6,main]. See log file for details.
3.2) homebrew JMeter 설치 이슈
- homebrew JMeter 최신 버전이 아닐 수 있음
- Jmeter 공식 홈페이지에서 수동 설치 권장
apache-jmeter-5.6.3.tgz
ERROR o.a.j.JMeter: Uncaught exception in thread Thread[#36,AWT-EventQueue-0,6,main] java.lang.ExceptionInInitializerError: null
at org.apache.jmeter.control.gui.TestPlanGui.createPopupMenu(TestPlanGui.java:109) ~
3.3) homebrew JMeter와 수동설치를 같이 진행한 경우
- JMeter 실행파일을 절대경로로 실행하지 않으면 homebrew JMeter 환경변수 인식
- 수동설치 디렉토리 접근하여 절대경로로 실행
user@MacBook-Pro bin % pwd
/Users/user/apache-jmeter-5.6.3/bin
user@MacBook-Pro bin % ./jmeter
읽어주셔서 감사합니다.
반응형
최근댓글