性能測試的指南:測試類型、性能測試步驟、最佳實踐等!

近期公司為了節省成本搞了一波機房遷移,整合了一些南美部署架構。有一些上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的說法,在開發軟件時,這些信念可能會耗費大量資金和資源:

性能測試是開發的最后一步。
如性能測試最佳實踐一節所述,預測和解決性能問題應該是軟件開發的早期部分。早期實施解決方案的成本將低于軟件開發結束時的主要修復。

更多的硬件可以解決性能問題。
添加處理器、服務器或內存只會增加成本,而不會解決任何問題。更高效的軟件將更好地運行,并避免即使在硬件增加或升級時也可能出現的潛在問題。

測試環境足夠接近。
在與生產環境類似的測試環境中進行性能測試是一種性能測試最佳實踐,這是有原因的。元件之間的差異會顯著影響系統性能。可能不可能在精確的生產環境中進行性能測試,但請嘗試匹配:軟件開發生命周期

硬件組件
操作系統和設置
系統上使用的其他應用程序
數據庫
現在起作用的,是全面起作用的。
小心推斷結果。不要接受一小組性能測試結果,并假設當元素發生變化時,它們將是相同的。而且,它的工作方向相反。不要根據負載測試推斷最低性能和要求。所有假設都應通過性能測試進行驗證。

一個性能測試場景就足夠了。
并非每個性能問題都可以在一個性能測試場景中檢測到。但資源確實限制了可能發生的測試數量。中間是一系列性能測試,針對風險最大的情況,對性能影響最大。此外,在計劃良好和設計良好的性能測試之外,可能會出現問題。監視生產環境還可以檢測性能問題。

測試每個部分等于測試整個系統。
雖然隔離功能以進行性能測試很重要,但單個組件測試結果并不構成系統范圍的評估。但測試系統的所有功能可能不可行。必須使用可用資源設計盡可能完整的性能測試。但要注意哪些東西沒有經過測試。

對他們有用的東西對我們有用。
如果給定的一組用戶確實遇到了復雜性或性能問題,不要將其視為所有用戶的性能測試。使用性能測試確保平臺和配置按預期工作。

軟件開發人員經驗豐富,不需要性能測試。

缺乏經驗并不是績效問題背后的唯一原因。即使是過去創建過免費軟件的開發人員也會犯錯誤。更多的變量發揮作用,特別是當系統中有多個并發用戶時。

總結:

感謝每一個認真閱讀我文章的人!!!

作為一位過來人也是希望大家少走一些彎路,如果你不想再體驗一次學習時找不到資料,沒人解答問題,堅持幾天便放棄的感受的話,在這里我給大家分享一些自動化測試的學習資源,希望能給你前進的路上帶來幫助。

軟件測試面試文檔

我們學習必然是為了找到高薪的工作,下面這些面試題是來自阿里、騰訊、字節等一線互聯網大廠最新的面試資料,并且有字節大佬給出了權威的解答,刷完這一套面試資料相信大家都能找到滿意的工作。

?

視頻文檔獲取方式:
這份文檔和視頻資料,對于想從事【軟件測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!以上均可以分享,點下方進群即可自行領取。??

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/164760.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/164760.shtml
英文地址,請注明出處:http://en.pswp.cn/news/164760.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【深度學習】參數優化和訓練技巧

尋找合適的學習率(learning rate) 學習率是一個非常非常重要的超參數,這個參數呢,面對不同規模、不同batch-size、不同優化方式、不同數據集,其最合適的值都是不確定的,我們無法光憑經驗來準確地確定lr的值,我們唯一可…

6.2.SDP協議

那今天呢?我們來介紹一下sdp協議,那實際上呢?sdp協議非常的簡單。我們如果拿到一個stp的文檔去看的話,那你要分閱里邊的所有的內容會覺得很枯燥,但實際上呢,如果我們按照這張圖所展示的結構去看stp的話。你…

Javascript每天一道算法題(十四)——合并數組區間_中等

文章目錄 1、問題2、示例3、解決方法(0)方法0——雙指針(錯誤思路)(1)方法1——雙指針(正確) 總結 1、問題 以數組 intervals 表示若干個區間的集合,其中單個區間為 inte…

怎么讀一個網絡的代碼

1.網絡代碼怎么來的? 我想要實現一個功能,這個功能是輸入一張圖像,返回一個類別結果。 所以很明確就有三個部分,一個是接受圖像輸入,一個是處理圖像得到處理結果,一個是對處理結果判斷生成結果。 現在想要使…

rocketmq 發送時異常:system busy 和 broker busy 解決方案

之前寫的解決方案,都是基于測試環境測試的.到生產環境之后,正常使用沒有問題,生產環境壓測時,又出現了system busy異常(簡直崩潰).最后在rocketmq群里大佬指導下,終于解決(希望是徹底解決). 下面直接給出結果: 目前通過生產環境各種參數修改測試得出: broker busy異常: 可通…

Using PeopleCode in Application Engine Programs在應用引擎程序中使用PeopleCode

This section provides an overview of PeopleCode and Application Engine programs and discusses how to: 本節概述了PeopleCode和應用程序引擎程序,并討論了如何: Decide when to use PeopleCode.決定何時使用PeopleCode。Consider the program environment.考…

Java之《ATM自動取款機》(面向對象)

《JAVA編程基礎》項目說明 一、項目名稱: 基于JAVA控制臺版本銀行自動取款機 項目要求: 實現銀行自動取款機的以下基本操作功能:讀卡、取款、查詢。(自動取款機中轉賬、修改密碼不作要求) 具體要求: 讀卡…

基于SSM的校園奶茶點單管理系統

基于SSM的校園奶茶點單管理系統的設計與實現~ 開發語言:Java數據庫:MySQL技術:SpringMyBatisSpringMVC工具:IDEA/Ecilpse、Navicat、Maven 系統展示 主頁 奶茶列表 登錄界面 管理員界面 用戶界面 摘要 隨著社會的發展和科技的進…

ubuntu搭建phpmyadmin+wordpress

Ubuntu搭建phpmyadmin wordpress Linux系統設置:Ubuntu 22配置apache2搭建phpmyadmin配置Nginx環境,搭建wordpress Linux系統設置:Ubuntu 22 配置apache2 安裝apache2 sudo apt -y install apache2設置端口號為8080 sudo vim /etc/apache…

paddle detection 訓練參數

#####################################基礎配置##################################### # 檢測算法使用YOLOv3,backbone使用MobileNet_v1,數據集使用roadsign_voc的配置文件模板,本配置文件默認使用單卡,單卡的batch_size=1 # 檢測模型的名稱 architecture: YOLOv3 # 根據…

【CCF-PTA】第03屆Scratch第05題 -- 統計出現次數最多的字

統計出現次數最多的字 【題目描述】 我國自古流傳下來不少膾炙人口的詩歌,各具特色,別具一格。有些詩只用寥寥幾個字,就能描繪出生動的意境。 請找出以下詩篇中出現次數最多的字,如果有多個字出現次數相同,則答案為…

Java中基于SSM框架的數據保存方法與日期處理

? 一、詳解 在SSM框架中,保存數據通常涉及到服務層和數據訪問層。服務層處理業務邏輯,而數據訪問層負責與數據庫進行交互。 二、代碼 Override public void save(Student student) { Date date new Date(); SimpleDateFormat format new Sim…

什么是LLC電路?

LLC電路是由2個電感和1個電容構成的諧振電路,故稱之為LLC; LLC電路主要由三個元件組成:兩個電感分別為變壓器一次側漏感(Lr)和勵磁電感(Lm),電容為變壓器一次側諧振電容(Cr)。這些元件構成了一個諧振回路,其中輸入電感…

【C/PTA】函數專項練習(四)

本文結合PTA專項練習帶領讀者掌握函數,刷題為主注釋為輔,在代碼中理解思路,其它不做過多敘述。 目錄 6-1 計算A[n]1/(1 A[n-1])6-2 遞歸實現順序輸出整數6-3 自然數的位數(遞歸版)6-4 分治法求解金塊問題6-5 漢諾塔6-6 重復顯示字符(遞歸版)…

字母異位詞分組

給你一個字符串數組,請你將 字母異位詞 組合在一起。可以按任意順序返回結果列表。 字母異位詞 是由重新排列源單詞的所有字母得到的一個新單詞。 示例 1: 輸入: strs [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”] 輸出: [[“bat”],[“nat”,“tan…

Android MemoryFile 共享內存

應用場景: 跨進程傳輸大數據,如文件、圖片等; 技術選型: 共享內存–MemoryFile; 優點: 1. 共享內存沒有傳輸大小限制,所以和應用總的分配內存一樣(512MB)&#xff1…

Java 根據文件名獲取文件類型

比如文件名是“測試文件.png”,則獲取的文件類型就是 png 直接上一個通用的方法,拿去直接就能用。 // 比如入參文件名是“測試文件.png”,則出參就是 pngprivate String getFileSuffix(String fileName) {String[] fileStr fileName.split(&…

educoder中共享單車之數據可視化

第1關:繪制地圖 <%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%> <html> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&…

專用設備上的SD卡插入電腦想讀取數據,提示要格式化?

環境&#xff1a; Win10 專業版 車載感應數據專用SD卡 問題描述&#xff1a; 專用設備上的SD&#xff0c;現在把SD卡從設備取出&#xff0c;用讀卡器插入電腦提示要格式化&#xff1f; 解決方案&#xff1a; 1.先進入PE查看SD分區情況&#xff0c;SD格式為ext4 查看文件…

lombok中使用@Builder構造器模式時的默認值問題

這里寫自定義目錄標題 問題case原因解決方案 文章參考來源&#xff1a;https://chenyongjun.vip/articles/107 問題case Lombok 使用廣泛&#xff0c;這里分享一個 Lombok Builder 小 case&#xff0c;今天自己踩了坑。 Data Builder public class User {private String name…