上篇文章,我們講過性能測試計劃,接下來我們就來講講如何設計符合項目的性能測試計劃。
到上篇為止,我們了解了性能測試計劃中包含的內(nèi)容,但是,這個顆粒度,我覺得作為一名測試經(jīng)驗不夠豐富的性能工程師來說,還是有些迷茫,只知道理論還不夠,如何把性能測試計劃落地,才是我們這次的目標。
所以,接下來,我會結(jié)合實際的項目案例,來落地性能測試計劃。當然,針對一看就懂的內(nèi)容,我就不過多嘮叨,畢竟,大部分人的想法都是:時間很珍貴,干貨要滿滿。
設計符合項目的性能測試計劃
背景
根據(jù)你的實際項目來描述即可, 此處省略……
性能目標
根據(jù)商品在系統(tǒng)中的下發(fā)主流程,來測試系統(tǒng)的單接口最大容量;
根據(jù)業(yè)務比例設計容量場景,充分利用當前資源,找到當前系統(tǒng)的性能瓶頸,并優(yōu)化,以達到系統(tǒng)的最佳運行狀態(tài);
根據(jù)穩(wěn)定性場景,判斷當前系統(tǒng)可支持的系統(tǒng)最大累加容量;
根據(jù)異常場景,判斷當前系統(tǒng)中的異常對性能產(chǎn)生的影響。
壓測范圍
計算接口;
同步接口;
在這里,強調(diào)一下:需要測試的接口,是業(yè)務主流程的主要接口,并不是所有的接口都需要測試。
我在面試過程中,問求職者這個問題, 大部分都會說所有的接口都會測試一遍,這沒必要。
啟停準則
啟動準則:環(huán)境準備完畢,架構(gòu)服務部署完畢,測試計劃、測試方案評審完畢、所有功能測試完畢、所有相關人員(PM、架構(gòu)師、開發(fā)工程師、性能測試工程師、運維)已到位;
結(jié)束準則:達到項目需求的性能指標,性能瓶頸已解決,測試報告和調(diào)優(yōu)報告都已完成;
暫停準則:系統(tǒng)環(huán)境出現(xiàn)問題導致無法繼續(xù)測試,比如網(wǎng)絡不同、壓力機損壞、服務宕機等;
在啟動準則:上述問題都已解決,可以繼續(xù)進行測試。
性能指標
這里的TPS,可以通過運維提供的數(shù)據(jù),進行預估。
根據(jù)多年的測試經(jīng)驗,這里的TPS標準方差不會超過5%,如果超過,那……能為你"點贊"。
系統(tǒng)架構(gòu)圖
系統(tǒng)邏輯架構(gòu)圖 和系統(tǒng)部署架構(gòu)圖,你可以與設計溝通或者運維溝通,都可以得到。得到這兩個圖,需要你去梳理架構(gòu)邏輯,為你進行性能瓶頸分析做準備。
壓測前準備
主要是硬件服務的配置信息,這里的資源配置,在評審階段就可以得到。
工具準備
壓測工具:Jmeter+InfluxDB。
監(jiān)控工具:Promethues、Grafana、Kafka、Logstash、Spring Boot Admin等。
數(shù)據(jù)準備
測試腳本數(shù)據(jù)的準備,由于我的項目需要讀取文件的方式往數(shù)據(jù)庫里面寫數(shù)據(jù),所以,txt文件里面的數(shù)據(jù),我也是寫腳本自動生成的。
性能設計
①性能測試策略,一定是要滿足:連續(xù)、遞增的策略。
如果你的性能測試策略不滿足這兩點,那我可以斷定,你的性能測試最后的結(jié)果,一定不是準確地,或者說一定不會符合實際的生產(chǎn)環(huán)境的業(yè)務場景。
②業(yè)務場景,一定要滿足 基準場景、容量場景、穩(wěn)定性場景 和異常場景,否則,最后的結(jié)果,一定是跟上面說的一樣。
監(jiān)控設計
①全局監(jiān)控設計:一定是從整體出發(fā),監(jiān)控全局系統(tǒng);如何快速定位問題, 取決于你的全局監(jiān)控部署的是否完整。
②定向監(jiān)控設計:對具體的應用、數(shù)據(jù)庫等進行監(jiān)控分析,如 jstack、mysqlreport等。
全局監(jiān)控發(fā)現(xiàn)問題, 定向監(jiān)控分析問題,這就是監(jiān)控布局的整體意義所在,定向監(jiān)控是分析問題最快最直接最便捷的。
如果你沒有定向監(jiān)控,即使你的經(jīng)驗在豐富, 分析性能瓶頸也不是最快最準確的。
項目組織架構(gòu)
把你的項目組織架構(gòu)圖畫出來, 這樣便于發(fā)現(xiàn)問題后知道第一時間找誰去處理。
例如:
PM:項目負責人;
架構(gòu)師:項目架構(gòu)負責人;
開發(fā)工程師:參與項目編發(fā)人員,解決性能問題;
性能工程師:負責編寫性能測試腳本 和負責分析性能瓶頸 , 這兩個職位可以是同一個人;
運維:部署服務,環(huán)境構(gòu)建。
成果輸出
性能測試報告、性能調(diào)優(yōu)報告、性能測試腳本、性能缺陷列表,在大部分性能測試工程師認為,成果輸出中,并不包含性能調(diào)優(yōu)報告,我也調(diào)查過很多人,最后我得到的結(jié)果,讓我很吃驚:
不知道性能成果還 性能調(diào)優(yōu)報告;
性能調(diào)優(yōu)報告是什么;
過程性內(nèi)容,沒必要提供;
性能調(diào)優(yōu)是開發(fā)參與,我一個性能測試工程師,何必管那么多。
看到這里, 你是不是也很吃驚, 或者刷新了"三觀認知"。所以,避免你說出同樣的話,建議你在成果輸出中包含 性能調(diào)優(yōu)報告。
項目風險分析
關于項目分析分析, 你可能會說,項目風險是測試報告中體現(xiàn)的, 為何要在 性能測試計劃中體現(xiàn)?
其實不然, 項目風險分析,是你性能測試開始前期進行分析和評估的。
例如:
你的測試環(huán)境無法滿足與生產(chǎn)環(huán)境一樣的配置;
你的業(yè)務模型可能因為某些原因,導致與生產(chǎn)環(huán)境某一節(jié)點不相符;
由于涉及多團隊協(xié)作,可能在性能測試過程中,某些人員無法準確到位……
總結(jié)
看到這里,你是不是已經(jīng)對如何編寫性能測試計劃有了重新的認識?我用了大篇幅的內(nèi)容,從性能測試計劃包含哪些內(nèi)容,到如何落地性能測試計劃,就是為了讓你在性能測試更專業(yè)。
一份詳細的性能測試計劃,是整個性能測試工程的關鍵所在。而在這份性能測試計劃中, 更核心的內(nèi)容,就是:性能指標,系統(tǒng)架構(gòu)圖、性能場景、監(jiān)控設計。
所以, 在整個性能測試計劃中,你需要把更多的精力,放在更核心的內(nèi)容上。只有編寫詳細的性能測試計劃, 設定明確的性能指標, 理解系統(tǒng)架構(gòu)圖,設計完整的性能測試場景,部署完整的監(jiān)控,你的性能測試才算完整。
最后:在我的V :atstudy-js,可以免費領取一份10G軟件測試工程師面試寶典文檔資料。以及相對應的視頻學習教程免費分享!其中包括了有基礎知識、Linux必備、Shell、互聯(lián)網(wǎng)程序原理、Mysql數(shù)據(jù)庫、抓包工具專題、接口測試工具、測試進階-Python編程、Web自動化測試、APP自動化測試、接口自動化測試、測試高級持續(xù)集成、測試架構(gòu)開發(fā)測試框架、性能測試、安全測試等。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務。
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.