一、軟體效能描述
軟體效能:指軟體執行過程中的響應時間與系統資源消耗情況是否滿足使用者需求
二、效能測試相關術語
(網路傳輸時間+應用伺服器處理時間
+資料庫伺服器處理時間)
2.併發使用者數:同一時刻與伺服器進行資料互動的所有使用者數量
如何確定併發使用者數:參考其他同類產品;分析歷史資料;試上線執行
3.吞吐量:單位時間內伺服器處理的資料量(伺服器處理資料的效率)。
指在一次效能測試過程中網路上傳輸的資料量的總和
單位b/s,體現伺服器承載能力
f = nvn*r / t
f:吞吐量;nvn
:虛擬使用者個數;r:在
t時間內每個虛擬使用者發出的請求位元組數
t:效能測試所用時間
4.吞吐率:單位時間內伺服器返回的的資料量
吞吐率=吞吐量
/測試時間
5.tps:伺服器每秒處理的事務數
6.點選率:每秒使用者向伺服器提交的服務請求數量,點選率值越大,伺服器承受壓力越大
7.資源利用率:伺服器系統中不同硬體資源被使用的程度
資源利用率=資源實際使用量
/總可用資源量
8.效能計數器:描述伺服器或作業系統效能的一些資料指標。主要通過新增計數器來觀察系統資源的使用情況
9.思考時間:模擬使用者在作業系統時,傳送請求的時間間隔
思考時間函式 lr_think_times();
10.事務:就是使用者某一步或幾步操作的集合。不過,我們要保證它有乙個完整意義。比如使用者對某乙個頁面的一次請求,使用者對某系統的一次登入,**使用者對商品的一次確認支付過程。這些我們都可以看作乙個事務。
三、效能測試劃分
1.負載測試:通過對系統不斷的加壓,直到超過預定的指標或者部分資源已達到飽和狀態不能再加壓為止
目的:找到系統最大的負載能力
2.壓力測試:系統已經達到一定的飽和程度,此時系統的處理業務的能力,系統是否會出現錯誤
疲勞測試是壓力測試的一種表現形式
3.配置測試:通過調整系統軟硬體環境,了解不同環境對系統效能的影響,從而找到系統的最優配置
4.併發測試:模擬大量使用者同時訪問同一應用、模組或資料,觀察系統是否存在死鎖、系統處理速度是否明顯下降等問題
5.可靠性測試:系統在一定的業務壓力下,讓系統持續執行一段時間,觀察系統是否達到要求的穩定性
6.基準測試:在一定軟硬體及網路環境下,模擬一定數量虛擬使用者執行一種或多種業務,將測試結果作為基線資料,在系統調優或者系統測評過程中,通過執行相同的業務場景並比較測試結果確定調優是否達到效果或者為系統的選擇提供決策資料
7.各測試執行階段:
編碼階段(發現效能問題):併發測試、壓力測試、配置測試
測試階段(測系統穩定性,對效能進行調優):負載測試、基準測試、配置測試
四、效能測試應用領域
1.能力驗證:驗證系統是否實現所需功能
2.規劃能力:系統的可擴充套件能力
3.效能調優:通過測試來調整系統的環境,最終使系統效能達到最優的狀態
4.缺陷發現:通過各方面的效能測試來尋找系統在上線時可能出現的問題
併發的兩種情況
一種是嚴格意義上的併發,即所有的使用者在同一時刻做同一件事或操作,所有使用者同一時刻做併發登陸,同一時刻做表單提交。
另外一種併發是廣義範圍的併發,多個使用者對系統發出了請求或者進行了操作,但是這些請求或都操作可以是相同的,也可以是不同的。在同一時刻有使用者在登入,有使用者在提交表單。
從伺服器的角度來看併發
如果考慮整個系統執行過程中伺服器所承受的壓力是這樣的:在該系統的執行過程中,把整個執行過程劃分為離散的時間點,在每個點上,都有乙個「同時向服務端傳送請求的客戶數」,這個就是所謂的伺服器所承受的最大併發訪問數。
真正意義上的併發不存在
cpu在乙個時間點上只能幹一件事兒
那麼我們的系統在接到使用者的請求後也要呼叫cpu來完成某些處理,然後返回給使用者。那麼我們對系統有做併發測試是測什麼呢?舉個簡單的例子。假如有一位神醫,他的看病速度非常快,假設他的看病速度是不變的;然後有一群接待人員來接待看病的客人,有成千上萬的病人來看病,接待人員要想各種辦法來做好接待工作,使病人更快的看到病。比如,可以事先諮詢病人得的什麼病,然後將病人進行分類,比如可以擴大接待室,讓更多的病人可以進到醫院來看病等。
神醫就是我們的cpu,接待人員就是我們的系統,病人就使用者,我們做效能測試的目的就是了解接待人員哪個地方給醫院看病造成了瓶頸。只來乙個病人,醫院的看病速度與服務很好。一下子來十萬個病人各種問題就出來了。接待人員的服務態度下降,多餘的人員跟本進不到醫院去,醫院的洗手間不夠用,造成病人無法上則所而離開,這些都屬於系統問題。所以,我們一般測試的目的是看醫院的接待能力。
假設有乙個**,註冊使用者才能登入使用各種功能,如上傳頭像,閱讀專家文章等。該系統有20萬註冊使用者,這就是說有
20萬使用者可以使用這個**的所有功能,202
萬,就是有
2萬人同時用瀏覽器開啟著這個**。
2那麼系統的併發使用者數是多少呢?2萬麼?
no!這22
萬使用者中考察某乙個時間點對使用者發出請求數,可以會大大縮水。那麼,該系統的服務端承受的最大併發訪問數是多少呢?這個取決於業務併發使用者數和業務場景,一般可以通過伺服器日誌的分析得到
合理的響應時間
在網際網路上對於使用者響應時間,有乙個普遍的標準。2/5/10秒原則。
也就是說,在2秒之內給客戶響應被使用者認為是「非常有吸引力」的使用者體驗。在
5秒之內響應客戶被認為「比較不錯」的使用者體驗,在
10秒內給使用者響應被認為「糟糕」的使用者體驗。如果超過
10秒還沒有得到響應,那麼大多使用者會認為這次請求是失敗的。
這裡我們還要考慮乙個使用頻率的概念。
我最早安裝windows系統可能要
1個小時,我們為什麼覺得這很正常,因為我們要很久才裝一次系統,如果系統使用得當,可能乙個系統用幾年不用重灌,假如,我們在系統上裝個任何小軟體都要這麼長時間,那我們一定是無法忍受的。對於軟體控來說,他們會時常安裝各種新鮮有趣的軟體進行使用。
對於乙個稅務報賬系統,該系統的使用者每月使用一次,一次花費3小時進行資料的錄入,當使用者單擊「提交」按鈕後,即使系統在
10分鐘後才給出「處理成功」的訊息,我們也覺得是可以接受的。
因此,在進行效能測試時,「合理的響應時間」取決於使用者的需求,而不能依據測試人員自己設想來決定。
效能測試基礎 效能測試基礎指南
企業對於效能測試工程師的要求 要求熟練掌握至少一種效能測試工具,並且能夠實現效能測試指令碼的開發。能夠獲取 分析 提煉效能需求。能夠根據效能需求去進行測試場景的設計和實現。能夠根據效能的需要進行必要的監控。能夠根據效能測試結果 集合監控 伺服器日誌等資料分析 定位效能瓶頸 能夠提出調優建議。能夠根據...
效能測試基礎
效能測試 效能測試主要是通過大量的併發請求,和資料處理,使系統在高併發的情況下衡量乙個系統的強壯性,可靠性 效能測試的步驟 1 首先了解效能測試的需求 第一點,在需求明確的情況下,直接按照需求進行測試 一般在正規的公司,流程完善,產品和架構設計人員都是可以給得出比較合理的乙個效能測試指標 第二點 在...
效能測試基礎
1 計算機相關的知識。硬體 一般來說,和效能有關的主要有以下幾個 cpu 一般來說,cpu的忙碌程度就反應了當前系統中所執行的任務的多少和執行速度的快慢。記憶體 記憶體分為兩種 物理記憶體和虛擬記憶體。物理記憶體 記憶體條所提供的,讀寫速度快。虛擬記憶體 是從磁碟中劃分出來的,讀寫速度慢。系統原則 ...