天天看點

JMeter邏輯控制器之Transaction Controller

Transaction Controller

    • 參數介紹
    • 勾選Generate Parent Sample
    • 勾選Include duration of timer and pre-post processors in generated sample

事務響應時間是我們衡量業務性能的主要名額,事務控制器(Transaction Controller)可以把其節點下的取樣器執行消耗時間累加在一起,便于我們進行統計。同時我們對每一個取樣器的執行時間進行統計。

如果事務控制器下的取樣器有多個,那麼隻有每一個取樣器都運作成功了,整個事務控制器定義的事務才算成功,這是充分必要條件。

參數介紹

JMeter邏輯控制器之Transaction Controller
屬性 描述 必填
Name 控制器名稱,可以根據實際情況進行設定
Comments 注釋,描述在業務中的作用
Generate Parent Sample 如果選中,事務控制器将作為其他取樣器的父級樣本,否則事務控制器僅作為獨立的樣本
Include duration of timer and pre-post processors in generated sample 是否在生成的樣本中包括計時器,預處理和後處理的延遲時間,預設是false

勾選Generate Parent Sample

此時,事務控制器下的各個采樣器隻有在The Tree View Listener裡才能看到。同時,子采樣器的資料也不會在CSV檔案中顯示,但是在XML檔案中可以看到。

添加一個測試計劃,事務控制器下有Login、BeanShell Sampler、Search三個請求,如下圖所示:

JMeter邏輯控制器之Transaction Controller

在View Results Tree可以看到事務控制器嵌套了其他請求,如下圖所示:

JMeter邏輯控制器之Transaction Controller

而在Summary Repor可以看到隻顯示事務控制器的資料,如下圖所示:

JMeter邏輯控制器之Transaction Controller

勾選Include duration of timer and pre-post processors in generated sample

在Search請求下加一個定時器,如下圖所示:

JMeter邏輯控制器之Transaction Controller

在Summary Repor可以看到,事務控制器的時間 = 其他請求的響應時間 + 定時器 + 前後置處理器的時間,如下圖所示:

JMeter邏輯控制器之Transaction Controller

不勾選時,事務控制器的時間 = 其他請求的響應時間,如下圖所示:

JMeter邏輯控制器之Transaction Controller

可以這樣了解,一個事務,就是完成一個業務所調用接口的集合:可能是單個接口和可能是一連串接口。例如:登入業務就是調用一個接口;評論就是登入用戶端+檢視文章+評論多個接口的調用。

之前,我在使用的時候,就會把登入用戶端後,擷取的多個接口做為一個事務來處理;但是,這樣有一個不好的地方就是,有些接口就是登入用戶端後,隻被調用一次,例如:登入用戶端、檢視文章這些接口的調用,就隻會調用一次;有些接口被調用多次,例如:檢視文章、評論等等。是以,最好的方式,就是把需要調用一次的接口,放到Once Only Controller控制器中,多次調用的接口,放到單獨的transaction controller。這個時候,在test plan中,有一個選項,友善檢視運作時候接口的響應情況

繼續閱讀