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