Jmeter性能測試系列-性能測試需求分析

性能測試需求分析

性能測試需求分析與傳統的功能測試需求有所不同,功能測試需求分析重點在于從用戶層面分析被測對象的功能性、易用性等質量特性,性能測試則需要從終端用戶應用、系統架構設計、硬件配置等多個緯度分析系統可能存在性能瓶頸的業務。

性能測試必要性評估

任何項目在開展性能測試活動前都需要進行必要性評估。通過必要性評估活動,確認被測對象是否有必要實施性能測試活動,千萬不可為了性能而性能。

通常情況下,必要性評估可以通過設定不同條件、不同權重進行分析,將評估項分為關鍵評估項和一般評估項兩種。關鍵評估項,只要有一項符合,則必須開展性能測試,而一般評估項,可通過加權計算,超過60分,則需開展性能測試。

軟件測試活動中,根據測試要求可分為功能測試與非功能測試。非功能測試,通常指的即是性能測試。當然,具體情況具體分析。

常見性能測試關鍵評估項如下:

1. 被測對象需經過主管部門或監管單位審查、認可,需提供性能測試報告。目前,很多企業的軟件產品在正式上市對外銷售、應用時,政府機關、主管部門或監管單位,可能需要其出具功能測試報告、性能測試報告,甚至是第三方測試報告,這種情況下,必須進行性能測試;

2. 涉及財產生命安全的系統。通常情況,電商系統、金融業務系統、醫療健康評估,涉及用戶或行方資金交易,生命安全類的,需要進行性能測試;

3. 首次投產的大型系統,具有大量用戶使用的核心業務;

4. 系統核心數據庫、業務邏輯、軟硬件升級。與歷史系統對比,系統核心數據庫、業務邏輯調整、軟件硬件設備升級,同樣需要實施性能測試;

5. 歷史版本存在重大非功能缺陷或風險較大的未評估項;

6. 業務量、用戶量、節點增長30%以上。系統升級后,業務量、用戶量、應用節點,增長量在30%以上的,具體數值可根據實際情況調整。應用節點增長一般指甲方因業務需求,增加應用節點,銀行拓展分行、分中心、分公司、營業網點等;

7. 系統架構發生重大變化。不同的系統架構可能存在較大的性能差異,因此在系統架構發生變化后,必須實施性能測試,并且在此過程中,無法通過類推的思路推斷架構變化后的系統性能;

8. 生產環境非功能嚴重缺陷修復后。生產環境在使用過程中產生重大非功能性缺陷成功修復后,需重新開展性能測試活動,以驗證修復活動是否對生產環境造成不良影響。

以上僅僅列出筆者在日常性能測試活動參考的關鍵評估項,對于不同行業,不同測試對象可能存在的不同的關鍵評估項,讀者可自行增減。

常見的性能測試一般評估項,主要從單次版本考慮,如果是平臺性的,則為關鍵評估項,如果是單次版本,單個組件或業務,則從以下幾個一般評估項評估權重:

1. 是否在平臺中處于核心位置(15分);

2. 是否有升級,且升級內容中包含了外部系統對接接口、支付接口、Web Service調用接口等與其他系統關聯接口(20分);

3. 是否存在部署方式調整或優化(15分);

4. 是否增加了性能風險較高的調整(20分);

5. 是否存在客戶要求必須測試的組件或業務流程(20分);

6. 是否涉及多個功能缺陷的修復,且流程發生較大變化(10分)。

如果上述一般評估項,總計分值超過60分,則需進行性能測試。

以本ECShop平臺為例,通過針對上述關鍵評估項及一般評估項的評估,滿足關鍵評估項中的第三條:首次投產的大型系統,具有大量用戶使用的核心業務”,因此本ECShop平臺的性能測試活動必須開展。

性能測試工具選型

通過測試必要性評估,確定了需要對被測對象實施性能測試后,則需要考慮采用哪種性能測試方式。根據被測對象的業務特性和架構設計,可以采用以下兩種方式開展有效的性能測試活動。

如果被測對象為批處理方式實現,并且在數據庫中設立起始與終止標識字段,則可以利用存儲過程或發起批處理的方式進行,資源監控可以利用監控腳本如python腳本、shell腳本或其他監控工具,最終統計時,以結束時間減去開始時間,則可獲得交易時間,并可根據每筆交易獲得平均交易時間,相對來說較為方便。

如果被測對象不是批處理模式,且可能存在大量數據交互,則可能需要采用專業的性能測試工具來實現。一般而言,業內常用的性能測試工具主要要開源的Jmeter和商用的HP公司的LoadRunner。

Jmeter是個開源的性能測試工具,目前在市場中的熱度很高,不依賴于界面,功能測試的腳本同樣可以作為性能測試腳本運行,對測試工程師技術技能要求不高,而且提供了參數化、函數、關聯等功能便于腳本的優化與擴展。

LoadRunner在商用領域一枝獨秀,很多年保持排前的市場占有率,與Jmeter相比,LoadRunner具有強大的腳本開發功能、完善的函數庫及結果分析功能。對測試工程師技術要求相對較高,但因其在業內流行很多年,LoadRunner應用的資料相對于Jmeter較多,便于學習與應用。

企業在選擇性能測試工具時,如有條件可以自己根據實際測試需求自定義開發測試工具,也可以選擇市場上常用的測試工具,通常選擇時需考慮以下幾個問題:

1. 能否自定義開發,更符合實際測試需求;

2. 商用的測試工具所需的成本,企業能否承受;

3. 采購的測試工具是否提供了完善的服務、細致的培訓;

4. 團隊人員能否掌握測試活動所需的工具技能。

開源是行業趨勢,本書案例項目用開源性能工具Jmeter實施性能測試。

性能測試需求分析

與功能測試需求分析一樣,性能測試同樣需要針對被測對象進行需求分析。一般而言,用戶或產品團隊設定性能測試需求時,僅會表述字面意義上需求,如“系統TPS需達到300以上,單筆交易時間不超過3秒”等。需要性能測試工程師結合用戶需求及性能測試活動本身需求進行顯性與隱性性能測試需求的分解與提取。

隨著互聯網技術的飛速發展,互聯網應用架構越來越復雜,運營系統涉及的利益相關方越來越多,因此,在性能測試工作實施過程中,需從不同的用戶層面分析待測需求。

確定性能測試的必要性后,性能測試工程師主要從以下兩個用戶方確定性能測試需求:

業務用戶

1. 用戶頻繁使用,且存在大量用戶使用的業務流程;

2. 交易占比較高,日常占比在80%以上甚至更高的業務流程;

3. 特殊交易日或峰值交易占比80%以上甚至更高的業務流程;

4. 性能較差且有過調整的業務流程;

5. 特殊業務場景;

6. 核心業務發生重大流程調整的業務流程。

以上從業務用戶層面,考慮的可能需要進行性能測試的點。實際實施過程中,如果可能,可向終端用戶調研。

項目團隊

1. 曾經測過性能后調整了架構設計的業務;

2. 邏輯復雜,關鍵的業務;

3. 可能消耗大量資源的業務;

4. 與外部系統存在接口調用,且有大量數據交互的業務;

5. 調用第三方業務組件,邏輯復雜的業務。

以上從項目開發角度考慮可能需要進行性能測試業務流程,性能測試工程師需對被測對象深入了解,并且需要研發團隊配合。

除上述兩種用戶,還可能包括運營團隊,調研未來業務發展規劃,系統需滿足未來業務需求的可能性。

性能測試需求評審

確定性能測試需求后,如有必要,需進行某種程度的測試需求評審活動。性能測試需求評審與功能測試需求評審類似,都需關注需求本身的可測性、一致性及正確性。

可測性

軟件可測性,通常理解為軟件本身是否具備實施測試的條件,是否便于發現缺陷及定位缺陷。

在一定的時間及成本范圍內,構建測試環境,設計及執行測試用例,測試工程師能夠相對便捷的發現、定位缺陷,從而協助研發人員解決對應的缺陷,無論是功能測試,還是性能測試,都需要被測對象具備上述的可測試特性。

性能測試活動與功能測試活動有個顯著的特點是被測對象運行環境要求不同。實施功能測試時,只要被測對象能夠在合理的運行環境中正常運行即可,即使測試環境與生產環境可能存在較大的差異,性能測試則不同,一定需模擬盡可能真實的運行環境。當測試環境與實際生產環境差異較大時,性能測試結果往往不被接受,如果在性能測試實施過程中,無法搭建相對真實的測試環境,即可認為被測對象不具備性能的可測性。

一致性

性能測試需求一致性,主要關注用戶需求、生產需求、運營需求幾個方面。通過對性能測試需求的分析,判斷本次測試需求是否滿足用戶需求規格說明書中明確列出的性能需求項。生產需求,則是關注被測對象運行的真實性,從而在測試結束后能夠提供相對準確的數據依據。

運營需求,需以歷史數據或者現今運營數據為基礎,規劃未來業務發展的可能性,從而使得被測對象性能指標具有一定的冗余度。

通過性能測試需求評審活動,確定本次性能需求與上述的關注點一致。

正確性

在可測性與一致性得到保證的基礎上,需針對性能測試指標進行驗證,從而保證后續實施活動中所關注的各個項目需求、場景及指標的正確性,從而盡量減少返工、重新設計的風險。

通過可測性、一致性及正確性的評估,最終確定本輪性能測試需求,并以此作為后續測試實施活動的輸入。

最后感謝每一個認真閱讀我文章的人,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:【文末領取】


? ? ?【下面是我整理的2023年最全的軟件測試工程師學習知識架構體系圖+全套資料】


一、Python編程入門到精通


二、接口自動化項目實戰?

三、Web自動化項目實戰


四、App自動化項目實戰?

五、一線大廠簡歷


六、測試開發DevOps體系?

七、常用自動化測試工具


八、JMeter性能測試?

九、總結(文末尾部小驚喜)

生命不息,奮斗不止。每一份努力都不會被辜負,只要堅持不懈,終究會有回報。珍惜時間,追求夢想。不忘初心,砥礪前行。你的未來,由你掌握!

生命短暫,時間寶貴,我們無法預知未來會發生什么,但我們可以掌握當下。珍惜每一天,努力奮斗,讓自己變得更加強大和優秀。堅定信念,執著追求,成功終將屬于你!

只有不斷地挑戰自己,才能不斷地超越自己。堅持追求夢想,勇敢前行,你就會發現奮斗的過程是如此美好而值得。相信自己,你一定可以做到!

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

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

相關文章

Java堆、棧、內存的知識

在JAVA中,有六個不同的地方可以存儲數據: 1.寄存器:最快的存儲區, 由編譯器根據需求進行分配,我們在程序中無法控制. 2. 棧:存放基本類型的變量數據和對象的引用,但對象本身不存放在棧中,而是存放在堆&…

visual studio 2017 運行的程序關閉后不能再運行?(visual studio建立項目之后退出,如何再次完整打開項目?)

在你儲存項目的文件夾里面應該是這樣的 里面.vcxproj后綴名的就是原來創建的項目,直接打開這個頭文件源文件就會一起出來了! 真的管用,親測有效。

可重入鎖,不可重入鎖,死鎖的多種情況,以及產生的原因,如何解決,synchronized采用的鎖策略(渣女圣經)自適應的底層,鎖清除,鎖粗化,CAS的部分應用

一、💛 鎖策略——接上一篇 6.分為可重入鎖,不可重入鎖 如果一個線程,針對一把鎖,連續加鎖兩次,會出現死鎖,就是不可重入鎖,不會出現死鎖,就是可重入鎖。 如果一個線程,針…

用身邊統計學告訴大家ChatGPT聽聞過的、用過的、重度使用的大概有多少?

最近摸魚時,看到有人發帖說信息繭房真的是無處不在。討論一番后,確實是這樣,每個人都在不同程度的“坐井觀天”罷了。拿最近火遍全球的ChatGPT來說,身邊真的不少人聽都沒聽過。這里有個更詳細調查,不過是Sunergia做的&…

全排列——力扣46

文章目錄 題目描述解法:回溯題目描述 解法:回溯 //version 1 vector<vector<int>> permute(<

分類預測 | MATLAB實現GWO-BiGRU-Attention多輸入分類預測

分類預測 | MATLAB實現GWO-BiGRU-Attention多輸入分類預測 目錄 分類預測 | MATLAB實現GWO-BiGRU-Attention多輸入分類預測預測效果基本介紹程序設計參考資料 預測效果 基本介紹 1.GWO-BiGRU-Attention 數據分類預測程序 2.代碼說明&#xff1a;基于灰狼優化算法&#xff08;GW…

Java SE 學習筆記(十)—— 正則表達式

目錄 1 引言2 常用匹配規則2.1 字符類2.2 預定義的字符類2.3 貪婪的量詞 3 正則表達式匹配的 API4 正則表達式應用4.1 正則表達式常見應用案例4.2 正則表達式在字符串方法中的使用4.3 正則表達式爬取信息 1 引言 &#x1f60d; 正則表達式可以用一些規定的字符來制定規則&#…

I2C連續讀寫實現

IIC系列文章: (1)I2C 接口控制器理論講解 (2)I2C接口控制設計與實現 (3)I2C連續讀寫實現 文章目錄 前言一、 i2c_bit_shift 模塊分析二、 i2c_control 模塊實現三、 i2c_control 模塊仿真測試前言 上文的 i2c_bit_shift 模塊說完了,我們發現實現一個字節的寫操作還是可以實現…

【UniApp開發小程序】小程序首頁(展示商品、商品搜索、商品分類搜索)【后端基于若依管理系統開發】

文章目錄 界面效果界面實現工具js頁面首頁讓文字只顯示兩行路由跳轉傳遞對象將商品分為兩列顯示使用中劃線劃掉原價 后端商品controllerservicemappersql 界面效果 【說明】 界面中商品的圖片來源于閑魚&#xff0c;若侵權請聯系刪除關于商品分類頁面的實現&#xff0c;請在我…

MySQL基礎篇

一、MySQL基礎 黑窗口命令操作: 連接MySQL服務器&#xff1a;mysql -u用戶名 -p密碼 [-h數據庫服務器的IP地址 -P端口號] ? -h 參數不加&#xff0c;默認連接的是本地 127.0.0.1 的MySQL服務器 -P 參數不加&#xff0c;默認連接的端口號是 3306 、 **上述指令&#xff0c;可…

建庫、建表、修改表、復制表、字符類型、數值類型、枚舉類型、日期時間類型、檢索目錄、數據導入命令、數據導入步驟、數據導出命令、非空、默認值、唯一索

Top NSD DBA DAY04 案例1&#xff1a;表管理案例2&#xff1a;數據類型案例3&#xff1a;數據批量處理案例4&#xff1a;表頭基本約束 1 案例1&#xff1a;表管理 1.1 問題 建庫練習建表練習修改表練習 1.2 方案 在MySQL50主機完成練習。 1.3 步驟 實現此案例需要按照如…

升級版“斯坦福AI小鎮”來了,這次的AI Agents有點不一樣

文娛是大模型落地的一個重要方向。 數科星球原創 作者丨苑晶 編輯丨大兔 八月中旬&#xff0c;AIGC游戲的風潮撲面而來。在游戲大廠按捺不住投入巨資的背景下&#xff0c;數科星球&#xff08;ID&#xff1a;digital-planet&#xff09;接觸到了多名業內精英也投身于此。人工…

Kafka第一課概述與安裝

生產經驗 面試重點 Broker面試重點 代碼,開發重點 67 章了解 如何記錄行為數據 1. Kafka概述 1.產生原因 前端 傳到日志 日志傳到Flume 傳到HADOOP 但是如果數據特比大&#xff0c;HADOOP就承受不住了 2.Kafka解決問題 控流消峰 Flume傳給Kafka 存到Kafka Hadoop 從Kafka…

Qt掃盲-Qt Paint System 概述

Qt Paint System 概述 一、概述二、繪圖設備和后端1. Widget2. Image3. Pixmap4. OpenGL繪制設備5. Picture6. 自定義繪制后端 三、繪圖與填充1. Drawing2. 填充 Filling 四、坐標系統1. 渲染Window-Viewport轉換 五、讀寫圖像文件1. QMovie 六、繪圖相關設備 一、概述 Qt的pa…

【數據庫】P2 SELECT 與 SQL注釋

SELECT 檢索單個列檢索多個列檢索所有列不重復的結果 DISTINCT限制結果 LIMIT 與 OFFSET注釋行內注釋多行注釋 檢索單個列 從 Products 表中檢索一個名為 prod_name 的列&#xff1b; SELECT prod_name FROM Products;【1】返回的數據可能是無序的&#xff0c;除非規定了順序…

7.5.tensorRT高級(2)-RAII接口模式下的生產者消費者多batch實現

目錄 前言1. RAII接口模式封裝生產者消費者2. 問答環節總結 前言 杜老師推出的 tensorRT從零起步高性能部署 課程&#xff0c;之前有看過一遍&#xff0c;但是沒有做筆記&#xff0c;很多東西也忘了。這次重新擼一遍&#xff0c;順便記記筆記。 本次課程學習 tensorRT 高級-RAI…

原生JS手寫掃雷小游戲

場景 實現一個完整的掃雷游戲需要一些復雜的邏輯和界面交互。我將為你提供一個簡化版的掃雷游戲示例&#xff0c;幫助你入門。請注意&#xff0c;這只是一個基本示例&#xff0c;你可以根據自己的需求進行擴展和改進。 思路 創建游戲板&#xff08;Grid&#xff09;&#xff1…

軟考:中級軟件設計師:文件管理,索引文件結構,樹型文件結構,位示圖,數據傳輸方式,微內核

軟考&#xff1a;中級軟件設計師: 提示&#xff1a;系列被面試官問的問題&#xff0c;我自己當時不會&#xff0c;所以下來自己復盤一下&#xff0c;認真學習和總結&#xff0c;以應對未來更多的可能性 關于互聯網大廠的筆試面試&#xff0c;都是需要細心準備的 &#xff08;1…

小森動畫回憶錄(二)-瀏覽哆啦a夢的四次元口袋

// DoraemonProps結構用于存儲單個道具信息 struct DoraemonProps{// 道具名稱string name;// 道具用途string UseOfProps; };// 從文件加載哆啦A夢道具信息到vector void LoadDoraemonProps(vector<DoraemonProps>& DoraemonProps) {// 創建文件輸入流ifstream str…

人臉識別技術應用安全管理規定(試行)

近年來&#xff0c;人臉識別技術不斷成熟&#xff0c;已大量應用于治安管理、金融支付、門禁考勤等諸多領域&#xff0c;極大便捷了公眾生活。然而&#xff0c;人臉識別技術在得到廣泛應用的同時&#xff0c;仍存在一些不規范現象。人臉識別因其技術特點&#xff0c;涉及公眾敏…