detail description jmeter components
Jmeter 구성 요소 검토 (2 부) :
=> 이것은 JMeter 교육 시리즈의 일부입니다. 이 시리즈의 모든 자습서 목록은 여기에서 확인하세요. .
여러분 모두가 JMeter 소개 및 설치 지금까지. 시리즈의 다음 시리즈를 계속 진행하면서 모두 JMeter를 설치하고 나란히 연습하는 것이 좋습니다.
이 튜토리얼에서 독자는 JMeter의 모든 구성 요소 및 테스트 계획에서 사용하는 방법 AUT (Application Under Test)를 테스트하기 위해 가능한 모든 성능 테스트 시나리오를 포함합니다.
Jmeter의 요소는 이전 기사에 나열되었습니다.
학습 내용 :
JMeter의 구성 요소
참고 용으로 다시 적어두기 :
- 테스트 계획
- ThreadGroup
- 샘플러
- 청취자
- WorkBench
- 어설 션
- 구성 요소
- 로직 컨트롤러
- 시간제 노동자
스레드 그룹, 샘플러, 리스너 및 구성 요소와 같은 Jmeter의 모든 주요 구성 요소는 기사 뒷부분에서 자세히 설명합니다.
각 구성 요소와 JMeter의 특정 모듈과의 관계를 이해하려면 아래의 흐름도를 참조하십시오.
이제 Jmeter의 각 구성 요소를 사용 사례와 함께 다루기 시작하여 작동 방식과 테스터가 테스트에서이를 구현할 수있는 방법을 알 수 있습니다. 이 기사에서 모든 샘플러, 청취자를 다루지는 않을 것입니다. 우리는 가장 많이 사용되는 것들에 대해 작업 할 것이며 실시간 테스트 계획을 만들 때 다음 기사에서 휴식을 취할 것입니다.
테스트 계획
Software Testing의 간단한 테스트 계획이 스크립트를 실행하는 모든 단계로 구성되는 것처럼 JMeter의 테스트 계획은 동일한 목적을 갖습니다. 테스트 계획에 포함 된 모든 것은 위에서 아래로 또는 테스트 계획에 정의 된 순서에 따라 순서대로 실행됩니다.
테스트 계획은 Just ThreadGroup, Sampler 및 Listener를 사용하여 가능한 한 간단 할 수 있으며 구성 요소, 전 처리기 또는 컨트롤러와 같은 요소를 추가하기 시작하자마자 더 복잡해지기 시작합니다.
우리 모두가 알고 있듯이 JMeter는 실제 사용자가 서버에 요청을 보내는 것처럼 테스트중인 서버에 부딪히는 가상 사용자 또는 스레드를 생성하여 성능을 측정합니다. 따라서 모든 테스트 계획에는 JMeter 용어로 부르는 가상 사용자 또는 스레드 그룹이 있어야합니다.
테스트 계획에 대한 중요 사항 :
- 실행하기 전에 테스트 계획을 저장해야합니다.
- Jmeter 파일 또는 테스트 계획은 형식으로 저장됩니다. JMX 확장 파일
- 테스트 계획의 일부를 다른 선택으로 저장할 수도 있습니다. 예를 들면 HTTP Request Sampler를 Listener와 함께 저장하려면 다른 테스트 시나리오에서도 사용할 수 있도록 Test Fragment로 저장할 수 있습니다.
- WorkBench의 요소는 테스트 계획에 저장되지 않습니다.
스레드 그룹
스레드 그룹은 동시에 또는 미리 정의 된 순서로 테스트중인 서버에 연결되는 사용자 그룹입니다. 테스트 계획을 마우스 오른쪽 버튼으로 클릭하여 스레드 그룹을 테스트 계획에 추가 할 수 있습니다. JMeter는 모두 '오른쪽 클릭 항목'이며 오른쪽 클릭으로 모든 옵션을 볼 수 있습니다.
스레드 그룹 이름을 자신의 이름으로 바꿀 수 있습니다. 이름을 변경하고 테스트 계획 창 외부의 아무 곳이나 클릭하면 이름이 변경되는 것을 볼 수 있습니다.
스레드 그룹을 추가하려면 아래 스크린 샷을 참조하십시오.
(노트: 이미지를 클릭하시면 크게보실 수 있습니다.)
테스트 조건에 따라 스레드 그룹을 구성하는 것이 매우 중요합니다.
예를 들면 100 명의 사용자가 동시에 접속했을 때 웹 서버가 어떻게 동작하는지 테스트하고 싶다면 아래와 같이 Thread Group을 설정할 수 있습니다.
기본적으로 실제 부하 또는 가상 사용자를 생성하기 위해 구성해야하는 세 가지 주요 매개 변수가 있습니다.
- 스레드 수 (사용자) – 가상 사용자 수를 정의합니다. 한 번에 엄청난 양을 생성하면 많은 스레드를 소비하여 궁극적으로 높은 CPU 사용률로 이어질 수 있으므로 테스트 목적으로 제한된 양의로드 만 생성해야합니다.
- 램프 업 기간 –이 필드는 부하 생성을 제어하는 데 매우 중요합니다. 램프 업 기간은 총 부하가 생성되는 시간을 정의했습니다.
예 1:
- 즉, 테스트가 실행 되 자마자 10 명의 사용자 모두가 동시에 서버에 접속하게됩니다.
예 2:
- 위의 스크린 샷에서“Scheduler”체크 박스를 확인 하셨을 것입니다. 나중에 특정 시간에 테스트를 실행하려는 경우 아래 스크린 샷에서도 볼 수 있듯이 타이밍을 설정할 수 있습니다. 1 초마다 새로운 사용자가 서버에 접속한다는 의미입니다. 로드는 동시에 발생하지 않지만 증분됩니다. 10까지일둘째, 모든 사용자가 요청에 도달했을 것입니다.
- 루프 수 – Thread Group이 실행되는 횟수를 정의합니다. Forever 확인란을 선택하면 수동으로 중지하지 않는 한 테스트가 영구적으로 실행됩니다. 이는 '서버가 몇 분 동안 지속적인로드로 인해 충돌하지 않는 경우'와 같은 테스트에 사용할 수 있습니다.
샘플러
그렇다면 Jmeter는 어떤 유형의 요청이 서버로 전송되었는지 어떻게 알 수 있습니까 ???
- 샘플러를 통해서입니다. 샘플러는 Jmeter에게 어떤 유형의 요청이 어떤 서버로 이동해야하는지 미리 정의 된 매개 변수를 사용하는지 여부를 알 수 있으므로 테스트 계획에 추가해야합니다. 요청은 HTTP, HTTP (s), FTP, TCP, SMTP, SOAP 등일 수 있습니다.
스레드 그룹은 샘플러를 사용하여 테스트중인 서버 URL에 요청을 보내야하기 때문에 샘플러는 테스트 계획 바로 아래가 아닌 스레드 그룹에만 추가 할 수 있습니다. 샘플러는 경로로 추가 할 수 있습니다. 스레드 그룹-> 샘플러-> HTTP 요청.
HTTP 요청
이는 서버로 전송되는 가장 일반적인 요청입니다. 말하다, 예를 들면 100 명의 사용자가 https://www.google.com 동시에이 작업은 아래 스크린 샷에 설명 된대로 수행 할 수 있습니다.
- 경로는 기본 웹 사이트 내부의 탐색입니다. 예를 들어 http://www.google.com/gmail을 누르고 싶다면 경로에 '/ Gmail'을 설정하면 나머지는 그대로 유지됩니다.
- 서버 이름에 'www'를 입력 할 필요가 없습니다.
- 프록시 서버를 사용하는 경우 포트 번호가 사용됩니다.
- 서버 연결 시간 및 응답 시간에 대한 벤치 마크를 원할 경우 제한 시간 연결 및 응답을 설정할 수 있습니다. 서버가 구성된 응답보다 응답을 보내는 데 더 많은 시간이 걸리면 요청이 실패합니다.
- 요청과 함께 보낼 매개 변수를 구성 할 수도 있습니다. 예를 들면 : 경우에 따라 요청과 함께 Authorization Token을 보내야 할 수 있으므로 아래와 같이 HTTP 요청에 추가했습니다.
FTP 요청
경로-> 테스트 계획-> 스레드 그룹-> 샘플러-> FTP 요청
FTP는 파일 전송 프로토콜을 의미하며 서버에서 파일을 업로드하거나 다운로드하는 데 사용됩니다. JMeter의 스레드는 FTP 서버에 요청을 보내 파일을 업로드 또는 다운로드하고 성능을 측정합니다.
- 로컬 파일은 다운로드 한 파일을 저장해야하는 위치입니다.
- FTP 서버에서 다운로드하는 경우 GET 옵션 사용
- FTP 서버에 파일을 업로드하는 경우 사용자 POST 옵션
샘플러, 리스너, 구성 요소 등으로 구성된 실제 테스트 계획을 살펴볼 때 다룰 리스너가 많이 있습니다.
청취자
따라서 지금까지 서버에 요청을 보내는 샘플러는 거의 없었지만 아직 응답을 분석하지 않았습니다. 성능 테스트는 다양한 형태의 서버 응답을 분석 한 다음 클라이언트에게이를 제시하는 것입니다.
최고의 YouTube 비디오 변환기는 무엇입니까
리스너는 테스터가 통계를 알 수 있도록 테스트 실행 결과를 표시하는 데 사용됩니다. Jmeter에는 약 15 명의 리스너가 있지만 주로 사용되는 리스너는 테이블, 트리 및 그래프입니다.
표에서 결과보기 :
이것은 가장 일반적으로 사용되고 이해하기 쉬운 청취자의 형태입니다. 중요한 성능 매개 변수와 함께 결과를 표 형식으로 표시합니다.
리스너는 테스트 계획 또는 샘플러에서 직접 추가 할 수 있습니다. 차이점은 샘플러 아래에 리스너를 추가하면 해당 샘플러의 결과 만 표시된다는 것입니다. 테스트 계획 바로 아래에 샘플러를 추가하면 계층 구조의 모든 샘플러에 대한 결과가 표시됩니다.
참고로 아래 스크린 샷 :
아래와 같은 결과가 표시됩니다.
- 지연 시간 : 첫 번째 정보가 수신 된 시간, 즉 데이터의 첫 번째 바이트가 수신되는 시간
- 연결 시간 : 서버와 접속하는데 걸리는 시간
- 샘플 시간 : 완전한 데이터를받는 데 걸리는 시간
- 견본 – 샘플 번호의 순서
- 바이트- 수신 된 데이터의 크기.
트리에서 결과보기 :
이것은 가장 일반적으로 사용되는 또 다른 리스너이며 요청 및 응답과 함께 자세한 정보를 제공합니다. Json, XML, Text, RegEx를 보는 것과는 별도로 응답으로 렌더링 된 HTML 페이지를 볼 수도 있습니다.
테스터가 수신 된 응답에 어설 션을 넣어 테스트가 통과되었는지 확인할 수 있으므로 매우 유용합니다. Jmeter 결과는 응답이 바람직하지 않더라도 여전히 '통과'로 표시됩니다.
예를 들면 : 모든 웹 사이트에서 HTTP 요청을했다고 가정 해 보겠습니다. www.xyz.com 이에 대한 응답으로 우리는 XYZ 또는 간단한 말로이 페이지를 방문하면 회사의 홈페이지가 이름으로 열립니다. 어설 션을 입력하지 않은 경우 Jmeter는 적중이 서버로 이동했기 때문에 결과를 계속 표시합니다.
결과 형식은 아래를 참조하십시오.
응답으로 HTML 페이지를 보려면 왼쪽 창에서 드롭 다운을 클릭 한 다음 'HTML'을 선택하고 응답 탭으로 이동하여 서버의 응답으로 반환되는 페이지를 확인합니다.
작업대
워크 벤치는 현재 테스트 계획에서 사용되지 않지만 나중에 복사하여 붙여 넣을 수있는 요소를 저장할 수있는 장소입니다. JMeter 파일을 저장할 때 Workbench에있는 구성 요소는 자동으로 저장되지 않습니다. 마우스 오른쪽 버튼을 클릭하고 '다른 이름으로 저장'옵션을 선택하여 별도로 저장해야합니다.
여러분 모두 워크 벤치의 사용이 무엇인지 생각하고 계실 것입니다. 어쨌든 Jmeter의 테스트 계획에 직접 구성 요소를 추가하는 것은 쉽습니다.
워크 벤치를 갖는 이유는 사용자가 몇 가지 실험을하고 새로운 시나리오를 시도 할 수 있기 때문입니다. 이미 알고 있듯이 워크 벤치의 요소는 저장되지 않으므로 사용자는 문자 그대로 무엇이든 사용하고 버릴 수 있습니다. 그러나 WorkBench에서만 사용할 수있는 '비 테스트 구성 요소'가 있습니다.
여기에 나열되어 있습니다.
- HTTP 미러 서버
- HTTP (s) 테스트 스크립트 레코더
- 속성 표시
HTTP (s) 테스트 스크립트 레코더는 JMeter에서 사용되는 가장 중요한 비 테스트 요소입니다. 테스터가 스크립트를 기록한 다음 각 트랜잭션에 대한 부하를 구성하는 데 도움이됩니다.
Jmeter는 서버로 전송 된 요청 만 기록합니다. QTP / Selenium의 '녹음 및 재생'기능과 혼동하지 마십시오. 모든 요청이 기록되고 테스터는 요청에 원하는 부하를 적용하여 동작을 확인할 수 있습니다.
이 요소는 테스터가 애플리케이션에서 진행되는 모든 요청을 알지 못하는 시나리오에서 매우 중요합니다. Http (s) 스크립트 레코더를 사용하여 테스트중인 애플리케이션을 기록 할 수 있습니다.
모바일 애플리케이션의 성능 테스트는 JMeter 프록시를 설정 한 다음 모바일 앱이 서버로 보내는 요청을 기록하여 이러한 방식으로 수행 할 수도 있습니다. 모바일 성능 테스트를위한 단계별 절차는 다음 기사에서 설명합니다.
어설 션
지금까지 JMeter가 서버에 연결되는 방법과 응답이 리스너를 통해 표시되는 방법에 대해 설명했습니다. 수신 된 응답이 정확하고 예상대로인지 확인하려면 어설 션을 추가해야합니다. Assertion은 단순히 결과를 비교하기 위해 응답에 넣어야하는 검증입니다.
다음은 일반적으로 사용되는 주장 유형입니다.
- 응답 주장
- 기간 어설 션
- 크기 주장
- XML 어설 션
- HTML 어설 션
응답 주장
Response Assertion에서는 자체 패턴 문자열을 추가 한 다음 서버에서받은 응답과 비교할 수 있습니다. 예를 들면 요청이 성공적으로 일부 응답을 반환 할 때 응답 코드가 200임을 모두 알고 있습니다. 따라서 패턴 문자열 'Response Code = 202'를 추가하면 테스트 케이스가 실패합니다.
응답 코드 어설 션을 추가하려면 아래 스크린 샷을 참조하십시오.
이제 테스트가 실행되면 Assertion 결과가 실패했음을 나타내는 빨간색과 함께 결과가 표시됩니다.
기간 어설 션
Duration Assertion은 매우 중요하며 서버가 주어진 시간 내에 응답했는지 확인합니다. 이는 100 개의 요청을 샘플링하고 모든 응답이 벤치마킹 한도 내에서 수신되도록해야하는 시나리오에서 사용할 수 있습니다.
케이스 : 10 명의 사용자가 동시에“google.com”서버에 접속하고 있으며 Duration Assertion은 1000ms로 설정되어 있습니다. 아래 스크린 샷을 참조하십시오.
XML Assertion은 응답 데이터에 올바른 XML 문서가 있는지 확인하고 HTML Assertion은 서버에서받은 응답의 HTML 구문을 확인합니다.
구성 요소
서버로 전송 된 요청은 실제 요청 전에 실행되는 일부 구성 요소를 사용하여 추가로 매개 변수화 할 수 있습니다. 간단한 예는 CSV 데이터 세트 구성이 사용되는 CSV 파일에서 변수 값을 읽는 것입니다.
다음은 웹 및 모바일 애플리케이션의 성능 테스트에 사용되는 몇 가지 중요한 구성 요소입니다.
- CSV 데이터 세트 구성.
- 사용자 정의 변수
- HTTPS 요청 기본값
- HTTPS 캐시 관리자
- HTTPS 쿠키 관리자
CSV 데이터 세트 구성
CSV 데이터 세트 구성은 Jmeter가 각 개별 요청에서 다른 매개 변수를 전달하는 대신 CSV 파일에서 일부 매개 변수의 값을 선택하는 데 도움이됩니다. 예를 들면 다른 사용자 및 암호 집합으로 로그인 기능을 테스트해야하는 경우 CSV 파일에 두 개의 열을 만들고 여기에 값을 입력하여 JMeter가 서버에 전송 된 각 요청에 대해 하나를 선택할 수 있습니다.
다음은 인도의 여러 도시에 대한 날씨 API를 테스트하기 위해 구성에 CSV 데이터 세트를 사용하는 흐름입니다.
- 테스트 계획에 CSV 데이터 세트 구성 요소 추가
- CSV 파일 생성
- 요청 매개 변수에 변수를 전달합니다. APPID 매개 변수는 다음에서 동적으로 생성 될 수 있습니다. http://openweathermap.org/appid
- 테스트 실행 및 결과보기.
사용자 정의 변수
Jmeter가 미리 정의 된 변수에서 값을 선택하는 데 도움이됩니다. 예를 들면 동일한 URL에 많은 HTTP 요청을 추가해야하는 테스트 계획을 작성해야하며 클라이언트가 나중에이를 다른 URL로 마이그레이션 할 계획이있는 시나리오가있을 수 있음을 지원합니다. 업데이트 된 URL에 대한 모든 요청을 처리하도록 나중에 업데이트 할 수있는 UDV (사용자 정의 변수)에서 URL을 선택하도록 JMeter에 지시 할 수 있습니다.
따라서 각 요청에서 URL 업데이트를 방지하기 위해 업데이트 된 URL에 대한 모든 요청을 처리하도록 나중에 업데이트 할 수있는 UDV (사용자 정의 변수)에서 URL을 선택하도록 JMeter에 지시 할 수 있습니다.
HTTP 요청 기본값
이 구성 요소는 https 요청의 기본값을 지정하는 데 매우 유용합니다. 더 자세한 안내를 위해 Google 서버에서 50 개의 서로 다른 요청을 처리해야하는 예를 들어 보겠습니다.이 시나리오에서 HTTP 요청 기본값을 추가하면 서버 이름, 경로 또는 포트 번호, 연결과 같은 기타 속성을 지정할 필요가 없습니다. 시간 초과 속성. HTTP 요청 기본 구성 요소에 지정된 내용은 모든 HTTP 요청에 상속됩니다.
이 시나리오에서 HTTP 요청 기본값을 추가하면 서버 이름, 경로 또는 포트 번호, 연결 시간 초과 속성과 같은 기타 속성을 지정할 필요가 없습니다. HTTP 요청 기본 구성 요소에 지정된 내용은 모든 HTTP 요청에 상속됩니다.
HTTP 요청 기본값을 추가하고 서버 및 경로를 지정하는 방법은 아래를 참조하십시오.
HTTP 캐시 관리자 과 HTTP 쿠키 관리자 JMeter가 실시간 브라우저로 작동하도록 만드는 데 사용됩니다. HTTP 캐시 관리자는 각 요청 후 캐시를 지울 수 있지만 다른 하나는 쿠키 설정을 관리 할 수 있습니다.
로직 컨트롤러 및 타이머
로직 컨트롤러와 타이머는 Jmeter가 트랜잭션 흐름을 제어하는 데 도움이됩니다. 타이머는 서버를 테스트해야하는 경우 각 스레드의 지연을 보장합니다. 예를 들어, HTTP 요청이 완료된 후 FTP 요청이 5 초 동안 대기해야하는 경우 여기에 타이머를 추가 할 수 있습니다.
로직 컨트롤러는 서버로 전송되는 요청의 흐름을 정의하는 데 사용됩니다. 또한 로그인 및 로그 아웃과 같은 각 모듈에 대한 요청을 별도로 저장할 수 있습니다.
결론
지금 쯤이면 모두 JMeter의 구성 요소에 익숙해졌고 사용을 시도했으며 몇 가지 문제에 직면했을 것입니다. 다음 기사에서는 모빌리티 영역을 다루는 몇 가지 실시간 성능 테스트 시나리오를 다룰 예정이므로 모두가 JMeter에 대한 실무 지식을 얻을 수 있습니다.
계속 지켜봐주세요! 다음 기사는 요청을 관리하고 결과를 분석하고 성능 테스트의 벤치 마크와 비교하는 데 도움이됩니다.
=>계속 읽기 파트 III: JMeter 프로세서 및 컨트롤러
최고의 무료 Windows 10 유지 관리 소프트웨어
=> JMeter 자습서를 보려면 여기를 클릭하십시오. JMeter에 대한 완전한 무료 교육 (20 개 이상의 동영상)