性能測(cè)試往往在投產(chǎn)上線前開(kāi)展,無(wú)法對(duì)整個(gè)系統(tǒng)變更進(jìn)行全面的覆蓋測(cè)試,因此性能測(cè)試需求提出十分關(guān)鍵。性能測(cè)試需求交付過(guò)程中,需要對(duì)開(kāi)發(fā)團(tuán)隊(duì)提出的測(cè)試需求進(jìn)行審查,重點(diǎn)分析交付的測(cè)試需求是否充分覆蓋了影響系統(tǒng)性能的因素,避免遺漏重要測(cè)試項(xiàng),引發(fā)生產(chǎn)性能事件。
![]()
在很多企業(yè)中,性能測(cè)試需求交付都設(shè)置有需求評(píng)審環(huán)節(jié),需求審查的動(dòng)作也會(huì)包含系統(tǒng)變更影響性分析,其中最關(guān)鍵的分析內(nèi)容就是梳理影響系統(tǒng)性能的因素,進(jìn)而權(quán)衡性能測(cè)試需求交付的全面性。
分析影響性能的因素,不僅要從系統(tǒng)本身的程序改造來(lái)看,更要關(guān)注本次投產(chǎn)上線整個(gè)系統(tǒng)資源、配置、參數(shù)、程序、業(yè)務(wù)等多方面的變化情況,很可能程序調(diào)整不大,但因基礎(chǔ)軟件的版本變化或關(guān)鍵應(yīng)用配置的參數(shù)發(fā)生調(diào)整,會(huì)引發(fā)重大的性能異常。
因此從性能測(cè)試的角度而言,測(cè)試的需求不僅來(lái)源于被測(cè)系統(tǒng)程序的改變,還涉及到架構(gòu)調(diào)整、參數(shù)變化、容量配置、基礎(chǔ)軟件等各方面,下面我結(jié)合自身工作經(jīng)驗(yàn)簡(jiǎn)要介紹五個(gè)方面可能影響系統(tǒng)性能的因素,供分析性能測(cè)試需求充分性做參考。
1.程序變更
程序變更引發(fā)的性能影響,是常規(guī)分析性能影響的首要因素,一方面涉及業(yè)務(wù)邏輯的處理調(diào)整,如新增業(yè)務(wù)邏輯或原始業(yè)務(wù)處理環(huán)節(jié)增加處理邏輯,導(dǎo)致程序性能消耗相比變大,另一方面涉及技術(shù)影響,如使用線程池、系統(tǒng)同步對(duì)接、事務(wù)處理調(diào)整等,會(huì)導(dǎo)致系統(tǒng)在技術(shù)應(yīng)用方面帶來(lái)額外的性能損耗。
通常程序變更引發(fā)的性能影響是研發(fā)團(tuán)隊(duì)最主要和最容易識(shí)別出來(lái)的因素。
2.架構(gòu)調(diào)整
架構(gòu)調(diào)整通常涉及技術(shù)架構(gòu)調(diào)整包括基礎(chǔ)軟件的升級(jí)或更換,如Oracle更換為Mysql,WAS更換為T(mén)OMCAT、JDK版本變化等,此外還有升級(jí)開(kāi)發(fā)框架、應(yīng)用拆分、中間件引入、增加限流熔斷等框架服務(wù)組件等。
架構(gòu)調(diào)整對(duì)性能的影響較大,因?yàn)樯婕暗郊夹g(shù)架構(gòu)與應(yīng)用的適配,往往涉及應(yīng)用較大規(guī)模改造,通常性能測(cè)試會(huì)開(kāi)展全面測(cè)試以驗(yàn)證性能影響。
3.容量調(diào)整
性能容量調(diào)整包括橫向資源規(guī)模的增擴(kuò)減少以及單臺(tái)資源的硬件配置,通常容量擴(kuò)容較為常見(jiàn),但一些情況下因性能容量降低導(dǎo)致的系統(tǒng)性能隱患仍然存在,比如系統(tǒng)資源調(diào)整機(jī)房,可能存在硬件服役時(shí)間和配置上的差異,另一種情況是業(yè)務(wù)發(fā)生調(diào)整后,重新編排了生產(chǎn)資源規(guī)模,減少了資源數(shù)量,此時(shí)存在性能容量可能不足的隱患,需要在保持日均業(yè)務(wù)量的前提下,開(kāi)展有效的性能容量測(cè)試,驗(yàn)證系統(tǒng)性能。
4.配置調(diào)整
配置調(diào)整是分析性能影響可能遺漏的一項(xiàng)因素,系統(tǒng)中存在大量的配置項(xiàng),具體包括JVM配置參數(shù)、系統(tǒng)功能啟停開(kāi)關(guān)、WEB服務(wù)器最大連接數(shù)、數(shù)據(jù)庫(kù)連接池大小、日志級(jí)別等,這些參數(shù)的變化對(duì)系統(tǒng)性能有十分直接的影響,比如JVM配置的最大堆內(nèi)存直接與GC頻率掛鉤,再比如配置文件中調(diào)整日志級(jí)別從ERROR改為INFO,將導(dǎo)致大量的日志讀寫(xiě)進(jìn)而影響資源IO能力。
5.業(yè)務(wù)調(diào)整
還有一些情況雖然系統(tǒng)未發(fā)生程序變更或架構(gòu)調(diào)整,但業(yè)務(wù)層面使用系統(tǒng)的規(guī)則發(fā)生了變化,導(dǎo)致訪問(wèn)系統(tǒng)的流量驟增,造成性能壓力。比如系統(tǒng)從試點(diǎn)轉(zhuǎn)為推廣、承接更多上游系統(tǒng)、突發(fā)熱點(diǎn)活動(dòng)等。主要表現(xiàn)在系統(tǒng)的程序、架構(gòu)、配置、資源尚未發(fā)生調(diào)整的情況下,需要應(yīng)用突發(fā)的業(yè)務(wù)流量。
以上粗略的從五個(gè)方面分析可能影響性能的因素,在實(shí)際操作中,無(wú)論是需求分析或者需求評(píng)審會(huì)議,性能測(cè)試需求都直接或間接通過(guò)此類(lèi)方法進(jìn)行評(píng)判,全面分析性能影響,對(duì)準(zhǔn)確提出性能測(cè)試需求,避免測(cè)試工作存在遺漏起到非常關(guān)鍵的作用。
看完這篇文章的你,大概對(duì)銀行金融行業(yè)非常感興趣,那就加入“Python自動(dòng)化測(cè)試交流群”吧!
最后:在我的V :atstudy-js,可以免費(fèi)領(lǐng)取一份10G軟件測(cè)試工程師面試寶典文檔資料。以及相對(duì)應(yīng)的視頻學(xué)習(xí)教程免費(fèi)分享!其中包括了有基礎(chǔ)知識(shí)、Linux必備、Shell、互聯(lián)網(wǎng)程序原理、Mysql數(shù)據(jù)庫(kù)、抓包工具專(zhuān)題、接口測(cè)試工具、測(cè)試進(jìn)階-Python編程、Web自動(dòng)化測(cè)試、APP自動(dòng)化測(cè)試、接口自動(dòng)化測(cè)試、測(cè)試高級(jí)持續(xù)集成、測(cè)試架構(gòu)開(kāi)發(fā)測(cè)試框架、性能測(cè)試、安全測(cè)試等。
![]()
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.