Jmeter-聚合報告源碼解析

?聚合報告有2中生成方式

1、在已有jtl文件的情況下,直接選擇加載文件即可生成 聚合報告

2、在運(yùn)行jmeter的過程中,動態(tài)生成聚合報告

聚合報告中統(tǒng)計的數(shù)據(jù)來源,其實都是統(tǒng)計的sampleResult中收集的數(shù)據(jù)。

需要特別注意的是:

Label:即為添加sample時設(shè)置名稱

samples:? 同名的請求名稱的請求次數(shù),會進(jìn)行合并統(tǒng)計

Average:同名請求的累加響應(yīng)時間/同名請求的累加請求次數(shù)

Median(50%Line) ? 90%Line? 95%LIne 99%Line? 這三個的統(tǒng)計邏輯是一致的,都是將請求相應(yīng)時間及請求次數(shù)放到一個按照請求時間排序的TreeMap中,讓后分別取50%、90%、95%、99%的請求次數(shù)對應(yīng)的那個請求時間。

1、聚合報告中的每一行,代表一個請求(同名的請求會只顯示一個,把結(jié)果合并)

2、聚合報告中的每一列信息,是由SamplingStatCalculator類的不同方法實現(xiàn)統(tǒng)計的,(相同名稱的請求會共用同一個SamplingStatCalculator)

不管是運(yùn)行jmeter時實時生成聚合報告,還是根據(jù)已經(jīng)存在jtl生成聚合報告,最終的底層都是調(diào)用StatGraphVisualizer類的add(sampleResult)方法來生成表格的一行數(shù)據(jù),傳遞的參數(shù)為每個請求的請求結(jié)果(sampleResult)信息。

add方法的調(diào)用時機(jī):

1、根據(jù)jtl文件生成報告時,每解析一行數(shù)據(jù)就調(diào)用一次add方法

2、實時運(yùn)行生成聚合報告,每請求一次,就調(diào)用一次add方法

注意:

private final Map tableRows = new ConcurrentHashMap<>();

tableRows封裝了相同名稱的sample對應(yīng)的SamplingStatCalculator對象,也就是同名的sample會使用相同的SamplingStatCalculator對象計算數(shù)據(jù),

samples Min Max的源碼:下面的方法在沒完成一個請求或者每解析一行jtl結(jié)果文件時都會調(diào)用一次

Media、90%Line、95%Line、99%Line

Throughput:

當(dāng)前統(tǒng)計的請求次數(shù)/(最后一個請求的結(jié)束時間-第一個請求的開始時間)

KB/sec

Error%

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,993評論 19 139
  • 1 Jmeter安裝配置 使用Jmeter前首先要安裝JDK,配置JDK環(huán)境變量。Jmeter不需要安裝,下載后...
    茶小汐閱讀 2,984評論 0 8
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,779評論 18 399
  • 一、基本概念 1.測試計劃是使用 JMeter 進(jìn)行測試的起點,它是其它 JMeter 測試元件的容器。 2.線程...
    Leo_0626閱讀 2,339評論 0 10
  • 生命的洪流啊,每個人既偉大又渺小,在不經(jīng)意的瞬間,別人走進(jìn)我們的生活,成為我們的故事或談資,同理,我們也不知疲憊地...
    解憂少年閱讀 932評論 0 1