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