JMeter 에서 BeanShell 사용하기 회사에서만들기

JMeter 상에서 복잡한 변수(입력값을 암호화 해서 Base64로 인코딩 한 값)를 사용하기 위해서 어떤 방법을 써야할까
고민하다가 JMeter 내부적으로 BeanShell 을 지원하는걸보고 이걸로 삽질 해보기로 함

사용버전 : JMeter-2.3.4 (download link)

BeanShell 을 사용하기 위해서는 사용할 스크립트를 로드하고 호출해야 하는데 
JMeter 프로그램 시작시에 로드해서 사용하는 방법과 런타임에 스크립트 로드하고 함수 호출하는 방법이 있는 것 같음

나는 JMeter 프로그램 시작시에 로드해서 사용하는 방법 쓰기로 함

시작시에 로드하기 위해서 ${jmeter.root}/bin/jmeter.properties 파일에서 

#beanshell.function.init=BeanShellFunction.bshrc 

부분 주석 풀어줌

${jmeter.root}/bin/BeanShellFunction.bshrc 파일에 샘플 스크립트 내용이 들어있는데 
그냥 소심하게 이 파일 수정해서 테스트 해보기로 했음

파일 끝부분에 


식으로 genKey 함수코드 추가(파일앞쪽에 함수에서 사용된 클래스 import 가 필요하면 import 구문도 java와 동일하게 넣어줌)

JMeter 실행후 대충 다음과 같은 항목을 만들어서 Beanshell 이 정상적으로 돌아가는지 확인했다
JMeter 상에서 BeanShell 을 호출하기 위해서 ${__BeanShell(function())} 식으로 사용함
주의할 점은 함수 호출시 파라미터가 여러개일 경우 파라미터를 구분하기 위한 ','(콤마) 앞에 '\'(역슬래시) 를 붙여줘야 함

ex) getKey("aaa" \, "bbb" \, "ccc") 


위에서 정의한 hashedKey 값을 파라미터로 넘겨줌

 test  파라미터로 BeanShell 실행 결과값이 들어간 것을 볼 수 있다

덧글

댓글 입력 영역