近期公司為了節省成本搞了一波機房遷移,整合了一些南美部署架構。有一些上google云和有些下阿里云等大的調整。 在做機房遷移項目當中就需要思考如何進行性能測試,這種大的機房遷移SRE(運維)會針對組件會做一些單組件的性能測試,但是整個遷移之后性能上面會不會整體上達到與遷移之前一致,并不能講的很清楚。 鑒于此作為QA就要針對性的對遷移之前的性能質量做整體評估。 以下是關于性能測試的一些指南。
1.概述
性能測試是一種軟件測試形式,它關注運行系統的系統在特定負載下的性能。這與查找軟件錯誤或缺陷無關。不同的性能測試類型根據基準和標準進行測量。性能測試為開發人員提供了消除瓶頸所需的診斷信息。
在本文中,您將了解:
性能測試類型
如何運行性能測試的步驟
性能測試指標
以及軟件測試最佳實踐
2.軟件性能測試類型
首先,了解軟件在用戶系統上的表現非常重要。在軟件測試期間可以應用不同類型的性能測試。這是一種非功能測試,旨在確定系統的就緒性。(功能測試側重于軟件的各個功能。)
測試類型
負載測試
負載測試會隨著工作負載的增加而衡量系統性能。這種工作負載可能意味著并發的用戶或事務。隨著工作負載的增加,系統會受到監控,以測量響應時間和系統的持續能力。該工作量在正常工作條件的參數范圍內。
壓力測試
與負載測試不同,應力測試(也稱為疲勞測試)旨在測量正常工作條件參數之外的系統性能。該軟件提供了更多可以處理的用戶或事務。壓力測試的目標是測量軟件的穩定性。軟件在什么時候發生故障,軟件如何從故障中恢復?
尖峰測試(pike testing)
尖峰測試是一種壓力測試,當工作負載快速且重復地大幅增加時,它會評估軟件性能。短時間內工作量超出正常預期。
耐久性試驗(Endurance testing)
耐久性測試(也稱為浸泡測試)是對軟件如何在長時間內以正常工作負載執行的評估。耐久性測試的目標是檢查系統問題,如內存泄漏。(當系統無法釋放丟棄的內存時,就會發生內存泄漏。內存泄漏可能會影響系統性能或導致系統失敗。)
可擴展性測試(Scalability testing)
可擴展性測試用于確定軟件是否有效地處理不斷增加的工作負載。這可以通過在監視系統性能的同時逐漸增加用戶負載或數據量來確定。此外,當CPU和內存等資源發生變化時,工作負載可能保持在相同的水平。
體積測試(Volume testing)
批量測試確定了軟件對大量預測數據的執行效率。它也被稱為洪水測試,因為測試用數據淹沒了系統。
性能測試中觀察到的最常見問題
在軟件性能測試期間,開發人員正在尋找性能癥狀和問題。
速度問題——例如響應慢和加載時間長——經常被觀察到并解決。
可以觀察到其他性能問題:
瓶頸-當數據流中斷或停止時,因為沒有足夠的容量來處理工作負載,就會出現瓶頸。
可擴展性差-如果軟件無法處理所需數量的并發任務,結果可能會延遲,錯誤可能會增加,或者可能會發生其他影響:
磁盤使用情況
CPU使用率
內存泄漏
操作系統限制
網絡配置不良
軟件配置問題—通常設置的級別不足以處理工作負載。
硬件資源不足-性能測試可能顯示物理內存限制或CPU性能低下。
現在我也找了很多測試的朋友,做了一個分享技術的交流群,共享了很多我們收集的技術文檔和視頻教程。
如果你不想再體驗自學時找不到資源,沒人解答問題,堅持幾天便放棄的感受
可以加入我們一起交流。而且還有很多在自動化,性能,安全,測試開發等等方面有一定建樹的技術大牛
分享他們的經驗,還會分享很多直播講座和技術沙龍
可以免費學習!劃重點!開源的!!!
qq群號:822269834
?3.七個性能測試步驟
也稱為測試臺,測試環境是建立軟件、硬件和網絡以執行性能測試的環境。要使用測試環境進行性能測試,開發人員可以使用以下七個步驟:
1.確定測試環境。
通過識別可用的硬件、軟件、網絡配置和工具,測試團隊可以盡早設計測試并識別性能測試挑戰。性能測試環境選項包括:
生產系統子集,具有較少的低規格服務器
具有較少相同規格服務器的生產系統子集
生產系統副本
實際生產系統
2.確定績效指標。
除了確定響應時間、吞吐量和約束等指標外,還要確定性能測試的成功標準。
3.計劃和設計性能測試。
確定考慮用戶可變性、測試數據和目標度量的性能測試場景。這將創建一個或兩個模型。
4.配置測試環境。
準備測試環境的要素和監控資源所需的儀器。
5.實施測試設計。
開發測試。
6.執行測試。
除了運行性能測試之外,還要監視和捕獲生成的數據。
7.分析、報告、重新測試。
分析數據并分享結果。使用相同的參數和不同的參數再次運行性能測試。
衡量哪些性能測試指標
需要度量來理解性能測試的質量和有效性。除非進行測量,否則無法進行改進。需要解釋的兩個定義:
測量值
-正在收集的數據,例如響應請求所需的秒數。
度量
-使用度量來定義結果質量的計算,例如平均響應時間(總響應時間/請求)。
衡量速度、可伸縮性和穩定性的方法很多,但不能期望每一輪性能測試都使用所有這些方法。在性能測試中使用的指標中,通常使用以下指標:
響應時間
發送請求和獲得響應的總時間。
等待時間
也稱為平均延遲,它告訴告訴在發送請求后接收第一個字節需要多長時間。
平均加載時間
從用戶的角度來看,交付每個請求所需的平均時間是質量的主要指標。
峰值響應時間
這是對完成請求所需的最長時間的度量。顯著長于平均值的峰值響應時間可能表明會產生問題的異常。
錯誤率軟件測試
此計算是與所有請求相比導致錯誤的請求的百分比。這些錯誤通常發生在負載超過容量時。
并發用戶
這是最常見的負載衡量標準,即任何時候有多少活躍用戶。也稱為負載大小。
每秒請求數
處理了多少請求。
事務通過/失敗
成功或不成功請求總數的度量。
吞吐量
以每秒千字節為單位衡量,吞吐量顯示測試期間使用的帶寬量。
CPU利用率
CPU處理請求所需的時間。
內存利用率
處理請求需要多少內存。
4. 性能測試最佳實踐
也許性能測試最重要的提示是盡早測試,經常測試。單個測試不會告訴開發人員他們需要知道的所有信息。成功的性能測試是一系列重復和較小的測試:
在開發過程中盡早測試。不要在項目結束時等待并匆忙進行性能測試。
性能測試不僅僅針對已完成的項目。測試單個單元或模塊是有價值的。
進行多項性能測試,以確保一致的結果并確定指標平均值。
應用程序通常涉及多個系統,如數據庫、服務器和服務。單獨以及一起測試各個單元。
除了重復測試之外,通過遵循一系列性能測試最佳實踐,性能測試將更加成功:
讓開發人員、IT人員和測試人員參與創建性能測試環境。
記住,真正的人將使用正在進行性能測試的軟件。確定結果將如何影響用戶,而不僅僅是測試環境服務器。
超越性能測試參數。通過規劃盡可能多地考慮用戶活動的測試環境來開發模型。
基線測量為確定成功或失敗提供了一個起點。
性能測試最好在盡可能接近生產系統的測試環境中進行。
將性能測試環境與用于質量保證測試的環境隔離開來。
沒有任何性能測試工具可以完成所需的一切。有限的資源可能會進一步限制選擇。研究合適的性能測試工具。
保持測試環境盡可能一致。
計算平均值將提供可操作的指標。跟蹤異常值也有價值。這些極端測量可能會揭示出可能的故障。
在準備共享性能測試結果的報告時,請考慮受眾。此外,在報告中包括任何系統和軟件更改。
五種常見的性能測試錯誤
性能測試時,某些錯誤可能導致不可靠的結果:
沒有足夠的時間進行測試。
不涉及開發人員。
沒有使用類似于生產系統的QA系統。
未充分調整軟件。
沒有故障排除計劃。
性能測試謬論
性能測試錯誤可能導致錯誤或未能遵循性能測試最佳實踐。根據Sofia Palamarchuk的說法,在開發軟件時,這些信念可能會耗費大量資金和資源:
性能測試是開發的最后一步。
如性能測試最佳實踐一節所述,預測和解決性能問題應該是軟件開發的早期部分。早期實施解決方案的成本將低于軟件開發結束時的主要修復。
更多的硬件可以解決性能問題。
添加處理器、服務器或內存只會增加成本,而不會解決任何問題。更高效的軟件將更好地運行,并避免即使在硬件增加或升級時也可能出現的潛在問題。
測試環境足夠接近。
在與生產環境類似的測試環境中進行性能測試是一種性能測試最佳實踐,這是有原因的。元件之間的差異會顯著影響系統性能。可能不可能在精確的生產環境中進行性能測試,但請嘗試匹配:軟件開發生命周期
硬件組件
操作系統和設置
系統上使用的其他應用程序
數據庫
現在起作用的,是全面起作用的。
小心推斷結果。不要接受一小組性能測試結果,并假設當元素發生變化時,它們將是相同的。而且,它的工作方向相反。不要根據負載測試推斷最低性能和要求。所有假設都應通過性能測試進行驗證。
一個性能測試場景就足夠了。
并非每個性能問題都可以在一個性能測試場景中檢測到。但資源確實限制了可能發生的測試數量。中間是一系列性能測試,針對風險最大的情況,對性能影響最大。此外,在計劃良好和設計良好的性能測試之外,可能會出現問題。監視生產環境還可以檢測性能問題。
測試每個部分等于測試整個系統。
雖然隔離功能以進行性能測試很重要,但單個組件測試結果并不構成系統范圍的評估。但測試系統的所有功能可能不可行。必須使用可用資源設計盡可能完整的性能測試。但要注意哪些東西沒有經過測試。
對他們有用的東西對我們有用。
如果給定的一組用戶確實遇到了復雜性或性能問題,不要將其視為所有用戶的性能測試。使用性能測試確保平臺和配置按預期工作。
軟件開發人員經驗豐富,不需要性能測試。
缺乏經驗并不是績效問題背后的唯一原因。即使是過去創建過免費軟件的開發人員也會犯錯誤。更多的變量發揮作用,特別是當系統中有多個并發用戶時。
總結:
感謝每一個認真閱讀我文章的人!!!
作為一位過來人也是希望大家少走一些彎路,如果你不想再體驗一次學習時找不到資料,沒人解答問題,堅持幾天便放棄的感受的話,在這里我給大家分享一些自動化測試的學習資源,希望能給你前進的路上帶來幫助。
軟件測試面試文檔
我們學習必然是為了找到高薪的工作,下面這些面試題是來自阿里、騰訊、字節等一線互聯網大廠最新的面試資料,并且有字節大佬給出了權威的解答,刷完這一套面試資料相信大家都能找到滿意的工作。
?
視頻文檔獲取方式:
這份文檔和視頻資料,對于想從事【軟件測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!以上均可以分享,點下方進群即可自行領取。??