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
}
}
읽어주셔서 감사합니다.
반응형
최근댓글