壓測專題1:壓測準(zhǔn)備工作要關(guān)注什么

? 雖然經(jīng)歷過很多次壓測,但是最近跟進(jìn)的一個(gè)項(xiàng)目淌山,在預(yù)估 qps 高裸燎、業(yè)務(wù)玩法個(gè)性強(qiáng)復(fù)雜度高的情況下,整個(gè)過程中還是出現(xiàn)了一些問題:

  • 與下游交互的模塊泼疑,不能通過直接屏蔽來進(jìn)行內(nèi)部邏輯驗(yàn)證
  • 壓測需要單獨(dú)配置德绿,內(nèi)測期間不能同時(shí)進(jìn)行壓測
  • 壓測接口底層數(shù)據(jù)依賴交叉,并發(fā)搶鎖與線上場景不符退渗,賬號(hào)編排進(jìn)行了二次更新
  • 多壓測接口并發(fā)窗口重疊有差異移稳,用例編排多次優(yōu)化才保證了業(yè)務(wù)邏輯依賴
  • 需求節(jié)奏緊張,壓測流量復(fù)用需要多次調(diào)整壓測用例

? 雖然準(zhǔn)備工作提前開展会油,卻還是不夠充分个粱,因此總結(jié)下壓測準(zhǔn)備工作的內(nèi)容,希望下次的壓測能更加順利钞啸。

? 首先聊一下上面問題的初步解法建議:

  • 評(píng)估好與下游交互的模塊對(duì)業(yè)務(wù)邏輯的影響面積几蜻,若下游動(dòng)作對(duì)服務(wù)影響較小時(shí),除了正式壓測外体斩,調(diào)試和復(fù)壓驗(yàn)證內(nèi)部服務(wù)性能時(shí)都可以采用配置屏蔽的方式減少對(duì)下游的影響梭稚,使壓測時(shí)間更靈活
  • 在服務(wù)開發(fā)階段就結(jié)合服務(wù)架構(gòu)設(shè)計(jì),除了基礎(chǔ)架構(gòu)支持的壓測流量識(shí)別能力絮吵,業(yè)務(wù)自己的服務(wù)基于自身服務(wù)特征也做好壓測識(shí)別弧烤,這樣就可以多維度測試同時(shí)進(jìn)行又不會(huì)相互干擾
  • 壓測前明確數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),cr 開發(fā)代碼蹬敲,明確哪些接口是會(huì)搶占或改變同一份數(shù)據(jù)暇昂,是否單用戶會(huì)同時(shí)發(fā)生多個(gè)接口請(qǐng)求,通過用戶段或?qū)嶋H用戶行為來控制好搶鎖的事件符合線上真實(shí)場景
  • 分析每個(gè)接口觸發(fā)的時(shí)機(jī)伴嗡,在壓測過程中明確每個(gè)接口峰值疊加階段急波,保證全部峰值和單接口峰值能夠合理配合
  • 通過復(fù)制和分組管理的方式將不同復(fù)用場景創(chuàng)建到不同分組,隨用隨取指定組別用例即可瘪校;同時(shí)與工具平臺(tái)聯(lián)動(dòng)優(yōu)化接口/域名的管理功能

? 有了初步解法后澄暮,還是要詳細(xì)回顧下關(guān)于壓測的準(zhǔn)備工作到底要關(guān)注哪些內(nèi)容。

一阱扬、壓測方案的設(shè)計(jì)

? 壓測方案是壓測執(zhí)行的標(biāo)準(zhǔn)依據(jù)泣懊,但是每次需求下準(zhǔn)備壓測方案的時(shí)機(jī)都可能是不同的。有些情況下需要在技術(shù)方案梳理結(jié)束后就要開始著手準(zhǔn)備麻惶,而有些在測試快結(jié)束時(shí)準(zhǔn)備也是沒問題的馍刮,個(gè)人認(rèn)為壓測方案的產(chǎn)出時(shí)機(jī),除了受業(yè)務(wù)本身排期和人力限制外窃蹋,優(yōu)先考慮的是待壓測服務(wù)的現(xiàn)狀和壓測場景的復(fù)雜程度卡啰。

1. 壓測服務(wù)的現(xiàn)狀

? 考慮壓測服務(wù)現(xiàn)狀主要是看服務(wù)是否必須進(jìn)行壓測静稻,以及壓測的目標(biāo)是什么,有了明確的壓測目標(biāo)才能更好的設(shè)計(jì)壓測方案:

  • case1:線上穩(wěn)定運(yùn)行的服務(wù)有新增邏輯:判斷新邏輯對(duì)舊邏輯的影響碎乃,評(píng)估是否只壓測新增模塊相關(guān)功能即可
  • case2:新服務(wù)有歷史同類/類似業(yè)務(wù)參考:依據(jù)已有類似業(yè)務(wù)評(píng)估流量量級(jí)和性能瓶頸姊扔,看是否必要全量功能壓測
  • case3:新服務(wù)沒有歷史類似業(yè)務(wù)參考:拆分代碼組成惠奸,預(yù)估全量功能的流量量級(jí)梅誓,明確是否需要單獨(dú)摸底,是否必須全量接口覆蓋

2. 壓測場景的復(fù)雜度

? 壓測場景的復(fù)雜程度決定了數(shù)據(jù)和測試用例的準(zhǔn)備和編排工作要投入的人力資源成本佛南,要提前考慮才能在壓測開始前就準(zhǔn)備好壓測所需的數(shù)據(jù)供給梗掰。

  • case1:業(yè)務(wù)流程、接口單一或者相互獨(dú)立:每個(gè)接口單獨(dú)設(shè)計(jì)壓測場景準(zhǔn)備壓測數(shù)據(jù)即可
  • case2:接口嗅回、業(yè)務(wù)流程間有數(shù)據(jù)耦合或者有動(dòng)作耦合:需要按照用戶使用場景拆分+組合的方式編排場景壓測用例及穗,并確認(rèn)好壓測數(shù)據(jù)的混合方案

二、 壓測配置的約定

? 正常情況下绵载,壓測的配置要確保不對(duì)數(shù)據(jù)造成污染埂陆、不能對(duì)已有服務(wù)造成干擾,所以壓測前應(yīng)該明確好到底哪些配置要單獨(dú)做隔離娃豹,哪些配置必須要確認(rèn)好唯一壓測標(biāo)識(shí)焚虱;若服務(wù)不能滿足壓測隔離,大概率需要進(jìn)行專門開發(fā)懂版,服務(wù)隔離能力的開發(fā)和測試驗(yàn)證成本都要提前規(guī)劃鹃栽。
? 把壓測配置單獨(dú)拿出來講,是因?yàn)楹芏嘈枨笤趬簻y進(jìn)行時(shí)才發(fā)現(xiàn)躯畴,常規(guī)測試和壓測的部分配置沖突民鼓,造成無法同時(shí)進(jìn)行多種測試,所以壓測和正常配置的區(qū)分其實(shí)非常關(guān)鍵蓬抄。
? 具體的壓測配置/壓測隔離的方式方法需要結(jié)合業(yè)務(wù)代碼框架來看丰嘉,這里不做過多說明。

三嚷缭、壓測數(shù)據(jù)的處理

1. 壓測數(shù)據(jù)的生成

? 壓測數(shù)據(jù)間接限制了壓測 case 對(duì)線上場景的擬合程度饮亏,需要特定狀態(tài)的數(shù)據(jù)才能保證壓測場景的發(fā)生

  • case1:壓測數(shù)據(jù)是實(shí)時(shí)隨著壓測產(chǎn)生的:那不需要單獨(dú)構(gòu)造數(shù)據(jù)
  • case2:壓測數(shù)據(jù)是需要前置條件的:那么就要考慮是通過接口順序編排就可以產(chǎn)生數(shù)據(jù)峭状,還是需要提前人為構(gòu)造
  • case3:壓測數(shù)據(jù)是需要前置條件的克滴,且需要完全擬合實(shí)際用戶場景:那么更要確認(rèn)數(shù)據(jù)構(gòu)造的方案,若不是簡單數(shù)據(jù)的構(gòu)造优床,數(shù)據(jù)構(gòu)造能力的開發(fā)和構(gòu)造效果的驗(yàn)證同樣需要人力時(shí)間投入劝赔;擬合用戶操作的數(shù)據(jù),還要考慮同一個(gè)用戶多接口并發(fā)是否有關(guān)聯(lián)影響胆敞,以便更好的模擬用戶行為

2. 壓測數(shù)據(jù)的清理

? 壓測數(shù)據(jù)的清理原本是壓測結(jié)束后才要考慮的內(nèi)容着帽,但是杂伟,必須要提前明確哪些數(shù)據(jù)要做清理、是什么類型的數(shù)據(jù)仍翰、在什么時(shí)機(jī)進(jìn)行清理赫粥。

  • case1:非持久存儲(chǔ)類數(shù)據(jù):不需要單獨(dú)清理,設(shè)置好過期時(shí)間即可
  • case2:非持久存儲(chǔ)類數(shù)據(jù)予借,但對(duì)后續(xù)壓測有干擾:那么需要每輪壓測結(jié)束后專門清理
  • case3:持久存儲(chǔ)數(shù)據(jù):需要確認(rèn)如何控制人工清理

四越平、壓測用例的編排

? 單接口用例就不多說,單個(gè)接口不需要特殊編排灵迫,考慮好用例的用戶操作行為貼合度和業(yè)務(wù)特性模擬即可秦叛,場景用例/混合壓測的用例就需要考慮好用例編排了;下面羅列的場景并不能涵蓋所有情況瀑粥,但可以在此基礎(chǔ)上結(jié)合壓測訴求和已有壓測能力做擴(kuò)展挣跋。

1. 簡單場景

? 簡單的場景下基公,一般不需要考慮過多的接口時(shí)序和實(shí)際觸發(fā)時(shí)機(jī)汰瘫,只需要保證流量峰值的發(fā)生和持續(xù)即可硅确,所以簡單場景下大概有以下幾種編排方式:

  • 接口獨(dú)立執(zhí)行
  • 接口順序執(zhí)行
  • 接口同步并發(fā)

2. 復(fù)雜場景

? 復(fù)雜場景往往需要接口之間做好配合授霸,不僅僅是時(shí)序和觸發(fā)時(shí)間渗饮,還要考慮接口實(shí)際作用效果的傳遞和實(shí)際作用對(duì)數(shù)據(jù)流轉(zhuǎn)的影響牵素,所以在簡單場景基礎(chǔ)上要求更高鼎姊,就可以考慮下面的編排方式:

  • 返回依賴接口需要聯(lián)動(dòng)串行
  • 邏輯/用戶行為的流量錯(cuò)峰
  • 單用戶多動(dòng)作接口并發(fā)需要?jiǎng)討B(tài)窗口化
  • 多用戶多動(dòng)作接口同時(shí)刻疊加

方法或思路整體并不難映企,難的還是要分析好用戶行為和接口作用割按,明確評(píng)估出如何排列/組合接口才能更加貼合線上的真實(shí)流量分布膨报,盡可能擬合線上場景才能讓壓測的可信度更高。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
禁止轉(zhuǎn)載适荣,如需轉(zhuǎn)載請(qǐng)通過簡信或評(píng)論聯(lián)系作者现柠。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市弛矛,隨后出現(xiàn)的幾起案子够吩,更是在濱河造成了極大的恐慌,老刑警劉巖丈氓,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件周循,死亡現(xiàn)場離奇詭異,居然都是意外死亡万俗,警方通過查閱死者的電腦和手機(jī)湾笛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來闰歪,“玉大人嚎研,你說我怎么就攤上這事】馓龋” “怎么了临扮?”我有些...
    開封第一講書人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵论矾,是天一觀的道長。 經(jīng)常有香客問我杆勇,道長贪壳,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任蚜退,我火速辦了婚禮闰靴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘关霸。我一直安慰自己传黄,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開白布队寇。 她就那樣靜靜地躺著,像睡著了一般章姓。 火紅的嫁衣襯著肌膚如雪佳遣。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,554評(píng)論 1 305
  • 那天凡伊,我揣著相機(jī)與錄音零渐,去河邊找鬼。 笑死系忙,一個(gè)胖子當(dāng)著我的面吹牛诵盼,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播银还,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼风宁,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了蛹疯?” 一聲冷哼從身側(cè)響起戒财,我...
    開封第一講書人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎捺弦,沒想到半個(gè)月后饮寞,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡列吼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年幽崩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片寞钥。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡慌申,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出凑耻,到底是詐尸還是另有隱情太示,我是刑警寧澤柠贤,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站类缤,受9級(jí)特大地震影響臼勉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜餐弱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一宴霸、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧膏蚓,春花似錦瓢谢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至论笔,卻和暖如春采郎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背狂魔。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來泰國打工蒜埋, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人最楷。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓整份,卻偏偏與公主長得像,于是被迫代替她去往敵國和親籽孙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子烈评,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容