1. 程式人生 > >什麼是壓測,為什麼要進行壓力測試?JMETER工具的使用.

什麼是壓測,為什麼要進行壓力測試?JMETER工具的使用.

1.背景介紹

效能測試是通過自動化的測試工具模擬多種正常峰值和異常負載條件來對系統的各項效能指標進行測試。 效能測試包括,負載測試,強度測試,容量測試

通過負載測試,確定在各種工作負載下系統的效能,目標是當負載逐漸增加時,測試系統各項效能指標的變 化的情況.

壓力測試是通過確定一個系統的瓶頸或者不能接受的效能點,來獲得系統能提供的最大服務級別的測試.

在Web效能測試領域,有兩種工具廣泛使用:LoadRunner和JMeter.

2.知識剖析

1.效能測試的目的

效能測試的目的是驗證軟體系統能否達到使用者提出的效能指標,同時發現軟體系統中存在的效能瓶頸, 以優化軟體,最後起到優化系統的目的.包括以下結構方面:

1.評估系統的能力;

2.識別系統中的弱點;

3.系統調優;

4.測試軟體中的問題;

5.驗證穩定性(Resilience)和可靠性(Reliability);

2.效能測試的常見指標

對於B/S架構,一般關注Web伺服器效能指標:

avg rps:平均每秒鐘的響應次數=總次數/秒數
avg time to last byte per terstion(mstes):平均每秒業務指令碼的迭代次數
successful rounds:成功的請求
failed rounds:失敗的請求
successful hits:成功的點選次數
failed hits:失敗的點選次數
hits per second:每秒點選次數
successful hits per second:每秒成功的點選次數
failed hits per second:每秒失敗的點選次數
attempted connections:嘗試連線數
throughput:吞吐率

3.JMeter常用測試單元

1.執行緒組,所有測試計劃的起點,所有的邏輯控制器和取樣器都必須放線上程組之下.常用引數:
設定執行緒數量(Numbers of Threads)
設定執行緒啟動週期(Ramp-Up Period)
設定執行測試指令碼的迴圈次數(Loop Count)
2.控制器
取樣器,被JMeter用來向伺服器傳送請求,並等待響應;
邏輯控制器,控制JMeter的測試邏輯,特別是何時傳送請求.
3.監聽器,提供了對JMeter在測試期間收集到的資訊的訪問方法.

4.定時器,預設情況下,執行緒在傳送請求之間沒有間隔,新增一種定時器,以便設定請求之間間隔多長時間.

5.斷言,檢查從伺服器獲取的響應內容.

6.Sample與取樣器緊密相連,不傳送請求,可以新增或者修改請求.

7.前置處理器,在取樣器發出請求之前做一些特殊操作.

8.後置處理器,在取樣器發出請求之後做一些特殊操作,常用來從響應中提取資料.

4.JMeter執行順序規則

配置元件----前置處理器----定時器----取樣器---- 後置處理器(除非伺服器響應為空)-----斷言(除非伺服器響應為空)----監聽器(除非伺服器響應為空)

5.JMeter測試結果

label:定義HTTP請求名稱
samples:表示這次測試中一共發出了多少個請求
average:平均響應時長,預設情況下是單個request的平均響應時長
median:中位數,50%使用者的響應時長(50%閾值)
90%line:90%使用者的響應時長(90%閾值)
min:訪問頁面的最小響應時長
max:訪問頁面的最大響應時長
error%:錯誤請求數量/請求總數
throughput:預設情況下表示每秒完成的請求數
KB/sec:每秒從伺服器接收到的資料量

3.常見問題

請求資料中有亂碼!

4.解決方案

設定HTTP請求,引數中的值顯示為中文,但系統接受資料時,中文顯示為亂碼;在“檢視結果樹”中,檢視HTTP請求,請求引數中的中文資料顯示亂碼。

在HTTP請求頁面,Content encoding設定為utf-8即可。

6.擴充套件思考

效能測試結果的分析在完成JMeter測試指令碼執行後.首先要做的就是判斷收集到的測試資料是否真實有效,對無效的測試資料進行分析, 無端了浪費時間和精力.通常判斷測試資料是否有效的方法如下:

分析在整個測試執行期間,測試環境是否穩定正常. 常見異常:CPU佔用達到100%,記憶體佔用很高,測試網路出現擁塞導致響應延遲,待測系統引數配置錯誤(JDBC連線池等);
檢查JMeter測試指令碼引數是否設定合理,建行擦JMeter執行模式是否合理,如Ramp-Up Period引數設定.
檢查測試結果是否暴露了系統瓶頸.重點關注異常的測試結果,如果測試結果一切正常,首先需要考慮的是併發數是否足夠多,壓測是否足夠大,或者待測系統是否存在壓力遮蔽機制等.

參考文獻

文獻一:  https://blog.csdn.net/m0_37327416/article/details/78120465

文獻二:  http://www.cnblogs.com/yangxia-test/p/3964881.html<