最近有些同學找我咨詢關(guān)于性能測試計劃相關(guān)的問題,原因是他們公司要做性能測試,Leader要求寫一份性能測試計劃,苦于之前沒做過相關(guān)工作,無從下手。

          這篇博客,結(jié)合我個人的一些經(jīng)驗和總結(jié),聊聊如何制定一份較為全面的性能測試計劃。。。

          ?

          一、測試背景

          首先要闡述本次性能測試的背景,即被測系統(tǒng)類型,面向哪些用戶,具備什么特點,為什么要進行性能測試,預期的一些指標等等。

          比如:為了保證“雙十一”大促期間,系統(tǒng)能穩(wěn)定運行且保障業(yè)務的高可用,進行性能測試。

          核心:評估系統(tǒng)性能、分析性能變化趨勢、定位系統(tǒng)瓶頸風險、協(xié)助規(guī)劃系統(tǒng)容量。

          ?

          二、測試目的

          測試的目的要根據(jù)測試背景來分析設定,比如:

          1、線上服務由于流量過高某部分應用掛了,那測試目的就是:定位瓶頸、分析調(diào)優(yōu)驗證;

          2、運營做了拉新和新的渠道拓展,那測試目的就是:評估系統(tǒng)性能是否滿足新的線上業(yè)務;

          3、系統(tǒng)架構(gòu)由集群技改為微服務,那測試目的就是:驗證穩(wěn)定性、可用性、單實例容量,為線上服務擴容提供容量規(guī)劃數(shù)據(jù);

          ?

          三、測試范圍

          通過需求調(diào)研,分析用戶使用場景,對業(yè)務數(shù)據(jù)量增長變化趨勢及峰值活躍用戶等數(shù)據(jù)做定量分析,確定被測系統(tǒng)的應用范圍,比如訂單+購物車+商品+支付服務。

          業(yè)務歸屬模塊 業(yè)務涉及場景
          訂單 創(chuàng)建訂單
          取消訂單
          購物車 添加購物車
          刪除購物車
          商品 商品列表
          商品詳情
          支付 余額支付
          支付寶支付
          微信支付
          ?

          四、術(shù)語約定

          這里的術(shù)語指的是:涉及本次性能測試相關(guān)的一些專業(yè)術(shù)語說明,目的是統(tǒng)一口徑,做解釋說明,便于參與本次性能測試的相關(guān)人員理解。常見術(shù)語如下:

          術(shù)語名稱 術(shù)語釋義
          并發(fā) 單位時間內(nèi)(S)模擬客戶端發(fā)起的請求數(shù)量
          穩(wěn)定性 驗證系統(tǒng)在長時間(24h/48h)負載情況下的性能表現(xiàn)
          高可用 驗證系統(tǒng)在一部分服務宕機后能否正常提供服務以及服務恢復速率
          TPS 每秒事務數(shù),即系統(tǒng)單位時間內(nèi)(S)的請求處理能力
          RT 響應時間,及系統(tǒng)處理一筆請求所耗費的時間
          請求成功率 在測試過程中,系統(tǒng)成功處理請求占總請求數(shù)的百分比
          PS:術(shù)語約定以實際情況為準,還要考慮性能測試計劃的受眾對于性能測試的了解程度,本約定旨在統(tǒng)一描述的口徑,降低溝通成本。

          ?

          五、環(huán)境說明


          一般來說,進行性能測試的環(huán)境都是在UAT或者獨立的性能測試環(huán)境,但為了準確描述環(huán)境類型和配置,以及測試環(huán)境和生產(chǎn)環(huán)境的區(qū)別,建議對生產(chǎn)環(huán)境和測試環(huán)境進行對比說明。

          1、生產(chǎn)環(huán)境

          ①、系統(tǒng)架構(gòu)



          PS:上圖只是一個簡略的微服務類型系統(tǒng)架構(gòu),只做示意,理解即可。

          ②、服務配置

          服務名稱 數(shù)量 配置 備注
          gateway server 10 2C3G 網(wǎng)關(guān)服務,身份驗證和請求轉(zhuǎn)發(fā)
          web server 3 2C3G ?
          app server 5 2C3G ?
          Redis 3 4G 哨兵模式,一主兩從
          DB 2 8C16G 一主一從
          2、測試環(huán)境

          ①、系統(tǒng)架構(gòu)



          ②、服務配置

          服務名稱 數(shù)量 配置 備注
          gateway server 5 2C3G 網(wǎng)關(guān)服務,身份驗證和請求轉(zhuǎn)發(fā)
          web server 2 2C3G ?
          app server 2 2C3G ?
          Redis 2 4G 哨兵模式,一主一從
          DB 2 8C16G 一主一從
          3、負載機配置

          負載機(machine)即模擬客戶端發(fā)送請求的機器,一般情況下,說明負載機的硬件配置,數(shù)量,IP,發(fā)壓策略即可。

          4、網(wǎng)絡

          即負載機和性能測試環(huán)境的網(wǎng)絡狀況,比如國內(nèi)公網(wǎng)/同一VPC內(nèi)網(wǎng),防火墻策略等。

          ?

          六、需求分析

          需求分析一般有這幾個階段:需求接入→需求收集→需求分析,主要內(nèi)容如下:

          1、業(yè)務模型

          如下是一個典型的電商平臺核心業(yè)務鏈路圖,涉及到登錄、首頁、商品、購物車、支付、分享等模塊。



          2、性能指標

          這里的性能指標包含如下兩項:

          ①、業(yè)務性能指標

          即預期的TPS、RT、請求成功率(一般默認請求成功率≥99.99%)。

          ②、硬件性能指標

          即服務端資源耗用指標,常規(guī)的資源監(jiān)控指標有:CPU使用率、Memory使用率、系統(tǒng)IO、網(wǎng)絡IO等。

          ?

          七、測試策略

          本次性能測試所采用的測試策略,比如:

          探測系統(tǒng)性能拐點,需要階梯式壓測;

          探測系統(tǒng)在可接受的性能指標下最大的處理能力,需要采用負載、容量測試策略;

          驗證系統(tǒng)的穩(wěn)定性和高可用,需要采用穩(wěn)定性、高可用測試策略;

          驗證系統(tǒng)在不同配置下的性能表現(xiàn),一般采用配置測試策略;

          1、測試策略及場景

          ①、容量測試


          場景名稱

          01_登錄

          02_首頁


          執(zhí)行時間

          10min


          業(yè)務配比

          100%


          測試策略

          容量測試


          測試目的

          不斷增加負載,驗證系統(tǒng)單節(jié)點的最大性能表現(xiàn)

          ②、穩(wěn)定性測試


          場景名稱

          混合場景


          執(zhí)行時間

          24h


          業(yè)務配比

          按生產(chǎn)業(yè)務配比,等比縮放


          測試策略

          穩(wěn)定性測試


          測試目的

          驗證系統(tǒng)長期運行的穩(wěn)定性以及是否存在OOM之類的問題

          PS:如上表格描述,依然作為一個示例來說明,主要內(nèi)容包括:場景編號、測試類型、涉及業(yè)務場景、業(yè)務配比、執(zhí)行時間、測試目的。

          2、測試監(jiān)控策略

          監(jiān)控對象 指標范圍 監(jiān)控工具
          CPU ≤90% nmon、zabbix
          Memory ≤70%
          網(wǎng)絡IO 無明顯IO瓶頸
          JVM 無頻繁FGC情況 jmap、jstat
          ?

          八、準備工作

          準備工作主要包含如下幾項:

          準備事項 準備內(nèi)容 責任人 預計完成時間
          工具準備 負載工具、監(jiān)控工具、分析工具 測試/運維 0.5工作日
          腳本準備 測試腳本 測試 0.5工作日
          環(huán)境準備 機器配置、服務部署聯(lián)調(diào)、腳本調(diào)試 運維/開發(fā) 1工作日
          數(shù)據(jù)準備 鋪底數(shù)據(jù)、測試數(shù)據(jù)、參數(shù)化數(shù)據(jù)、緩存數(shù)據(jù) DBA/開發(fā)/測試 1工作日
          ?

          九、組織架構(gòu)

          組織架構(gòu)即本次性能測試涉及到的團隊各角色成員,主要包含這些:PM角色、測試、開發(fā)、運維、DBA、網(wǎng)絡、基礎架構(gòu)。示例:



          ?

          十、風險分析

          羅列開始執(zhí)行前會影響本次性能測試工作開展的風險項以及應對方案,比如:

          風險類型 風險描述 風險級別 應對方案
          交付風險 UAT階段發(fā)現(xiàn)較嚴重的功能缺陷 高 測試時間順延,或增加對應人員
          變更風險 臨時需求變更、新增需求 高 需求評審是否加入本次測試范圍,階段性交付
          數(shù)據(jù)風險 數(shù)據(jù)脫敏耗時較長、測試數(shù)據(jù)不可用 中 重新擬定數(shù)據(jù)準備方案,小范圍數(shù)據(jù)驗證
          環(huán)境風險 部署出現(xiàn)問題,聯(lián)調(diào)進度緩慢、網(wǎng)絡帶寬瓶頸 中 更換環(huán)境、增加資源配置、擴展帶寬
          ?

          十一、交付清單

          在性能測試計劃中,需要說明本次性能測試各階段的交付物,主要包含這幾項:性能測試計劃&方案、測試腳本、性能缺陷統(tǒng)計、輪次小節(jié)、性能測試報告。

          ?

          十二、階段進度

          這里主要指的是從需求階段到結(jié)束,各個階段的工作進展以及資源安排,建議采用看板的方式,及時更新進度,方便推進工作的開展。示例如下:


          階段

          事項

          開始時間

          結(jié)束時間

          狀態(tài)

          責任人


          需求階段

          需求評審

          ?

          ?

          完成

          多方參與


          系統(tǒng)架構(gòu)圖

          ?

          ?

          完成

          開發(fā)


          需求調(diào)研

          ?

          ?

          完成

          性能測試人員


          準備階段

          環(huán)境交付

          ?

          ?

          完成

          運維、開發(fā)


          應用部署

          ?

          ?

          完成

          運維、開發(fā)


          數(shù)據(jù)準備

          ?

          ?

          完成

          開發(fā)、DBA、測試


          腳本開發(fā)

          ?

          ?

          完成

          性能測試人員


          實施階段

          執(zhí)行壓測

          ?

          ?

          未完成

          性能測試人員


          服務監(jiān)控

          ?

          ?

          未完成

          運維、測試


          數(shù)據(jù)收集

          ?

          ?

          未完成

          性能測試人員


          結(jié)束

          報告評審

          ?

          ?

          未完成

          多方評審

          ?

          如上,就是一個較為完整的性能測試計劃內(nèi)容,當然,完成性能測試計劃并評審通過后,就可以進入測試執(zhí)行階段了。。。

          ?

          友情鏈接
          ioDraw流程圖
          API參考文檔
          OK工具箱
          云服務器優(yōu)惠
          阿里云優(yōu)惠券
          騰訊云優(yōu)惠券
          京東云優(yōu)惠券
          站點信息
          問題反饋
          郵箱:[email protected]
          QQ群:637538335
          關(guān)注微信

                日日爱影院| 爱搞搞就要爱搞搞 | 国产喷水吹潮在线播放91 | 偷拍毛片视频 | 国产一级婬A片AAA人与鲁 |