『软件测试5』测开岗只要求会黑白盒测试?NO!还要学会性能测试!
淺談軟件測試中的性能測試
- 一、🤪性能測試概念
- 1、為什么要有性能測試?
- 2、性能測試是什么?
- 3、性能測試的目的
- 二、🤐性能測試指標
- 1、響應時間
- 2、吞吐量
- 3、并發用戶數
- 4、TPS(Transaction Per Second)
- 5、點擊率
- 6、資源利用率
- 三、😶性能測試種類
- 1、負載測試
- 2、壓力測試
- 3、并發測試
- 4、配置測試
- 5、可靠性測試
- 6、容量測試
- 四、😲性能測試流程
- 1、性能測試流程
- 2、性能測試流程分析
- (1)分析性能測試需求
- (2)制定性能測試計劃
- (3)設計測試用例
- (4)編寫性能測試腳本
- (5)測試執行及監控
- (6)運行結果分析
- (7)性能測試報告
- 五、🤪結束語
很多時候,我們都知道軟件有黑白盒測試,但往往還遺漏掉了一個性能測試。
在下面的這篇文章中,就帶領大家來了解性能測試。一起來學習吧~🧐
一、🤪性能測試概念
1、為什么要有性能測試?
(1)2007年10月,北京奧組委實行2008年奧運會門票預售,一時間訂票官網訪問量激增導致系統癱瘓,最終奧運會門票暫停銷售5天。
(2)2009年11月22日,由于圣誕臨近, eBay 網站的商品交易量比去年同期增長 33% ,正是由于多出的這33%使得 eBay 網站不堪重負而崩潰,導致賣家蒙受當日銷售額 80% 的損失,可謂損失慘重。
(3)12306訂票網站,自2010年上線以來就飽受詬病,每年春運期間,總會因為搶票高峰而崩潰,用戶在買票時出現無法登陸的現象。2014年,12306網站甚至出現了安全問題,用戶可以輕易獲取陌生人的身份證號碼、手機號碼等信息。
通過以上例子我們可以清楚的認識到,不管是奧運會的門票預售系統,還是12306的訂票系統崩塌,都是由于軟件系統沒有經過性能測試或者性能測試不充分而引發的問題。因此,作為一名測試人員,除了要對軟件的基本功能測試之外,還需要對軟件性能進行測試,軟件性能測試也是非常重要且非常必要的一項測試。
2、性能測試是什么?
所謂性能測試,就是通過性能測試工具模擬正常、峰值及異常負載狀態下對系統的各項性能指標進行測試的活動。性能測試能夠驗證軟件系統是否達到了用戶期望的性能需求,同時也可以發現系統中可能存在的性能瓶頸及缺陷,從而優化系統的性能。
3、性能測試的目的
性能測試的目的主要有以下四點:
- 驗證系統性能是否滿足預期的性能需求,包括系統的執行效率、穩定性、可靠性、安全性等。
- 分析軟件系統在各種負載水平下的運行狀態,提高性能調整效率。
- 識別系統缺陷,尋找系統中可能存在的性能問題,定位系統瓶頸并解決問題。
- 系統調優,探測系統設計與資源之間的最佳平衡,改善并優化系統的性能。
二、🤐性能測試指標
性能測試指標有以下6個指標:
- 響應時間
- 吞吐量
- 并發用戶數
- TPS (Transaction per Second)
- 點擊率
- 資源利用率
接下來將圍繞著這6個指標進行一一講解。
1、響應時間
響應時間 (Response Time) 系統對用戶請求作出響應所需要的時間。
這個時間是指用戶從軟件客戶端發出請求到用戶接收到返回數據的整個過程所需要的時間,包括各種中間件(如服務器、數據庫等)的處理時間。
如下圖所示:
從上圖中可以看到,從客戶端發出請求到客戶端接收到返回數據的整個過程即為系統的響應時間,為 t1+t2+t3+t4+t5+t6 。
一般來說,響應時間越短,表明軟件的響應速度越快,性能越好。但是響應時間需要與用戶的具體需求相結合,例如火車訂票查詢功能響應時間一般2s內就可以完成,而在網站下載電影時,如果一部電影能夠在幾分鐘內完成下載,則說明該網站就已經很快了,所以需要依據實際情況而定。
2、吞吐量
吞吐量 (Throughput) 是指單位時間內系統能夠完成的工作量,它衡量的是軟件系統服務器的處理能力。
吞吐量的度量單位可以是請求數/秒、頁面數/秒、訪問人數/天、處理業務數/小時等。
吞吐量是軟件系統衡量自身負載能力的一個很重要的指標,吞吐量越大,系統單位時間內處理的數據就越多,系統的負載能力就越強。
3、并發用戶數
并發用戶數是指同一時間請求和訪問的用戶數量。
并發用戶數量越大,對系統的性能影響越大,并發用戶數量較大可能會導致系統響應變慢、系統不穩定等問題。軟件系統在設計時必須要考慮并發訪問的情況,測試工程師在進行性能測試時也必須進行并發訪問的測試。
4、TPS(Transaction Per Second)
TPS 是指系統每秒鐘能夠處理的事務和交易的數量,它是衡量系統處理能力的重要指標。
5、點擊率
點擊率是指用戶每秒向 Web 服務器提交的 HTTP 請求數,這個指標是 Web 應用特有的一個性能指標,通過點擊率可以評估用戶產生的負載量,并且可以判斷系統是否穩定。點擊率只是一個參考指標,幫助衡量 Web 服務器的性能。
6、資源利用率
資源利用率是指軟件對系統資源的使用情況,包括CPU利用率、內存利用率、磁盤利用率等,資源利用率是分析軟件性能瓶頸的重要參數。
三、😶性能測試種類
性能測試種類主要有以下六種:
- 負載測試
- 壓力測試
- 并發測試
- 配置測試
- 可靠性測試
- 容量測試
接下來將圍繞著以上這六種性能測試種類進行講解。
1、負載測試
(1)定義
負載測試是指逐步增加系統負載,測試系統性能的變化,并最終確定在滿足系統性能指標的情況下,系統所能夠承受的最大負載量。
(2)舉個例子
負載測試類似于舉重運動,通過不斷給運動員增加重量,確定運動員身體狀況保持正常的情況下所能舉起的最大重量。
對于負載測試來說,前提是滿足性能指標要求,例如一個軟件系統的響應時間要求不超過 2s ,則在這個前提下,不斷增加用戶訪問量,當訪問量超過1萬人時,系統的響應時間就會變慢,響應時間會超過 2s 。因此,可以確定系統響應時間不超過 2s 的前提下最大負載量是1萬人。
2、壓力測試
(1)定義
壓力測試也叫強度測試,它是指逐步給系統增加壓力,測試系統的性能變化,使系統某些資源達到飽和或系統崩潰的邊緣,從而確定系統所能承受的最大壓力。
(2)壓力測試與負載測試的區別
負載測試是在保持性能指標要求的前提下系統能夠承受的最大負載,而壓力測試則是使系統性能達到極限的狀態。
壓力測試可以揭露那些只有在高負載條件下才會出現的 Bug ,如同步問題、內存泄露等。
(3)峰值測試
性能測試中還有一種壓力測試叫做峰值測試,它是指瞬間(不是逐步加壓)將系統壓力加載到最大,使測試軟件系統在極限壓力下的運行情況。
3、并發測試
(1)定義
并發測試是指通過模擬用戶并發訪問,測試多用戶并發訪問同一個應用、同一個模塊或者數據記錄時是否存在死鎖或其他性能問題。
(2)舉個例子
并發測試一般沒有標準,只是測試并發時會不會出現意外情況,幾乎所有的性能測試都會涉及到一些并發測試,例如多個用戶同時訪問某一條件數據,多個用戶同時在更新數據,那么數據庫可能就會出現訪問錯誤、寫入錯誤等異常情況。
4、配置測試
(1)定義
配置測試是指調整軟件系統的軟硬件環境,測試各種環境對系統性能的影響,從而找到系統各項資源的最優分配原則。
(2)舉個例子
配置測試不改變代碼,只改變軟硬件配置,例如安裝版本更高的數據庫、配置性能更好的CPU、內存等,通過更改外部配置來提高軟件的性能。
5、可靠性測試
(1)定義
可靠性測試是指給系統加載一定的業務壓力,使其持續運行一段時間(如 7*24h ),測試系統在這種條件下是否能夠穩定運行。
6、容量測試
(1)定義
容量測試是指在一定的軟硬件及網絡環境下,測試系統所能支持的最大用戶數、最大存儲量等。
(2)舉個例子
容量測試通常與數據庫、系統資源(如 CPU 、內存、磁盤等)有關,用于規劃將來需求增長(如用戶增長、業務量增加等)時,對數據庫和系統資源的優化。
四、😲性能測試流程
1、性能測試流程
先用一張圖來查看性能測試的整個流程。如下圖所示:
2、性能測試流程分析
(1)分析性能測試需求
在性能測試需求分析階段,測試人員需要收集有關項目的各種資料,并與開發人員進行溝通,對整個項目有一定的了解,針對需要進行性能測試的部分進行分析,確定測試目標。
例如客戶要求軟件產品的查詢功能響應時間不超過 2s ,則需要明確多少用戶量情況下,響應時間不超過 2s 。對于剛上線的產品,用戶量不多,但幾年之后可能用戶量會巨增,那么在性能測試時是否要測試產品的高并發訪問,以及高并發訪問下的響應時間。
(2)制定性能測試計劃
- 確定測試環境: 包括物理環境、生產環境、測試團隊可利用的工具和資源等。
- 確定性能驗收標準: 確定響應時間、吞吐量和系統資源(CPU、內存等)利用總目標和限制。
- 設計測試場景: 對產品業務、用戶使用場景進行分析,設計符合用戶使用習慣的場景,整理出一個業務場景表,為編寫測試腳本提供依據。
- 準備測試數據: 性能測試是模擬現實的使用場景,例如模擬用戶高并發,則需要準備用戶數量、工作時間、測試時長等數據。
(3)設計測試用例
性能測試用例是根據測試場景為測試準備數據,例如模擬用戶高并發,可以分別設計 100個 用戶并發數量、 1000個 用戶并發數量等,此外還要考慮用戶活躍時間、訪問頻率、場景交互等各種情況。測試人員可以根據測試計劃中的業務場景表設計出足夠的測試用例以達到最大的測試覆蓋。
(4)編寫性能測試腳本
- 正確選擇協議。
- 根據工具的支持情況和測試人員熟悉程度選取腳本語言。
- 編寫測試腳本時,要遵循代碼編寫規范,保證代碼的質量。
- 做好腳本的維護管理工作。
(5)測試執行及監控
1)了解幾個指標
性能指標: 本次性能測試要測試的性能指標的變化。
資源占用與釋放情況: CPU 、內存、磁盤、網絡等使用情況。性能測試停止后,各項資源是否能正常釋放以供后續業務使用。
警告信息: 一般軟件系統在出現問題時會發出警告信息,當有警告信息時,測試人員要及時查看。
日志檢查: 經常分析系統日志,包括操作系統、數據庫等日志。
2)結果影響
性能測試監控對性能測試結果分析、對軟件的缺陷分析都起著非常重要的作用。
在測試過程中,如果遇到與預期結果不符合的情況,測試人員要調整系統配置或修改程序代碼來定位問題。
由于性能測試執行過程需要監控的數據復雜多變,它要求測試人員對監控的數據指標有非常清楚的認識,同時還要求測試人員對性能測試工具非常熟悉。作為性能測試人員,應該不斷努力,深入學習,不斷積累知識經驗才能做的更好。
(6)運行結果分析
性能測試完成之后,測試人員需要收集整理測試數據并對數據進行分析,將測試數據與客戶要求的性能指標進行對比,若不滿足客戶的性能要求,需要進行性能調優然后重新測試,直到產品性能滿足客戶需求。
(7)性能測試報告
性能測試完成之后需要編寫性能測試報告,闡述性能測試的目標、性能測試環境、性能測試用例與腳本使用情況、性能測試結果及性能測試過程中遇到的問題和解決辦法等。軟件產品不能只進行一次性能測試,因此性能測試報告需要備案保存,作為下次性能測試的參考。
五、🤪結束語
對于測開人員來說,不能只會黑白盒測試,還要會性能測試。性能測試對于軟件來說也是至關重要的一部分,沒有經過性能測試的軟件一般都會出現bug滿天飛的問題。相信通過上文的了解,大家對性能測試有一個基礎的認識。
性能測試的內容就講到這里啦!如有需要了解軟件測試相關的其他內容,可到『軟件測試』欄目進行查看學習~
同時,有不理解或有誤的地方也歡迎評論區留言或私信我交流~
- 關注公眾號 星期一研究室 ,不定期分享學習干貨,更多有趣的專欄等你解鎖~
- 如果這篇文章對你有用,記得點個贊加個關注再走哦~
總結
以上是生活随笔為你收集整理的『软件测试5』测开岗只要求会黑白盒测试?NO!还要学会性能测试!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 模板编译template的背后,究竟发生
- 下一篇: 过去3个多月的1200个小时里,我收获了