
JMeter 컨텍스트와 연관된 JMeterThread 클래스 구조에 대해 설명드리겠습니다.
1. JMeterThread 클래스란?
- 스레드를 생성하고 관리
- 각 스레드가 수행해야 하는 테스트 시나리오 실행
2. JMeterThread 흐름
2.1) 스레드 시작
- ThreadGroup 클래스 makeMathod 메서드에서 JMeterThread 객체 생성 및 초기화
- ThreadGroup, samlper 정보 주입
- ThreadGroup 에서 정의된 변수 주입 - start() 메서드 호출
2.2) 테스트 실행 및 기록
- TheadGroup 에 포함된 샘플러가 순차적으로 실행되고 실행 결과는 Listener 를 통해 기록
- stop 플래그를 체크하여 스레드 중지 가능
2.3) 스레드 종료
- shutdown() 메서드 호출 및 초기화
3. JMeterThread 코드 예시
package org.apache.jmeter.threads; public class JMeterThread { private AbstractThreadGroup threadGroup; private final JMeterVariables threadVars; private boolean running = false; public JMeterThread() { threadVars = new JMeterVariables(); running = true; } @Override public void run() { // Context 정보 없으면 신규 생성 JMeterContext threadContext = JMeterContextService.getContext(); try { //Context 정보 주입 initRun(threadContext); while (running) { Sampler sampler = threadGroupLoopController.next(); // Execute sampler processSampler(sampler) } catch (Exception e) { // Handle exceptions } } public void stopThread() { this.running = false; } private void shutdownTest() { running = false; // Cleanup logic } }
읽어주셔서 감사합니다.
반응형
최근댓글