27. JUnit 샘플러 튜토리얼 ¶
이 튜토리얼은 JMeter용 새로운 JUnit 샘플러의 기본 디자인, 기능 및 사용법을 설명하려고 시도합니다. 샘플러는 JMeter의 버전 2.1.2 릴리스에서 도입되었습니다. 이전 릴리스에는 샘플러가 없습니다.
27.1 디자인 ¶
현재 구현은 oneTimeSetUp 및 oneTimeTearDown 과 같은 표준 JUnit 규칙 및 확장을 지원합니다 . 요청 시 다른 기능을 추가할 수 있습니다. 샘플러는 몇 가지 차이점이 있지만 JavaSampler처럼 작동합니다.
- JMeter의 테스트 인터페이스를 사용하는 대신 JUnit의 TestCase 클래스를 확장하는 클래스에 대해 jar 파일을 스캔합니다. 이것은 모든 클래스 또는 하위 클래스를 의미합니다.
- JUnit 테스트 jar 파일은 jmeter/lib 대신 jmeter /lib/junit 에 복사됩니다.
- JUnit 샘플러는 구성에 이름/값 쌍을 사용하지 않습니다. 샘플러는
setUp 및 tearDown 이 테스트를 올바르게 구성할 것이라고 가정합니다.
참고: JMeter에서 사용할 수 있도록 setUp 및 tearDown 메서드는 public 으로 선언해야 합니다 .
- 샘플러는 테스트 메서드에 대해서만 경과 시간을 측정하며 setUp 및 tearDown 은 포함하지 않습니다 .
- 테스트 메소드가 호출될 때마다 JMeter는 결과를 리스너에 전달합니다.
- oneTimeSetUp 및 oneTimeTearDown 에 대한 지원은 메서드로 수행됩니다. JMeter는 다중 스레드이므로 maven과 동일한 방식으로 oneTimeSetUp / oneTimeTearDown 을 호출할 수 없습니다.
- 샘플러는 예기치 않은 예외를 오류로 보고합니다.
27.2 기능 ¶
다음은 기능에 대한 설명입니다.
- 이름
- 샘플의 이름. 이것은 모든 JMeter 샘플러와 동일합니다.
- 패키지 필터
- 패키지 이름으로 클래스를 필터링하는 방법을 제공합니다.
- 클래스 이름
- 테스트할 클래스의 이름. 샘플러는 JUnit의 TestCase 를 확장하는 클래스에 대해 jmeter /lib/ext 및 jmeter/lib/junit 에 있는 jar 파일을 스캔합니다 .
- 생성자 문자열
- 테스트 클래스의 문자열 생성자에 전달할 문자열입니다.
- 시험 방법
- 샘플러에서 테스트할 메서드의 이름입니다.
- 성공 메시지
- 성공의 의미를 나타내는 설명 메시지.
- 성공 코드
- 테스트가 성공했음을 나타내는 고유 코드입니다.
- 실패 메시지
- 실패의 의미를 나타내는 설명 메시지.
- 실패 코드
- 테스트 실패를 나타내는 고유 코드
- 에러 메시지
- 오류에 대한 설명
- 에러 코드
- 오류에 대한 일부 코드. 고유할 필요 없음
- setUp 및 tearDown 을 호출하지 마십시오 .
- setUp 및 tearDown 을 호출하지 않도록 샘플러를 설정합니다 . 기본적으로 setUp 및
tearDown 이 호출되어야 합니다. 이러한 메서드를 호출하지 않으면 테스트에 영향을 미치고 부정확해질 수 있습니다. 이 옵션은 주의해서 사용해야 합니다.
선택한 방법이 oneTimeSetUp 또는 oneTimeTearDown 인 경우 이 옵션을 선택해야 합니다.
- 어설션 오류 추가
- 기본적으로 샘플러는 어설션 실패를 실패 메시지에 추가하지 않습니다. 결과 트리에서 메시지를 보려면 옵션을 선택하십시오.
- 런타임 예외 추가
- 기본적으로 샘플러는 오류 메시지에 예외를 추가하지 않습니다. 스택 추적을 보려면 옵션을 확인하십시오.
샘플러의 현재 구현은 먼저 문자열 생성자를 사용하여 인스턴스를 생성하려고 시도합니다. 테스트 클래스가 문자열 생성자를 선언하지 않으면 샘플러는 빈 생성자를 찾습니다. 아래 예:
공개 클래스 myTestCase { 공개 myTestCase() {} }문자열 생성자:
공개 클래스 myTestCase { 공개 myTestCase(문자열 텍스트) { 슈퍼(텍스트); } }
기본적으로 JMeter는 성공/실패 코드 및 메시지에 대한 일부 기본값을 제공합니다. 사용자는 고유한 성공 및 실패 코드 세트를 정의하고 모든 테스트에서 균일하게 사용해야 합니다.
27.3 사용법 ¶
다음은 간단한 단계별 설명입니다.
- JUnit 테스트를 작성하고 클래스를 jar
- jar 파일을 복사하여 jmeter/lib/junit 디렉토리 에 붙여넣습니다.
- JMeter 시작
- 테스트 계획 선택
- 마우스 오른쪽 버튼으로 클릭
- 스레드 그룹 선택
- 을 마우스 오른쪽 버튼으로 클릭
- 이름에 내 단위 테스트 입력
- JUnit 테스트 패키지 입력
- 테스트할 클래스 선택
- 테스트할 방법 선택
- 성공 메시지에 테스트 성공 입력
- 성공 코드에 1000 입력
- 실패 메시지에서 테스트 입력 실패
- 실패 코드에 0001 입력
- 스레드 그룹 선택
- 를 마우스 오른쪽 버튼으로 클릭
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는 다중 스레드를 실행하기 때문에 특정 사항을 염두에 두는 것이 중요합니다.
- 스레드로부터 안전하도록 setUp 및 tearDown 메소드를 작성하십시오 . 이것은 일반적으로 정적 멤버를 사용하지 않는 것을 의미합니다.
- 테스트 방법을 작업의 긴 시퀀스가 아닌 개별 작업 단위로 만드십시오. 테스트 방법을 개별 작업으로 유지하면 테스트 방법을 결합하여 새 테스트 계획을 만드는 것이 더 쉬워집니다.
- 테스트 방법이 서로 종속되도록 하지 마십시오. JMeter는 테스트 메소드의 임의 순서를 허용하므로 런타임 동작은 기본 JUnit 동작과 다릅니다.
- 테스트 방법을 구성할 수 있는 경우 속성이 저장되는 위치에 주의하십시오. Jar 파일에서 속성을 읽는 것이 좋습니다.
- 각 샘플러는 테스트 클래스의 인스턴스를 생성하므로 설정이 oneTimeSetUp 및 oneTimeTearDown 에서 발생하도록 테스트를 작성합니다 .
- 클래스를 선택했는데 메소드가 표시되지 않으면 샘플러가 테스트 클래스의 인스턴스를 생성하는 데 문제가 있음을 의미합니다. 이것을 디버그하는 가장 좋은 방법은 일부 System.out 을 클래스 생성자에 추가하고 무슨 일이 일어나는지 확인하는 것입니다.