?1、jmeter 對(duì)Transaction Controller(事務(wù)控制),在內(nèi)部對(duì)應(yīng)生成TransactionSampler,此TransactionSampler有自己的sampleResult,此sampleResult也會(huì)寫入到j(luò)tl文件中,聚合報(bào)告中對(duì)Transaction Controller本身的統(tǒng)計(jì)邏輯其實(shí)是和其他的sampler的處理邏輯是一樣的
2、TransactionSampler中包含內(nèi)部子sampler的引用,還包含一個(gè)對(duì)子sampler的samplerResult引用的list引用
如下圖:
勾不勾選Generate parent Sampler,其實(shí)影響的是是否統(tǒng)計(jì)子sampler的samplerResult的問(wèn)題。
啟動(dòng)jmeterThread線程,執(zhí)行run方法
next(),調(diào)用的TransactionController
下方是具體sampler處理的代碼,會(huì)先判斷此次執(zhí)行的是否是TransactionSampler,如果是則取出其中的子sampler進(jìn)行處理,子sampler的處理過(guò)程同其他普通的sampler處理過(guò)程一樣。
處理子sampler
對(duì)子sampler的samplerResult進(jìn)行處理(寫入jtl文件),同時(shí)將子sampler的samplerResult存入到TransactionSampler中。此時(shí)不對(duì)TransactionSampler的samplerResult進(jìn)行處理。
循環(huán)處理TransactionSampler下的子sampler,如果已全部執(zhí)行完畢,則事務(wù)結(jié)束,將TransactionSampler的samplerResult寫入jtl文件
下方是將子sampler加入到TransactionSampler的過(guò)程(在調(diào)用next()方法的過(guò)程中)