jmeter processors controllers
JMeter (Part-III)의 전 처리기 및 컨트롤러 개요 :
=> 여기에서 무료 JMeter 튜토리얼의 포괄적 인 시리즈를 따르십시오.
이 기사는 JMeter에서 전 처리기, 후 처리기 및 컨트롤러를 사용하는 방법을 사용자에게 안내합니다. 컨트롤러는 테스트 시나리오를 만들 때 매우 유용합니다.
응답 시간 및 기타 성능 요인을 모니터링하기 위해 서버로 전송되는 요청의 고유 순서를 구성하려는 여러 시나리오를 테스트 할 수 있습니다.
학습 내용 :
전 처리기
샘플러가 실행되기 전에 실행되는 요소입니다. 요청을 변경하려는 샘플러와 함께 Pre-Processor를 연결할 수 있습니다.
가장 간단한 경우는이 요청이 정의 된 시간 동안 만 실행되도록 HTTP 요청과 함께 'Sample Timeout'전처리기를 추가하는 것입니다. 또한이 수정은 상위 샘플러에 대해서만 수행됩니다.
다음은 JMeter에서 사용되는 일부 전 처리기입니다.
- 빈 쉘 전 처리기
- HTML 링크 파서
- HTTP URL 재 작성
- JDBC 전 처리기
- 샘플 시간 초과
- 사용자 매개 변수
가장 일반적으로 사용되는 것은 아래에 예제와 함께 설명되어 있습니다. 프로젝트에 모두 필요하거나 필요하지 않을 수 있습니다. 프로젝트와 관련된 시나리오를 식별하고 실시간 성능 시나리오를 다루는 데 도움이되는 시나리오를 구현하십시오.
사용자 매개 변수
사용자 매개 변수는 샘플러에서 사용되기 전에 변수 값을 정의하는 데 사용됩니다. JMeter가이 Pre-Processor 요소를 실행할 때 동일한 스레드 그룹 내의 모든 샘플러에서 참조 할 수있는 변수에 값을 저장합니다.
'사용자 매개 변수'의 사용자 수보다 스레드가 더 많은 경우 추가 스레드보다 값을 다시 반복합니다.
예를 들어 스레드 그룹에는 5 명의 사용자가 있지만 전처리기에는 3 명만 있고일그리고 5일스레드는 param1 과 param2 .
샘플 시간 초과
이 전처리 기는 요청의 시간 초과 기간을 정의하는 데 사용됩니다.
예를 들면 샘플 시간을 400 밀리 초로 설정 한 경우 시간이> 400 인 모든 요청은 실패한 응답을 받게됩니다. 아래 스크린 샷을 참조하세요.
컨트롤러
컨트롤러는 실시간 JMeter 테스트 계획을 구축하는 데 매우 중요합니다. 요청이 서버로 전송되는 순서를 정의합니다.
예를 들면 한 번 로그인하고 검색하려는 웹 애플리케이션을 테스트하려면 항목 선택이 모든 반복에 대해 하나씩 이동하도록 요청합니다. 컨트롤러는 테스트중인 서버에서 진행되는 요청의 흐름을 관리하여이를 가능하게합니다.
다음은 JMeter에서 가장 일반적으로 사용되는 컨트롤러입니다.
- 간단한 컨트롤러
- 모듈 컨트롤러
- 한 번만 컨트롤러
- 인터리브 컨트롤러
- 루프 컨트롤러
- 컨트롤러
- 각 컨트롤러에 대해
- 녹음 컨트롤러 등
간단한 컨트롤러
단순 컨트롤러는 특정 기능을 수행하지 않습니다. 테스트 계획을 쉽게 이해할 수 있도록 유사한 요청을 보관할 수있는 일종의 컨테이너입니다.
루프 컨트롤러
특정 요청이 스레드 그룹에 지정된 것보다 더 많은 반복을 실행하도록하려면 루프 컨트롤러 아래에 놓고 컨트롤러 설정에 루프 수를 입력 할 수 있습니다.
예: 사용자가 1 명이고 반복이 3 개인 스레드 그룹이있는 경우이 그룹의 모든 요청이 3 회 실행됩니다. 이제 루프 개수가 2 인 루프 컨트롤러 아래에 두 개의 HTTP 샘플러가있는 경우이 두 샘플러는 모두 1 * 3 * 2 = 6 번 실행됩니다.
자세한 설명은 아래 스크린 샷을 참조하십시오.
한 번만 컨트롤러
이 컨트롤러는 스레드 그룹에 여러 스레드가 있더라도 특정 요청을 한 번만 실행하려는 경우에 사용됩니다. 고려할 수있는 가장 간단한 예는 '웹 사이트 홈 페이지 가져 오기'또는 '웹 응용 프로그램에 로그인'입니다. 실시간 시나리오는 한 번만 발생하고 검색 또는 편집 / 삭제와 같은 기타 요청이 여러 번 발생하도록합니다.
한번만 수행 할 요청은 Once Only Controller 아래에 놓을 수 있습니다. 참조를 위해 아래 스크린 샷을 참조하십시오. 한 번만 컨트롤러 설정은 상위 스레드 그룹 설정을 무시합니다.
녹음 컨트롤러
Simple Controller와 마찬가지로 Recording Controller는 서버로 전송되는 요청 시퀀스를 수정하지 않습니다. HTTP (S) 스크립트 레코더와 함께 사용됩니다. 이 Non-Test 요소로 기록 된 모든 요청은 기록 컨트롤러 아래에 저장됩니다.
서버에 대한 기록 된 요청을 저장하려면 대상 컨트롤러를 지정해야합니다.
테스터가 요청 URL 및 매개 변수에 대한 정보를 가지고 있지 않은 경우 레코딩 컨트롤러 및 HTTP (s) 스크립트 레코더가 나타납니다. 서버에 전달되는 모든 요청을 간단히 기록하고 캡처 할 수 있습니다. 이는 모바일 및 웹 프로젝트 모두에서 작동합니다.
처리량 컨트롤러
이 컨트롤러는 실행 흐름을 제어하는데도 사용됩니다. 아래 클리핑에서 볼 수 있듯이이 컨트롤러는 두 부분으로 더 나뉩니다.
실행 률 - 이 선택은 Jmeter가이 컨트롤러 아래에있는 샘플러에 대한 총 반복의 특정 비율 만 실행하도록합니다. '사용자 별'확인란을 선택하여 사용자 수준에서이를 제어 할 수도 있습니다.
예를 들어 스레드 그룹은 10 명의 사용자를 포함하도록 구성되고 루프 수는 5입니다. 따라서 총 반복 횟수는 50입니다. 실행 률이 50 %로 설정된 경우 처리량 컨트롤러 아래의 모든 샘플러는 25 회 반복 만 수행합니다 (50의 50 %).
총 실행 – 이를 통해 사용자는이 컨트롤러에 포함 된 샘플러에 대한 반복 횟수를 직접 지정할 수 있습니다.
인터리브 컨트롤러
이 컨트롤러를 사용하면 n 개의 방법으로 시퀀스를 수정하여 성능 테스트 범위를 늘릴 수 있으므로 응용 프로그램이 다른 시퀀스로 요청에 도달 할 때 서버의 부하를 테스트 할 수 있습니다. Interleave Controller는 그 아래에있는 샘플러로 대체 선택을합니다.
이 블록 아래에 Simple Controller와 같은 다른 컨트롤러가있는 경우 인터리브 컨트롤러는 각 반복에 대해 컨테이너에서 각각 하나의 샘플러를 선택할 수있는 권한을 부여합니다. 더 자세히 설명하려면 아래 테스트 계획을 고려하십시오.
따라서 Jmeter는 각 반복마다 컨트롤러간에 번갈아 반복합니다. 따라서 순서는 아래에 언급됩니다
요청 1-> 요청 3-> 요청 5 – 요청 2-> 요청 4-> 요청 6
스레드 수 = 2 및 루프 수 = 2 인 아래의 JMeter 결과를 참조하십시오.
위의 예에서 Jmeter는 다음 루프 / 반복과 인터리빙됩니다. Interleave Controller에는 JMeter가 모든 새 스레드와 함께 대체 요청을 보내도록 할 수있는 설정이 있습니다.
아래 결과를 참조하십시오. 이는 동일한 시스템에서 요청의 순서가 다른 서버에 순차적 또는 동시로드를 가하려는 시나리오에서 유용합니다.
랜덤 컨트롤러
Interleave 컨트롤러와 거의 비슷하게 작동하지만 샘플러를 순서대로 선택하지는 않습니다. 하위 컨트롤러와 그 안에있는 샘플러를 무작위로 선택합니다.
컨트롤러
Controller가 유사한 방식으로 작동하는 경우 IF 표현식은 모든 프로그래밍 언어에서 처리됩니다. 조건이 먼저 검증 된 다음 조건이 TRUE이면이 컨테이너 아래의 구성 요소가 실행되고, 그렇지 않으면 IF 컨트롤러 외부의 요소가 실행됩니다.
예 : Interleave Controller와 관련된 이전 예제 중 하나를 계속 진행하면서 이제 두 Interleave 컨트롤러 중 하나가 IF 컨트롤러 및 조건 '$ (COUNT)'아래에 유지되었습니다.<10 is added as a condition. Variable COUNT is defined in config element “User Defined Variables” and is given a value equal to 11. Configuration is described below
COUNT 변수에 값 정의 및 할당.
조건 정의 컨트롤러 설정. Jmeter는이 조건의 유효성을 검사하고 참이면이 컨테이너에서 블록을 실행합니다.
아래 테스트 계획에서 볼 수 있듯이 IF Condition이 다음과 같이 평가되는 경우 Request3, Request4 및 Request5 만 실행됩니다. 그릇된 .
동안 컨트롤러
이 컨트롤러는 조건이 거짓이 될 때까지 구성 요소를 실행합니다.
예를 들면 조건이 있다고 말하십시오 while ($ (count)<10), it will execute the child elements until the condition is false. To test this, there should be a counter which gets increment or decrement on each iteration and then condition is evaluated. Config Element “Counter” can be used to serve this purpose.
'카운터'구성 요소를 1부터 시작하고 각 반복에서 증가하도록 구성합니다. 자세한 내용은 아래를 참조하십시오.
비디오 자습서에서 나머지 컨트롤러를 다룰 것입니다.
실시간 예
테스트 팀이 테스트중인 서버에 도달하는 모든 요청의 URL과 매개 변수를 알지 못하는 시나리오를 고려해 보겠습니다. 이제 서버를로드 테스트하려면 요청을 기록한 다음로드를 순차적으로 또는 동시에 조정하고 성능 테스트를 수행하기위한 시나리오를 만들어야합니다.
단계
C ++와 자바의 차이점
- 기록 컨트롤러 용 Jmeter에 템플릿 추가
- 브라우저에서 프록시를 설정하고 HTTP (s) 스크립트 레코더에서 동일한 포트를 선택하십시오.
- 요청 기록
- 테스트 계획 수정 및 부하 증가
- 그에 따라 거래 그룹화
- 다양한 요청 조합 시도
JMeter의 녹음 템플릿
JMeter에는 미리 정의 된 템플릿도 있습니다. 파일 메뉴에서 '템플릿'옵션을 선택합니다. 템플릿을 선택한 후 열리는 창에서 '녹음'옵션을 선택하고 만들기를 클릭합니다.
이 레코딩 템플릿을 선택하자마자 테스트 계획에 이미 추가 된 일부 구성 요소가 표시됩니다.
- 작업대 아래의 HTTP (s) 스크립트 레코더
- HTTP 요청 기본값 및 HTTP 쿠키 관리자
- 스레드 그룹 아래의 기록 컨트롤러.
브라우저에서 프록시 설정을 수행하여 JMeter 프록시 서버와 통신하거나 CHROME Extension Blazemeter를 사용하여 요청을 기록한 다음 내보낼 수 있습니다. jmx 파일을 Jmeter로. 스크립트를 기록한 다음 JMeter로 내보내는 다른 확장 기능이 많이 있습니다. BADBOY 도구는 웹 및 모바일 히트 기록을 위해 Jmeter 와도 잘 작동합니다.
클릭. 기록 된 요청을 Jmeter로 내보내는 jmx 옵션. 이제 Jmeter에서 jmx 파일을 열고 각 요청과 관련된 요청 및 매개 변수를 확인합니다.
결론
지금 쯤이면 여러분 모두 JMeter의 기본 로직,로드 시뮬레이션 방법, 다양한 유형의 샘플러로 플레이하는 방법, 컨트롤러를 사용하고 변수를 사용하여 실행 흐름을 제어하는 방법에 대해 잘 알고 있어야한다고 가정합니다. 반복에서 루프를 실행하는 함수. 이것은 JMeter에 대한 튜토리얼 시리즈의 끝이 아닙니다.
많은 비디오 튜토리얼이 있습니다 Jmeter의 다양한 시나리오와 각 JMeter 구성 요소를 최상의 방식으로 활용하는 방법에 대해 더 많은 테스트를 수행하는 테스터를 안내합니다.
=> 여기에서 JMeter 비디오 자습서의 전체 목록을 확인하십시오.
귀하의 의견이나 질문을 저희와 공유하십시오.