一、TPS
TPS:Transactions Per Second,意思是每秒事務(wù)數(shù),具體事務(wù)的定義,都是人為的,可以一個接口、多個接口、一個業(yè)務(wù)流程等等。一個事務(wù)是指事務(wù)內(nèi)第一個請求發(fā)送到接收到最后一個請求的響應(yīng)的過程,以此來計算使用的時間和完成的事務(wù)個數(shù)。
以單接口定義為事務(wù)為例,每個事務(wù)包括了如下3個過程:
a.向服務(wù)器發(fā)請求
b.服務(wù)器自己的內(nèi)部處理(包含應(yīng)用服務(wù)器、數(shù)據(jù)庫服務(wù)器等)
c.服務(wù)器返回結(jié)果給客戶端
如果每秒能夠完成N次這三個過程,tps就是N;
如果多個接口定義為一個事務(wù),那么,會重復(fù)執(zhí)行abc,完成一次這幾個請求,算做一個tps。
二、QPS
QPS:Queries Per Second,意思是每秒查詢率,是一臺服務(wù)器每秒能夠響應(yīng)的查詢次數(shù)(數(shù)據(jù)庫中的每秒執(zhí)行查詢sql的次數(shù)),顯然,這個不夠全面,不能描述增刪改,所以,不建議用qps來作為系統(tǒng)性能指標(biāo)。
三、區(qū)別
如果是對一個查詢接口(單場景)壓測,且這個接口內(nèi)部不會再去請求其它接口,那么tps=qps,否則,tps≠qps
如果是容量場景,假設(shè)n個接口都是查詢接口,且這個接口內(nèi)部不會再去請求其它接口,qps=n*tps
jmeter聚合報告中,Throughput是用來衡量請求的吞吐量,也就是tps,tps=樣本數(shù)/運行時間;我們定義的是tps,不是qps
如果沒有定義事務(wù),會把每個請求作為一個事務(wù)
總結(jié)
QPS是Query Per Second,是數(shù)據(jù)庫中的概念,每秒執(zhí)行條數(shù)(查詢),被引申到壓測中來了,但是不包括插入、更新、刪除操作,所以不建議用qps來描述系統(tǒng)整體的性能;
建議用tps,這個t,你可以隨意的定義,可以是一個接口,也可以是一個業(yè)務(wù)流程等等。
以上就是“性能測試:TPS和QPS到底有啥區(qū)別呢?”的詳細(xì)內(nèi)容,更多請關(guān)注木子天禾科技其它相關(guān)文章!