摘要:認為就等于性能測試,其實這是不對的。性能測試定義指通過自動化的測試工具模擬多種正常峰值以及異常負載條件來對系統的各項性能指標進行測試。另外,從業務角度來說也可以使用訪問人數天或頁面訪問量天做為單位。
隨著軟件行業的快速發展,現代的軟件系統越來越復雜,功能越來越多,測試人員除了需要保證基本的功能測試質量,性能也隨越來越受到人們的關注。但是一提到性能測試,很多人就直接連想到Jmeter。認為LR就等于性能測試,其實這是不對的。Jmeter只是性能測試的一個工具,但性能測試不僅僅是Jmeter。本文會從以下幾個方面介紹基礎的性能測試理論,后續也會持續更新相關文章,盡量理論結合實踐,讓性能測試學習不在是工具的學習。
定義:軟件的性能是軟件的一種非功能特性,它關注的不是軟件是否能夠完成特定的功能,而是在完成該功能時展示出來的及時性。
由定義可知性能關注的是軟件的非功能特性,所以一般來說性能測試介入的時機是在功能測試完成之后。另外,由定義中的及時性可知性能也是一種指標,可以用時間或其它指標來衡量,通常我們會使用某些工具或手段來檢測軟件的某些指標是否達到了要求,這就是性能測試。
性能測試定義:指通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項性能指標進行測試。
不同的人由于人生觀、世界觀、價值觀以及教育背景、知識體系、人生閱歷的不同,對于同一事物或問題的看法可能不同。對于軟件性能也是如此,不同的人由于視角的不同,所關注的點也可能不同。下面來看看在不同的人群眼中性能分別是什么樣的。
用戶眼中的性能
開發眼中的性能
系統管理員眼中的性能
測試眼中的性能是什么樣的呢?
測試人員通常是做為軟件質量控制的一個角色,不僅僅是找bug,需要對整個軟件的質量負責,性能也屬于質量的一部分,因此測試人員眼中的性能應該是全面的,考慮的東西也需要全面:
1、測試人員需要考慮全面的性能,包括用戶、開發、管理員等各個視角的性能。
2、測試人員在做性能測試時除開要關注表面的現象如響應時間,也需要關注本質,比如用戶看不到的服務器資料利用率, ?架構設計是否合理?代碼是否合理等方方面面。
基準測試:在給系統施加較低壓力時,查看系統的運行狀況并記錄相關數據做為基礎參考
負載測試:是指對系統不斷地增加壓力或增加一定壓力下的持續時間,直到系統的某項或多項性能指標達到安全臨界值,例如某種資源已經達到飽和狀態等 。
壓力測試:壓力測試是評估系統處于或超過預期負載時系統的運行情況,關注點在于系統在峰值負載或超出最大載荷情況下的處理能力。
穩定性測試:在給系統加載一定業務壓力的情況下,使系統運行一段時間,以此檢測系統是否穩定。
并發測試:測試多個用戶同時訪問同一個應用、同一個模塊或者數據記錄時是否存在死鎖或者其他性能問題,
1、響應時間
a)定義:從用戶發送一個請求到用戶接收到服務器返回的響應數據這段時間就是響應時間
b) 關鍵路徑:下圖為一次http請求經過的路徑,請求會經過網絡發送到web服務器進行處理,如果需要操作DB,再由網絡轉發到數據庫進行處理,然后返回值給web服務器,web服務器最后把結果數據通過網絡返回給客戶端。
c) 計算方法:Response time = (N1+N2+N3+N4)+ (A1+A2+a3),即:(網絡時間 + 應用程序處理時間)
d) 響應時間-負載對應關系:
圖中拐點說明:
1、響應時間突然增加
2、意味著系統的一種或多種資源利用達到的極限
3、通常可以利用拐點來進行性能測試分析與定位
2、吞吐量
a)定義:單位時間內系統處理的客戶端請求的數量
b)計算單位:一般使用請求數/秒做為吞吐量的單位,可以使用 頁面數/秒表表示。
另外,從業務角度來說也可以使用 訪問人數 /天 或 頁面訪問量/天 做為單位。
c)計算方法:Throughput = (number of requests) / (total time).
d)吞吐量-負載對應關系:
圖中拐點說明:
1、吞吐量逐漸達到飽和
2、意味著系統的一種或多種資源利用達到的極限
3、通常可以利用拐點來進行性能測試分析與定位
?
3、并發數:
并發用戶數:某一物理時刻同時向系統提交請求的用戶數,提交的請求可能是同一個場景或功能,也可以 是不同場景或功能。
在線用戶數:某段時間內訪問系統的用戶數,這些用戶并不一定同時向系統提交請求
系統用戶數:系統注冊的總用戶數據
三者之間的關系:系統用戶數 >= 在線用戶數 >= 并發用戶數
?
4、資源利用率
a) 定義:指的是對不同系統資源的使用程度,通常以占用最大值的百分比來衡量
b) 通常需要關注的服務器資源如下:
1、CPU:就像人的大腦,主要負責相關事情的判斷以及實際處理的機制
2、內存:大腦中的記憶塊區,將眼睛,皮膚等收集到的信息記錄起來的地方,以供cpu進行判斷,但是是臨時的,訪問速度快,如果關機或斷電這里的數據會消失。
3、磁盤IO:大腦中的記憶區塊,將重要的數據保存起來(永久保存,關機或斷電不會丟失,速度慢),以便將來再次使用這些數據。
4、網絡:
c)資源利用-負載對應關系:
圖中拐點說明:
1、服務器某個資源使用逐漸達到飽和
2、通常可以利用拐點來進行性能測試分析與定位
5、其它常用概念:
a) TPS:Transactions Per Second,每秒事務數
b)思考時間:用戶每個操作后的暫停時間,或者叫操作之間的間隔時間,此時間內是不對服務器產生壓力的
c) 點擊數:每秒鐘用戶向WEB服務器提交的HTTP請求數。這個指標是WEB應用特有的一個指標:WEB應用是"請求-響應"模式,用戶發出一次申請,服務器就要處理一次,所以點擊是WEB應用能夠處理的交易的最小單位。如果把每次點擊定義為一個交易,點擊率和TPS就是一個概念。容易看出,點擊率越大,對服務器的壓力越大。點擊率只是一個性能參考指標,重要的是分析點擊時產生的影響。需要注意的是,這里的點擊并非指鼠標的一次單擊操作,因為在一次單擊操作中,客戶端可能向服務器發出多個HTTP請求.
d)PV:訪問一個URL,產生一個PV(Page View,頁面訪問量),每日每個網站的總PV量是形容一個 網站規模的重要指標。
UV:作為一個獨立的用戶,訪問站點的所有頁面均算作一個UV(Unique Visitor,用戶訪問)
上面介紹了很多性能測試中的基本概念,比較抽象,可以通過性能測試理發店模型 或 地鐵進站模型來幫忙我們更好的理解這些概念。這里不做詳細介紹了,需要的可直接查看原文。
需要掌握的知識——
掌握一門編程語言
掌握計算機原理和操作系統知識
良好的網絡基礎
掌握數據庫知識
中間件(apache,tomcat)
常用抓包工具
性能測試工具
最后感謝每一個認真閱讀我文章的人,看著粉絲一路的上漲和關注,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:
?這些資料,對于【軟件測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴上萬個測試工程師們走過最艱難的路程,希望也能幫助到你!
在我的QQ技術交流群里(技術交流和資源共享,廣告勿擾)
可以自助拿走,群號:310357728群里的免費資料都是筆者十多年測試生涯的精華。還有同行大神一起交流技術哦
如果對你有幫助的話,點個贊收個藏,給作者一個鼓勵。也方便你下次能夠快速查找。
?
?
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/120793.html
摘要:在這個階段,學習工具什么的,重點在于接口測試的學習,所有的工具的學習,都是在為了接口測試的學習做鋪墊。接口測試工具的使用。 很多朋友想要入行軟件測試,但是都不知道該怎么學。 抽個時間簡單的給大家說下,對于0基礎的朋友,應該怎么去學習軟件測試。 學習軟件測試有2條路可以選。 最省事的當然是找個...
摘要:在這種情況下,跟繼續死熬下去相比,轉行,或許是最不壞的選擇。轉行是個不容易的過程,轉行之后的技能積累和學習過程也是不容易的。最好是有經驗的人帶你,有大腿抱,學習效率極高,這個我深有體會。 如題,本人一個普通二本大學機械專業畢業,14年畢業,16年轉行,目前做IT行業的軟件測試已經有3年多,...
摘要:而性能測試卻需要顧及方方面面。測試人員眼中的性能測試需要考慮全面的性能,包括用戶開發管理員等各個視角的性能。性能測試場景可理解為一個具體的測試用例。響應時間性能測試中衡量交易性能的重要手段。通常表示一次交易申請和響應返回的過程。 ??????? 大家好,我們本章開始學習Jmeter,后續還會...
摘要:年月份,從一個房產銷售轉變成月薪的軟件測試工程師,如果自己還沒有拿到多份入職,可能自己也不能相信自己也可以變得這么優秀。在學習軟件測試的道路上,其實自己也曾懷疑過自己的能力。后來通過之前做銷售的同事了解到已經有人轉行做過測試了。 塵埃未定,你我皆是黑馬,軟件測試這個崗位也可帶我們乘風破浪。 ...
摘要:在這篇文章中,我們將通過使用來測試數據庫訪問并生成對應的測試報告,來學習使用這款性能測試工具。這兩個參數可以用來控制具體測試的執行次數,比如將線程數設置為,重復執行次數設置為,那么相應測試將執行次。 ...
閱讀 3215·2021-11-24 09:39
閱讀 2944·2021-11-23 09:51
閱讀 899·2021-11-18 10:07
閱讀 3550·2021-10-11 10:57
閱讀 2757·2021-10-08 10:04
閱讀 3010·2021-09-26 10:11
閱讀 1056·2021-09-23 11:21
閱讀 2797·2019-08-29 17:28