記錄下性能測試常用的幾個指標。
1、TPS
TPS的全稱是Transaction Per Second,即每秒處理的事務數,那什么是事務呢?
衡量一個系統性能的好壞,主要看的是單位時間內,系統可以處理多少業務量。
舉個電商的例子:
1)假設要測試“下單”,那么“下單”業務就可看做是一個事務;
2)假設需要測試“添加購物車+下單”整體業務,那么“添加購物車”和“下單”這2個業務就組成了一個事務,此時TPS就是每秒處理“添加購物車+下單”這個一整個事務的數量。
響應時間單位為秒的情況下,
TPS=1/響應時間*並發數
TPS=並發數/響應時間
在系統達到瓶頸之前,TPS和並發數成正比關系。
2、QPS
QPS的全稱叫Request Per Second,字面意思比較好理解,就是每秒處理的請求數。
如果是測試單接口的情況下,TPS=QPS,例如上面電商例子中的第1)個場景。
3、TOP響應時間
一個請求的響應時間由以下幾部分時間構成。響應時間=網絡傳輸的總時間+各組件業務處理時間。
TOP響應時間是將所有請求的響應時間先從大到小進行排序,計算指定比例的請求都是小於某個時間。
該指標統計的是大多數請求的耗時。用Jmeter進行測試通常看到下面幾個數據:
Top90(90%響應時間):90%的請求耗時都低於某個響應時間
Top95(95%響應時間):95%的請求耗時都低於某個響應時間
Top99(99%響應時間):99%的請求耗時都低於某個響應時間
3、平均響應時間
平均響應時間=所有請求的平均耗時=ART(Average Response Time)
4、並發數/虛擬用戶數
壓測工具中設置的並發線程/進程數量
5、成功率
請求的成功率,一般執行壓測后我們會關注請求或者事務的成功率是多少,一般公司可能要求成功率在99.99%以上。
6、吞吐量
網絡中上行和下行的流量總和,吞吐量代表網絡的流量,TPS越高,吞吐量越大。
注意:我們看到的jmeter聚合報告一般入下圖,下表中的吞吐量實際是我們上文說的TPS或者QPS。如果要計算吞吐量的話應該是接收+發送網絡流量總和。
性能測試的時候關注吞吐量和測試環境網絡帶寬之間的關系,如果吞吐量接近或者等於測試環境帶寬極限,那么很可能存在網絡瓶頸。
7、PV/UV
PV(Page View)頁面/接口的訪問量,UV(Unique Visitor)頁面/接口的每日唯一訪客。
PV/UV的概念好像也是常在電商中出現,一般可能是在性能需求分析的時候提到,比如某頁面每日的PV是多少,UV是多少。
8、集合點
集合點不是指標,是性能測試中的一個概念。
集合點是為了增加瞬間並發壓力的一種機制,在腳本中增加一個標記,所有虛擬用戶執行到標記處會進行等待,等左右用戶都到達后,再同時繼續執行下一步操作。
根據業務來選擇是否需要集合點,如果業務場景是瞬間高並發的,如搶購、秒殺等,需要加集合點。
增加了集合點之后,對服務器來說,會產生一種瞬間高並發,模擬秒殺等場景;同時也會降低服務器平均壓力。