?1、jmeter 對Transaction Controller(事務控制),在內(nèi)部對應生成TransactionSampler,此TransactionSampler有自己的sampleResult,此sampleResult也會寫入到jtl文件中乾巧,聚合報告中對Transaction Controller本身的統(tǒng)計邏輯其實是和其他的sampler的處理邏輯是一樣的
2、TransactionSampler中包含內(nèi)部子sampler的引用预愤,還包含一個對子sampler的samplerResult引用的list引用
如下圖:
勾不勾選Generate parent Sampler沟于,其實影響的是是否統(tǒng)計子sampler的samplerResult的問題。
啟動jmeterThread線程植康,執(zhí)行run方法
next(),調(diào)用的TransactionController
下方是具體sampler處理的代碼旷太,會先判斷此次執(zhí)行的是否是TransactionSampler,如果是則取出其中的子sampler進行處理销睁,子sampler的處理過程同其他普通的sampler處理過程一樣供璧。
處理子sampler
對子sampler的samplerResult進行處理(寫入jtl文件),同時將子sampler的samplerResult存入到TransactionSampler中冻记。此時不對TransactionSampler的samplerResult進行處理睡毒。
循環(huán)處理TransactionSampler下的子sampler,如果已全部執(zhí)行完畢,則事務結(jié)束冗栗,將TransactionSampler的samplerResult寫入jtl文件
下方是將子sampler加入到TransactionSampler的過程(在調(diào)用next()方法的過程中)