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

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

今天給大家分享一下,修真院官網JAVA任務6中問題,什麼是壓測,為什麼要進行壓力測試?Jmeter工具的使用?

一、背景介紹

負載測試(LoadTest)、壓力測試(StressTest)、容量測試(CapabilityTest)與性能測試(PerformanceTest)是相互關係?

簡單講性能測試包括負載測試、壓力測試和容量測試三種主要測試類型和其他測試類型。

性能測試就是用來測試軟件在系統中的運行性能的。可以對單獨模塊測試,但只有整個系統集成後測試的性能才是真正的性能;

負載測試是為了檢驗系統在給定負載下是否能達到預期性能指標;

容量測試針對數據庫而言,是在數據庫中有較大數量的數據記錄情況下對系統進行的測試;

壓力測試是通過不斷向被測系統施加“壓力”,測試系統在壓力情況下的性能表現,考察當前軟硬件環境下系統所能承受的最大負荷並幫助找出系統瓶頸所在,也就是我們可以模擬巨大的工作負荷以查看應用程序在峰值使用情況下如何執行操作。

Web服務處於分佈式計算的核心位置,它們之間的交互通常很難測試。分佈式開發、大型的開發者團隊以及對代碼日益組件化的期望都有可能使Web服務的開發變得越來越容易隱藏錯誤。這些類型的錯誤極難檢測出來。壓力測試是檢測這類代碼錯誤的一種有效方法,但是隻有在壓力系統設計得比較有效的情況下才能發揮作用。

壓力測試考察當前軟硬件環境下系統所能承受的最大負荷並幫助找出系統瓶頸所在。壓測都是為了系統在線上的處理能力和穩定性維持在一個標準範圍內,做到心中有數。

使用壓力測試,您有希望找到很多種用其他測試方法更難發現的錯誤。有兩種錯誤類型是:內存洩漏,併發與同步。

有效的壓力測試系統將應用以下這些關鍵條件:重複,併發,量級,隨機變化。

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:每秒從服務器接收到的數據量

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

3.常見問題

1、吞吐量與帶寬的區別?

2、用戶併發數量?

3、點擊率與TPS的區別?

4.解決方案

1、吞吐量和帶寬是很容易搞混的一個詞,兩者的單位都是Mbps.先讓我們來看兩者對應的英語, 吞吐 量:throughput ; 帶寬: Max net bitrate 。當我們討論通信鏈路的帶寬時,一般是指鏈路上每秒所能傳送的比特數。 我們可以說以太網的帶寬是10Mbps。但是,我們需要區分鏈路上的可用帶寬(帶 寬)與實際鏈路中每秒所能傳送的比特數(吞吐量)。 我們傾向於用“吞吐量”一次來表示一個系統的測試性能。這樣,因為實現受各種低效率因素的影響, 所以由 一段帶寬為10Mbps的鏈路連接的一對節點可能只達到2Mbps的吞吐量。 這樣就意味著,一個主機上的應用能夠以2Mbps的速度向另外的一個主機發送 數據。

2、併發一般分為2種情況。一種是嚴格意義上的併發,即所有的用戶在同一時刻做同一件 事情或者操作,這種操作一般指做同一類型的業務。比如在信用卡審批業務中,一定數目的用戶在同一時刻對已經完成的審批業務進行提交;還有一種特例,即所有 用戶進行完全一樣的操作,例如在信用卡審批業務中,所有的用戶可以一起申請業務,或者修改同一條記錄。另外一種併發是廣義範圍的併發。這種併發與前一種併發的區別是,儘管多個用戶對系統發出了請求或者進行了操作,但是這些請求或者操作可以是相同的,也可以是不同的。對整個系統而言,仍然是有很多用戶同時對系統進行操作,因此也屬於併發的範疇。

3、每秒鐘用戶向WEB服務器提 交的HTTP請求數.這個指標是WEB應用特有的一個指標:WEB應用是"請求-響應"模式,用戶發出一次申請,服務器就要處理一次,所以點擊是WEB應 用能夠處理的交易的最小單位.如果把每次點擊定義為一個交易,點擊率和TPS就是一個概念.容易看出,點擊率越大,對服務器的壓力越大.點擊率只是一個性 能參考指標,重要的是分析點擊時產生的影響。需要注意的是,這裡的點擊並非指鼠標的一次單擊操作,因為在一次單擊操作中,客戶端可能向服務器發出多個 HTTP請求.

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


分享到:


相關文章: