14. 보고서 대시보드 생성 ¶
JMeter는 테스트 계획에서 그래프와 통계를 얻기 위해 대시보드 보고서 생성을 지원합니다.
이 장에서는 생성기를 구성하고 사용하는 방법에 대해 설명합니다.
14.1 개요 ¶
대시보드 생성기는 JMeter의 모듈식 확장입니다. 기본 동작은 CSV 파일에서 샘플을 읽고 처리하여 그래프 보기가 포함된 HTML 파일을 생성하는 것입니다. 부하 테스트가 끝날 때 또는 요청 시 보고서를 생성할 수 있습니다.
이 보고서는 다음 측정항목을 제공합니다.
- 허용 및 충족된 임계값에 대해 구성 가능한 값을 기반으로 모든 트랜잭션에 대해 APDEX를 계산하는 APDEX (응용 프로그램 성능 지수) 테이블
- 성공 및 실패한 요청(트랜잭션 컨트롤러 샘플 결과는 고려되지 않음) 백분율을 보여주는 요청 요약 그래프:
- 구성 가능한 3개의 백분위수를 포함하여 트랜잭션당 모든 메트릭의 요약을 하나의 테이블에 제공하는 통계 테이블:
- 전체 요청에서 모든 오류 및 해당 비율에 대한 요약을 제공하는 오류 테이블:
- 모든 샘플러에 대해 제공하는 샘플러별 상위 5개 오류(기본적으로 트랜잭션 컨트롤러 제외) 상위 5개 오류:
- 모든 거래를 확인/선택 취소하여 표시/숨길 수 있는 확대/축소 가능한 차트:
- 시간 경과에 따른 응답 시간(트랜잭션 컨트롤러 샘플 결과 포함):
- 응답 시간 시간에 따른 백분위수(성공적인 응답만 해당):
- 시간 경과에 따른 활성 스레드:
- 시간 경과에 따른 바이트 처리량(트랜잭션 컨트롤러 샘플 결과 무시):
- 시간 경과에 따른 지연 시간(트랜잭션 컨트롤러 샘플 결과 포함):
- 시간 경과에 따른 연결 시간(트랜잭션 컨트롤러 샘플 결과 포함):
- 초당 적중 횟수(트랜잭션 컨트롤러 샘플 결과 무시):
- 초당 응답 코드(트랜잭션 컨트롤러 샘플 결과 무시):
- 초당 트랜잭션(트랜잭션 컨트롤러 샘플 결과 포함):
- 응답 시간 대 초당 요청(트랜잭션 컨트롤러 샘플 결과 무시):
- 대기 시간 대 초당 요청(트랜잭션 컨트롤러 샘플 결과 무시):
- 응답 시간 개요(트랜잭션 컨트롤러 샘플 결과 제외):
- 응답 시간 백분위수(트랜잭션 컨트롤러 샘플 결과 포함):
- 시간 대 스레드(트랜잭션 컨트롤러 샘플 결과 포함):
분산 모드에서 이 그래프는 가로축에 1개의 서버에 대한 스레드 수를 표시합니다. 현재 제한 사항입니다
- 응답 시간 분포(트랜잭션 컨트롤러 샘플 결과 포함):
14.2 대시보드 생성 구성 ¶
대시보드 생성은 JMeter 속성을 사용하여 보고서를 사용자 정의합니다. 일부 속성은 일반 설정에 사용되고 다른 속성은 특정 그래프 구성 또는 내보내기 구성에 사용됩니다.
14.2.1 요구 사항 ¶
14.2.1.1 필터링 구성 ¶
모든 것을 원하지 않는 경우 보고서에 원하는 트랜잭션만 유지하도록 jmeter.reportgenerator.exporter.html.series_filter 속성을 설정했는지 확인하십시오 .아래 예에서는 Search|Order 만 수정 하고 나머지는 유지해야 합니다.
jmeter.reportgenerator.exporter.html.series_filter=^(검색|주문)(-성공|-실패)?$
14.2.1.2 서비스 구성 저장 ¶
생성기가 작동하려면 JMeter에 의해 생성된 CSV 파일에 JMeter 의 마지막 라이브 버전에서 기본적으로 올바른 특정 필수 데이터가 포함되어야 합니다 .
해당 설정을 수정한 경우 JMeter 구성이 다음 설정(기본값)을 따르는지 확인하십시오.
jmeter.save.saveservice.bytes = 사실 # HttpClient4에서만 사용 가능 #jmeter.save.saveservice.sent_bytes=true jmeter.save.saveservice.label = true jmeter.save.saveservice.latency = true jmeter.save.saveservice.response_code = true jmeter.save.saveservice.response_message = true jmeter.save.saveservice.successful = 사실 jmeter.save.saveservice.thread_counts = 참 jmeter.save.saveservice.thread_name = true jmeter.save.saveservice.time = 참 jmeter.save.saveservice.connect_time = true jmeter.save.saveservice.assertion_results_failure_message = true # 타임스탬프 형식은 시간을 포함해야 하고 날짜를 포함해야 합니다. # 예를 들어 epoch 이후의 밀리초인 기본값은 다음과 같습니다. jmeter.save.saveservice.timestamp_format = ms # 또는 다음도 적합합니다. # jmeter.save.saveservice.timestamp_format = yyyy/MM/dd HH:mm:ss
14.2.1.3 트랜잭션 컨트롤러 구성 ¶
트랜잭션 컨트롤러 를 사용하는 경우 가장 정확한 결과를 얻으려면 다음을 수행하십시오.
- 확인란의 선택을 취소합니다( 기본 구성 임): 상위 샘플 생성
- 트랜잭션 컨트롤러 가 Ajax 호출을 트리거할 HTML 페이지에 대한 요청을 나타내는 컨테이너로 사용되며 보고서에서 트랜잭션 컨트롤러만 원하는 경우 노드를 마우스 오른쪽 버튼으로 클릭하고 이름 지정 정책 적용 당신은 이것을 얻을 것입니다:
14.2.2 일반 설정 ¶
jmeter.reportgenerator.
매개변수
기본값: "Apache JMeter 대시보드"
기본 날짜 형식은 yyyyMMddHHmmss
입니다. 부하 테스트 후 보고서를 생성하고 결과 파일에 다른 시간대의 타임스탬프가 포함되어 있을 때 유용합니다. 이 경우 날짜 형식에는 시간대(zzz)가 포함되어야 합니다.
예: dd/MM/yyyy HH:mm:ss zzz
날짜 형식은 date_format 속성에 의해 정의됩니다.
기본값: 데이터 범위가 처음부터 사용됨을 의미하는 채워지지 않음
날짜 형식은 date_format 속성에 의해 정의됩니다.
기본값: 채워지지 않음은 데이터 범위가 끝까지 사용됨을 의미합니다.
기본값: 1500
샘플 이름 또는 정규식을 사용합니다.
형식은 sample_name:satisfaction|tolerance[;]
입니다. 값은 밀리초 단위입니다.
jmeter.reportgenerator.apdex_per_transaction=샘플(\\d+):1000|2000;\ 샘플12:3000|4000;\ 시나리오01-12:5000|6000
형식: 정규식.
기본: ""
기본값: 임시
기본값: 20000
- aggregate_rpt_pct1 : 기본값은 90입니다.
- aggregate_rpt_pct2 : 기본값은 95입니다.
- Aggregate_rpt_pct3 : 기본값은 99입니다.
생성기 구성에서 사용되는 일부 전체 속성을 정의할 수 있습니다. 이러한 속성의 이름은 자유롭게 지정할 수 있지만 접두사를 사용해야 합니다.
jmeter.reportgenerator.속성 중복을 피하기 위해.
예:
- 속성 정의:
-
jmeter.reportgenerator.overall_granularity=60000
- 속성 참조:
-
${jmeter.reportgenerator.overall_granularity}
14.2.3 그래프 설정 ¶
그래프 구성을 설명하는 각 속성에는 접두사를 붙여야 합니다.
jmeter.reportgenerator.graph.다음에 그래프 식별자가 옵니다.
14.2.3.1 일반 속성 ¶
모든 그래프는 다음 속성을 지원합니다.
매개변수
를 확장해야 합니다 . 자세한 내용은 기본 그래프 섹션 을 참조하십시오.
14.2.3.2 특정 속성 ¶
특정 그래프 속성은 접두사를 사용해야 합니다.
jmeter.reportgenerator.graph.<graph_id>.property속성의 이름은 낙타 대소문자 변환을 사용하여 매핑되고 클래스의 일치하는 메서드는 속성 값을 인수로 사용하여 호출됩니다.
예:
jmeter.reportgenerator.graph.<graph_id>.property.set_granularity=150그래프 인스턴스에서 setGranularity(150) 메서드 호출을 유도합니다 .
14.2.4 내보내기 설정 ¶
내보내기 구성을 설명하는 각 속성에는 접두사를 붙여야 합니다.
jmeter.reportgenerator.exporter그 뒤에 수출자 식별자가 옵니다.
14.2.4.1 일반 속성 ¶
모든 내보내기는 다음 속성을 지원합니다.
매개변수
를 구현해야 합니다 .
형식으로 끝나야 합니다. 형식: 정규식. 기본: ""
14.2.4.2 특정 속성 ¶
특정 내보내기 속성은 접두사를 사용해야 합니다.
jmeter.reportgenerator.exporter.<exporter_id>.property
매개변수
14.2.4.3 그래프 속성 ¶
그래프 속성을 사용하면 내보내기가 일부 그래프 데이터를 덮어쓸 수 있습니다.
접두사를 사용해야 합니다.
jmeter.reportgenerator.exporter.<exporter_id>.graph_options.<graph_id>
매개변수
14.2.4.4 필터링 메커니즘 ¶
계산 전에 데이터를 버리는 일반 속성 섹션의 필터링과 달리 여기에서 필터링은 계산 후에 수행되며 최종 보고서를 단순화하는 역할을 합니다.
series_filter 속성 을 사용하면 계열 이름(행 관련)과 일치하는 정규식을 사용하여 그래프의 계열(요약 테이블 관련 행)을 필터링할 수 있습니다. 그러나 계열의 이름(해당 행)이 필터와 일치하더라도 다른 필터링 속성의 설정이 무시될 수 있습니다. 반대로 일치하는 항목이 없으면 다른 속성에서 이를 유지하도록 허용할 수 있습니다.
다음 표는 필터링 속성 설정이 작동하는 방식을 보여줍니다.
filter_only_sample_series | 그래프/요약은 컨트롤러 식별을 지원합니다. | 현재 시리즈는 컨트롤러 시리즈입니다. | show_controllers_only | 폐기 |
---|---|---|---|---|
거짓 | 거짓 | - | 거짓 | 거짓 |
진실 | ||||
- | 거짓 | |||
진실 | ||||
진실 | 거짓 | 거짓 | ||
진실 | ||||
진실 | 거짓 | |||
진실 | ||||
진실 | 거짓 | - | 거짓 | |
진실 | ||||
- | 거짓 | |||
진실 | ||||
진실 | 거짓 | 거짓 | ||
진실 | 진실 | |||
진실 | 거짓 | 거짓 | ||
진실 |
filter_only_sample_series | 그래프/요약은 컨트롤러 식별을 지원합니다. | 유지된 |
---|---|---|
거짓 | 거짓 | 거짓 |
진실 | ||
진실 | 거짓 | 진실 |
진실 | 거짓 |
- show_controllers_only 속성을 설정 하고 그래프가 컨트롤러를 제외하도록 구성된 경우.
- series_filter 속성이 시리즈와 일치하지 않는 경우.
14.2.5 샘플 구성 ¶
보고서 생성기를 테스트하기 위해 다음 구성을 user.properties 파일에 복사할 수 있습니다.
# 보고서 제목을 변경하려면 이 속성을 구성합니다. #jmeter.reportgenerator.report_title=Apache JMeter 대시보드 # 시간 경과 그래프의 세분성을 변경하려면 이 매개변수를 변경하십시오. # 입도는 1000(1초)보다 높아야 합니다. 그렇지 않으면 처리량 그래프가 올바르지 않습니다. # 버그 60149 참조 #jmeter.reportgenerator.overall_granularity=60000 응답 시간 분포의 세분성을 변경하려면 이 매개변수를 변경하십시오. # 기본적으로 100ms로 설정 #jmeter.reportgenerator.graph.responseTimeDistribution.property.set_granularity=100 # APDEX 만족도 임계값을 재정의하려면 이 매개변수를 변경합니다. jmeter.reportgenerator.apdex_satisfied_threshold=1500 # APDEX 허용 오차 임계값을 무시하려면 이 매개변수를 변경하십시오. jmeter.reportgenerator.apdex_tolerated_threshold=3000 # 생성된 html 페이지의 대상 디렉토리를 설정합니다. 매 세대마다 변경하는 것이 좋습니다. # 이것은 -o 명령줄 옵션을 통해 설정된 값을 무시합니다. # jmeter.reportgenerator.exporter.html.property.output_dir=/tmp/test-report # 필터링된 그래프 시리즈를 나타냅니다(정규 표현식). # 아래 예에서는 검색 및 주문 샘플을 필터링합니다. # 패턴의 끝에는 항상 (-success|-failure)?$가 포함되어야 합니다. # 초당 트랜잭션 접미사는 "-success" 또는 "-failure"가 있는 트랜잭션입니다. # 결과에 #jmeter.reportgenerator.exporter.html.series_filter=^(검색|주문)(-성공|-실패)?$ # 시리즈 필터가 샘플 시리즈에만 적용되는지 여부를 나타냅니다. jmeter.reportgenerator.exporter.html.filters_only_sample_series=true
이 구성을 통해 다음과 같은 경우 보고서를 생성할 수 있습니다.
- 시간 경과에 따른 그래프의 시간 단위는 1분입니다.
- ADPEX 계산을 위한 만족 임계값은 1초 반입니다.
- ADPEX 계산을 위한 허용 한계 임계값은 3초입니다.
- HTML 파일은 /tmp/test-report 디렉토리에 생성됩니다 .
- 이름이 " s0 " 또는 " s1 "로 시작하는 시리즈만 표시됩니다.
- 이전 필터는 계열(해당 행)이 샘플과 일치하는 그래프(해당 요약 테이블)에만 적용됩니다.
14.3 보고서 생성 ¶
보고서 생성은 샘플 로그 파일에서 독립 실행형 프로세스로 수행하거나 부하 테스트를 실행한 후 자동으로 수행할 수 있습니다.
14.3.3 GUI 도구 메뉴를 사용한 생성 ¶
도구 → HTML 보고서 생성 메뉴 항목을 사용하여 HTML 보고서를 생성할 수 있습니다 .
각 매개변수에 대해 다음 표를 참조하십시오.
매개변수
출력 디렉토리가 정의되지 않은 경우 컨트롤러는 ${JMETER_HOME}/bin/report-output 을 사용 합니다.
그런 다음 보고서 생성 버튼을 클릭하고 정보 대화 상자가 나타날 때까지 기다리기만 하면 됩니다.
14.4 기본 그래프 ¶
이 보고서 엔진에서 제공하는 모든 그래프는 org.apache.jmeter.report.processor.graph.impl 패키지에 있습니다.
대시보드 생성기는 다음 그래프 클래스를 제공합니다.
그래프 | 설명 | 컨트롤러 식별 지원 |
---|---|---|
ActiveThreadsGraph소비자 | 이 그래프는 시간 경과에 따른 활성 스레드 수를 나타냅니다. | 거짓 |
BytesThroughputGraphConsumer | 이 그래프는 시간 경과에 따른 송수신 데이터의 처리량을 나타냅니다. | 거짓 |
CodesPerSecondGraphConsumer | 이 그래프는 시간 경과에 따른 응답 코드 비율을 나타냅니다. | 거짓 |
HitsPerSecondGraphConsumer | 이 그래프는 시간 경과에 따른 완료된 요청의 비율을 나타냅니다. | 거짓 |
LatencyOverTimeGraphConsumer | 이 그래프는 시간 경과에 따른 평균 대기 시간을 나타냅니다. | 진실 |
ConnectTimeOverTimeGraph소비자 | 이 그래프는 시간에 따른 연결 시간을 나타냅니다. | 진실 |
LatencyVSRequestGraphConsumer | 이 그래프는 현재 요청 수에 따른 중간 및 평균 지연 시간을 나타냅니다. | 거짓 |
ResponseTimeDistributionGraphConsumer | 이 그래프는 경과 시간과 이름에 따른 샘플의 분포를 나타냅니다. | 진실 |
ResponseTimeOverTimeGraph소비자 | 이 그래프는 시간 경과에 따른 평균 응답 시간을 나타냅니다. | 진실 |
ResponseTimePercentilesGraphConsumer | 이 그래프는 시간 경과에 따른 경과 시간의 백분위수를 나타냅니다. | 진실 |
ResponseTimePercentilesOverTimeGraphConsumer | 이 그래프는 시간에 따른 최소/최대 및 3백분위수 응답 시간을 보여줍니다. | 진실 |
ResponseTimeVSRequestGraph소비자 | 이 그래프는 현재 요청 수에 따른 중앙값 및 평균 응답 시간을 나타냅니다. | 거짓 |
TimeVSThreadGraph소비자 |
이 그래프는 현재 활성 스레드 수에 따른 평균 응답 시간을 나타냅니다.
*-aggregated 시리즈는 현재 활성 스레드 수에 관계없이 평균 응답 시간을 나타냅니다. 이러한 계열은 현재 활성 스레드의 수가 평균으로 집계되기 때문에 단독 점으로 표시됩니다. 따라서 이러한 점에 대해:
|
진실 |
TransactionsPerSecondGraphConsumer | 이 그래프는 시간 경과에 따른 샘플 이름별 트랜잭션 비율을 나타냅니다. | 진실 |
14.5 시간 경과에 따른 커스텀 그래프 생성 ¶
시간 경과에 따라 샘플_변수를 CSV로 그래프로 나타낼 수 있으며 user.properties 파일에서 속성을 설정하여 그래프를 사용자 정의할 수 있습니다.
id 접두사 custom_ 을 사용해야 합니다 .
jmeter.reportgenerator.graph.custom_<your_graph_name_id>.property.<your_option_name>이 그래프를 사용자 정의 그래프로 지정하려면 다음을 수행하십시오.
jmeter.reportgenerator.graph.custom_<your_graph_name_id>.classname=org.apache.jmeter.report.processor.graph.impl.CustomGraphConsumer
매개변수
다음은 ts-hit 변수를 그래프로 표시하는 사용자 정의 그래프 구성의 예입니다 .
jmeter.reportgenerator.graph.custom_testGraph.classname=org.apache.jmeter.report.processor.graph.impl.CustomGraphConsumer jmeter.reportgenerator.graph.custom_testGraph.title=청크 히트 jmeter.reportgenerator.graph.custom_testGraph.property.set_Y_Axis=적중 횟수 jmeter.reportgenerator.graph.custom_testGraph.set_X_Axis=시간 경과에 따른 jmeter.reportgenerator.graph.custom_testGraph.property.set_granularity=60000 jmeter.reportgenerator.graph.custom_testGraph.property.set_Sample_Variable_Name=ts-hit jmeter.reportgenerator.graph.custom_testGraph.property.set_Content_Message=적중 횟수:
14.6 보고서 대시보드를 개선하고 싶으십니까? ¶
새 그래프에 기여하거나 현재 그래프를 개선하려면 이 개발자 문서 를 읽을 수 있습니다 . 기여에 대한 이 문서를 읽으십시오 .