27. JUnit 샘플러 튜토리얼

이 튜토리얼은 JMeter용 새로운 JUnit 샘플러의 기본 디자인, 기능 및 사용법을 설명하려고 시도합니다. 샘플러는 JMeter의 버전 2.1.2 릴리스에서 도입되었습니다. 이전 릴리스에는 샘플러가 없습니다.

27.1 디자인

현재 구현은 oneTimeSetUponeTimeTearDown 과 같은 표준 JUnit 규칙 및 확장을 지원합니다 . 요청 시 다른 기능을 추가할 수 있습니다. 샘플러는 몇 가지 차이점이 있지만 JavaSampler처럼 작동합니다.

  • JMeter의 테스트 인터페이스를 사용하는 대신 JUnit의 TestCase 클래스를 확장하는 클래스에 대해 jar 파일을 스캔합니다. 이것은 모든 클래스 또는 하위 클래스를 의미합니다.
  • JUnit 테스트 jar 파일은 jmeter/lib 대신 jmeter /lib/junit 에 복사됩니다.
  • JUnit 샘플러는 구성에 이름/값 쌍을 사용하지 않습니다. 샘플러는 setUptearDown 이 테스트를 올바르게 구성할 것이라고 가정합니다.
    참고: JMeter에서 사용할 수 있도록 setUptearDown 메서드는 public 으로 선언해야 합니다 .
  • 샘플러는 테스트 메서드에 대해서만 경과 시간을 측정하며 setUptearDown 은 포함하지 않습니다 .
  • 테스트 메소드가 호출될 때마다 JMeter는 결과를 리스너에 전달합니다.
  • oneTimeSetUponeTimeTearDown 에 대한 지원은 메서드로 수행됩니다. JMeter는 다중 스레드이므로 maven과 동일한 방식으로 oneTimeSetUp / oneTimeTearDown 을 호출할 수 없습니다.
  • 샘플러는 예기치 않은 예외를 오류로 보고합니다.

27.2 기능

다음은 기능에 대한 설명입니다.

이름
샘플의 이름. 이것은 모든 JMeter 샘플러와 동일합니다.
패키지 필터
패키지 이름으로 클래스를 필터링하는 방법을 제공합니다.
클래스 이름
테스트할 클래스의 이름. 샘플러는 JUnit의 TestCase 를 확장하는 클래스에 대해 jmeter /lib/extjmeter/lib/junit 에 있는 jar 파일을 스캔합니다 .
생성자 문자열
테스트 클래스의 문자열 생성자에 전달할 문자열입니다.
시험 방법
샘플러에서 테스트할 메서드의 이름입니다.
성공 메시지
성공의 의미를 나타내는 설명 메시지.
성공 코드
테스트가 성공했음을 나타내는 고유 코드입니다.
실패 메시지
실패의 의미를 나타내는 설명 메시지.
실패 코드
테스트 실패를 나타내는 고유 코드
에러 메시지
오류에 대한 설명
에러 코드
오류에 대한 일부 코드. 고유할 필요 없음
setUptearDown 을 호출하지 마십시오 .
setUptearDown 을 호출하지 않도록 샘플러를 설정합니다 . 기본적으로 setUptearDown 이 호출되어야 합니다. 이러한 메서드를 호출하지 않으면 테스트에 영향을 미치고 부정확해질 수 있습니다. 이 옵션은 주의해서 사용해야 합니다.
선택한 방법이 oneTimeSetUp 또는 oneTimeTearDown 인 경우 이 옵션을 선택해야 합니다.
어설션 오류 추가
기본적으로 샘플러는 어설션 실패를 실패 메시지에 추가하지 않습니다. 결과 트리에서 메시지를 보려면 옵션을 선택하십시오.
런타임 예외 추가
기본적으로 샘플러는 오류 메시지에 예외를 추가하지 않습니다. 스택 추적을 보려면 옵션을 확인하십시오.
JUnit 요청
JUnit 요청

샘플러의 현재 구현은 먼저 문자열 생성자를 사용하여 인스턴스를 생성하려고 시도합니다. 테스트 클래스가 문자열 생성자를 선언하지 않으면 샘플러는 빈 생성자를 찾습니다. 아래 예:

생성자 예제
빈 생성자:
공개 클래스 myTestCase {
  공개 myTestCase() {}
}
문자열 생성자:
공개 클래스 myTestCase {
  공개 myTestCase(문자열 텍스트) {
    슈퍼(텍스트);
  }
}

기본적으로 JMeter는 성공/실패 코드 및 메시지에 대한 일부 기본값을 제공합니다. 사용자는 고유한 성공 및 실패 코드 세트를 정의하고 모든 테스트에서 균일하게 사용해야 합니다.

27.3 사용법

다음은 간단한 단계별 설명입니다.

  1. JUnit 테스트를 작성하고 클래스를 jar
  2. jar 파일을 복사하여 jmeter/lib/junit 디렉토리 에 붙여넣습니다.
  3. JMeter 시작
  4. 테스트 계획 선택
  5. 추가  →  스레드 그룹을 마우스 오른쪽 버튼으로 클릭
  6. 스레드 그룹 선택
  7. 추가  →  샘플러  →  JUnit 요청 을 마우스 오른쪽 버튼으로 클릭
  8. 이름에 내 단위 테스트 입력
  9. JUnit 테스트 패키지 입력
  10. 테스트할 클래스 선택
  11. 테스트할 방법 선택
  12. 성공 메시지에 테스트 성공 입력
  13. 성공 코드에 1000 입력
  14. 실패 메시지에서 테스트 입력 실패
  15. 실패 코드에 0001 입력
  16. 스레드 그룹 선택
  17. 추가  →  리스너  →  결과 트리 보기 를 마우스 오른쪽 버튼으로 클릭

JUnit 샘플러의 한 가지 이점은 사용자가 다양한 단위 테스트에서 모든 방법을 선택하여 테스트 계획을 만들 수 있다는 것입니다. 이것은 사용자가 다양한 테스트 시나리오를 생성하기 위해 작성해야 하는 코드의 양을 줄여야 합니다. 기본 테스트 방법 세트에서 JMeter의 GUI를 사용하여 다양한 시퀀스와 테스트를 생성할 수 있습니다.

예를 들어:

테스트 계획1

TestCase1.testImport고객
TestCase2.testUpdateRandom고객
TestCase1.testSelect100
TestCase2.testUpdateOrder
TestCase1.testSelect1000

테스트플랜2

TestCase1.testImport고객
TestCase1.testSelect100
TestCase1.testSelect1000
TestCase2.testAdd100고객

27.4 일반 지침

다음은 JMeter와 잘 작동하도록 JUnit 테스트를 작성하기 위한 몇 가지 일반적인 지침입니다. JMeter는 다중 스레드를 실행하기 때문에 특정 사항을 염두에 두는 것이 중요합니다.

  • 스레드로부터 안전하도록 setUptearDown 메소드를 작성하십시오 . 이것은 일반적으로 정적 멤버를 사용하지 않는 것을 의미합니다.
  • 테스트 방법을 작업의 긴 시퀀스가 ​​아닌 개별 작업 단위로 만드십시오. 테스트 방법을 개별 작업으로 유지하면 테스트 방법을 결합하여 새 테스트 계획을 만드는 것이 더 쉬워집니다.
  • 테스트 방법이 서로 종속되도록 하지 마십시오. JMeter는 테스트 메소드의 임의 순서를 허용하므로 런타임 동작은 기본 JUnit 동작과 다릅니다.
  • 테스트 방법을 구성할 수 있는 경우 속성이 저장되는 위치에 주의하십시오. Jar 파일에서 속성을 읽는 것이 좋습니다.
  • 각 샘플러는 테스트 클래스의 인스턴스를 생성하므로 설정이 oneTimeSetUponeTimeTearDown 에서 발생하도록 테스트를 작성합니다 .
  • 클래스를 선택했는데 메소드가 표시되지 않으면 샘플러가 테스트 클래스의 인스턴스를 생성하는 데 문제가 있음을 의미합니다. 이것을 디버그하는 가장 좋은 방법은 일부 System.out 을 클래스 생성자에 추가하고 무슨 일이 일어나는지 확인하는 것입니다.
Go to top