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
    }
}

 

읽어주셔서 감사합니다.

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기