給學(xué)性能測試的朋友一份思維導(dǎo)圖

前言

談起性能測試蟹漓,大家經(jīng)常聊的是高并發(fā)炕横、高可用、性能優(yōu)化葡粒、全鏈路壓測等Topic份殿,聽起來都挺高大上,但這些概念追本溯源嗽交,還是要落到性能測試基礎(chǔ)的東西上卿嘲。比如需求分析、場景建模夫壁、測試方案拾枣、性能分層、指標(biāo)監(jiān)控盒让、結(jié)果評估和優(yōu)化本身上面梅肤。在上家公司離職前一天,我給測試同學(xué)做了一場性能測試基礎(chǔ)知識(shí)分享和全鏈路壓測演進(jìn)的分享邑茄,這篇文章姨蝴,整理了基礎(chǔ)部分的一些知識(shí)和我自己的思考,供大家參考肺缕。


思維導(dǎo)圖


知識(shí)體系

基礎(chǔ)指標(biāo)

簡單來說左医,性能測試實(shí)際上主要關(guān)注如下三點(diǎn):

  1. 速度:TPS授帕、RT ;

  2. 容量:吞吐量炒辉、PV豪墅、Hit;

  1. 資源:CPU黔寇、Memory偶器、DiskIO、Network缝裤、文件句柄數(shù)屏轰;


性能分層

性能測試領(lǐng)域,要在評估調(diào)研階段就考慮性能分層的影響憋飞。在性能分析和優(yōu)化階段霎苗,也要考慮不同層級(jí)對整體性能的影響。我將它們分為如下六層:

  1. 網(wǎng)絡(luò)層:主要指帶寬榛做、網(wǎng)段唁盏、防火墻等設(shè)施,當(dāng)然检眯,CND之類的資源厘擂,也可以劃分在這一領(lǐng)域;

  2. 網(wǎng)關(guān)層:網(wǎng)關(guān)是請求入口和業(yè)務(wù)接入層锰瘸,一般登錄驗(yàn)簽調(diào)用刽严、加解密鑒權(quán)、限流等操作避凝,都是在網(wǎng)關(guān)進(jìn)行舞萄;

  1. 應(yīng)用層:無論是前端的渲染展示還是后端的邏輯處理,都可以理解為應(yīng)用層管削;

  2. 中間件:中間件包含緩存倒脓、MQ、JOB含思、DTS/DRC/DAL把还、配置中心等一系列組件;

  1. 存儲(chǔ)層:一般指數(shù)據(jù)存儲(chǔ)和文件存儲(chǔ)層級(jí)茸俭,典型的組件有MySQL吊履、HDFS;

  2. 物理層:無論是云服務(wù)還是自建機(jī)房调鬓,物理硬件層面都可以歸納到這一層艇炎;


需求調(diào)研

  1. 項(xiàng)目背景

  1. 版本迭代&獨(dú)立項(xiàng)目&新建服務(wù)&系統(tǒng)重構(gòu)&性能優(yōu)化;

  1. 測試目的

  1. 超賣&高并發(fā)&擴(kuò)容性&配置驗(yàn)證&資源耗用腾窝;

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

  1. 技術(shù)架構(gòu):服務(wù)間的依賴關(guān)系缀踪,包含緩存居砖,MQ等信息;

  2. 網(wǎng)絡(luò)拓?fù)洌赫埱?域名-SLB/HA/Nginx-web-app-DB以及外部依賴驴娃;

  1. 場景模型

  1. 業(yè)務(wù)場景:業(yè)務(wù)場景的多樣性和特殊性以及對腳本開發(fā)聯(lián)調(diào)&數(shù)據(jù)預(yù)埋的影響奏候;

  2. 業(yè)務(wù)模型:只讀、讀寫唇敞、批處理蔗草、定時(shí)Job;

  3. 業(yè)務(wù)配比:被測場景占總體場景的業(yè)務(wù)量占比(公式:被測場景/總業(yè)務(wù)量*100%)

  1. 選取業(yè)務(wù)峰值的數(shù)據(jù)疆柔,單獨(dú)統(tǒng)計(jì)咒精;

  2. 如果各業(yè)務(wù)占比類似,則按照比例轉(zhuǎn)化旷档;

  3. 如果比例差距大模叙,則按照區(qū)間單獨(dú)統(tǒng)計(jì)分析;

  1. 環(huán)境配置

  1. PRE&PERF鞋屈、app&Redis&MQ&DB&網(wǎng)絡(luò)&網(wǎng)段&&帶寬&防火墻范咨,是否獨(dú)享資源隔離等;

  1. 性能指標(biāo)

  1. 業(yè)務(wù)指標(biāo):DAU厂庇、GMV渠啊、注冊用戶數(shù)、在線用戶數(shù)宋列、活躍用戶數(shù)昭抒、增長趨勢等评也;

  2. 系統(tǒng)指標(biāo):協(xié)議類型炼杖、長短鏈接、同步策略盗迟、加解密坤邪、JVM內(nèi)存分配、容器線程數(shù)&連接數(shù)&Timeout罚缕、MQ-Cousumer數(shù)量艇纺;

  3. 壓測指標(biāo):QPS、TPS邮弹、ART黔衡、99%RT、Success%腌乡;

  1. 數(shù)據(jù)類型

  1. 數(shù)據(jù)鋪底量盟劫;

  2. 是否有敏感數(shù)據(jù)需脫敏;

  3. 限制條件(時(shí)間&次數(shù)&權(quán)限)与纽;

  4. 自增侣签、唯一塘装、UUID、加解密影所、冪等蹦肴;

  1. 關(guān)鍵時(shí)間

  1. 提測時(shí)間、驗(yàn)收時(shí)間猴娩、上線時(shí)間阴幌;

這里給大家準(zhǔn)備了我從大學(xué)到大廠工作的軟件測試資料,無償分享給大家胀溺,需要的可以自取wenruo.ysepan.com

模型場景

  1. 業(yè)務(wù)模型:業(yè)務(wù)場景裂七、流量轉(zhuǎn)化漏斗;

  2. 測試模型:關(guān)注核心場景仓坞,過濾無關(guān)及非核心業(yè)務(wù)背零;

  1. 場景模型:從系統(tǒng)架構(gòu)設(shè)計(jì)層面出發(fā),關(guān)注不同層面无埃,提升性能徙瓶!

  1. 基準(zhǔn):單機(jī)單服務(wù)單接口;

  2. 并發(fā):設(shè)定閾值嫉称,觀察水位侦镇;

  3. 容量:階梯式加壓、性能拐點(diǎn)织阅、資源瓶頸壳繁;

  4. 異常:容錯(cuò)處理、監(jiān)控告警荔棉、容災(zāi)恢復(fù)演練闹炉;

  5. 穩(wěn)定性:長期穩(wěn)定正確提供服務(wù)的能力,可用性SLA润樱;


測試方案

  1. 項(xiàng)目背景:說明項(xiàng)目開展的背景及目的渣触;

  2. 測試方案:針對項(xiàng)目涉及的場景,測試實(shí)施的大體方案壹若;

  1. 實(shí)施準(zhǔn)則:任何項(xiàng)目嗅钻,都要有準(zhǔn)入準(zhǔn)出和暫停中止準(zhǔn)則;

  2. 性能模型:針對具體的場景店展,設(shè)計(jì)的性能模型最好經(jīng)過評估驗(yàn)證养篓;

  1. 測試策略:針對測試模型所采用的不同的測試策略,同步的測試策略要達(dá)成什么樣的目的赂蕴;

  2. 性能指標(biāo):業(yè)務(wù)指標(biāo)是多少柳弄?轉(zhuǎn)化的技術(shù)指標(biāo)是多少?冗余范圍有多大睡腿?

  1. 準(zhǔn)備工作:其中包含環(huán)境语御、數(shù)據(jù)峻贮、腳本、監(jiān)控等準(zhǔn)備事項(xiàng)应闯;

  2. 組織結(jié)構(gòu):整個(gè)項(xiàng)目中涉及哪些事項(xiàng)纤控?不同事項(xiàng)的負(fù)責(zé)人是誰?交付時(shí)間是什么時(shí)候碉纺?


結(jié)果評估

在性能測試實(shí)施過程中船万,準(zhǔn)確定義和描述性能測試結(jié)果,及針對不同結(jié)果進(jìn)行模型分析骨田,是很重要的一項(xiàng)能力耿导。

  1. 性能實(shí)施方法論

  1. 基于指標(biāo)構(gòu)建;

  2. 建模是分析的過程和結(jié)果态贤;

  3. 基于真實(shí)環(huán)境的系統(tǒng)模擬舱呻;

  4. 壓測實(shí)施過程是整體的核心;

  5. 需要設(shè)定統(tǒng)一的目標(biāo)悠汽、流程箱吕、分析方法、組織結(jié)構(gòu)柿冲;

  1. 正確描述性能結(jié)果和過程的術(shù)語

  1. 瓶頸描述:什么場景執(zhí)行了什么策略/操作茬高,因?yàn)槭裁丛驅(qū)е铝耸裁?strong>結(jié)果;

  2. 解決方案:優(yōu)化了哪里假抄?驗(yàn)證的方式及結(jié)果怎栽?是否滿足預(yù)期&是否解決了發(fā)現(xiàn)的問題?

  1. 性能分析層級(jí)

  1. 業(yè)務(wù)分級(jí):業(yè)務(wù)-場景-數(shù)據(jù)-架構(gòu)-參數(shù)宿饱;

  2. 技術(shù)分級(jí):引擎-網(wǎng)絡(luò)-應(yīng)用-中間件-數(shù)據(jù)庫熏瞄;

  1. 工具:關(guān)注指標(biāo),從結(jié)果反推過程刑棵;

  2. 配置:線程巴刻、連接數(shù)愚铡、Timeout蛉签、長短鏈接、同步異步沥寥、路由轉(zhuǎn)發(fā)碍舍;

  3. 應(yīng)用:日志、硬件配置邑雅、資源使用率片橡;

  4. 中間件:Job、緩存命中淮野、消息堆積捧书、Consumer配置吹泡;

  5. 數(shù)據(jù)庫:資源耗用、庫表結(jié)構(gòu)经瓷、表鎖行鎖爆哑、活躍連接數(shù)、最大連接數(shù)舆吮;

  1. 性能拐點(diǎn)

  1. TPS增長放緩揭朝,RT快速上升;

  1. 性能交叉點(diǎn)

  1. 模型上的TPS和RT交叉節(jié)點(diǎn)色冀;

  1. 性能平衡點(diǎn)

  1. 重點(diǎn)關(guān)注業(yè)務(wù)可接受的最大RT潭袱;

  1. 性能衰減點(diǎn)

  1. timeout參數(shù)&TPS急劇惡化抖降&RT快速飆升;


腳本設(shè)計(jì)

  1. 什么時(shí)候需要做腳本關(guān)聯(lián)锋恬?

  1. 服務(wù)端結(jié)果動(dòng)態(tài)返回屯换,非冪等;

  2. response body的參數(shù)需要向下透傳与学;

  1. 如何理解并發(fā)和事務(wù)的區(qū)別趟径?

  1. 并發(fā)指的是同一時(shí)刻服務(wù)端接收到的請求數(shù),而非壓測引擎的并發(fā)線程/RPS癣防;

  1. thinktime怎么用蜗巧?

  1. 它有什么效果?

  2. 是否存在真實(shí)的業(yè)務(wù)場景蕾盯?

  3. 是否影響整體的壓測場景和服務(wù)資源幕屹?

  1. 主要關(guān)注哪些指標(biāo)?

  1. 并發(fā)數(shù)级遭、TPS望拖、ART、99%RT挫鸽、CPU%说敏、Memory%、systemLoad%丢郊;


典型特例

  1. 文件存儲(chǔ)優(yōu)化

  1. 原理:文件/圖片存儲(chǔ)在源節(jié)點(diǎn)盔沫,利用CDN緩存各種變更和路徑。CDN未命中枫匾,回源節(jié)點(diǎn)處理并返回架诞,同時(shí)同步最新的變更和路徑到CDN。

  2. 優(yōu)點(diǎn):節(jié)省存儲(chǔ)成本干茉,提高查詢展示渲染性能谴忧,靈活滿足業(yè)務(wù)。

  3. 注意事項(xiàng):大文件分塊存儲(chǔ),避免局部過熱導(dǎo)致單機(jī)磁盤IO過載沾谓,分塊有助于整體系統(tǒng)資源調(diào)度委造。

  1. 秒殺超賣場景

適用場景:秒殺、限時(shí)搶購均驶、限量搶購等争涌。

  1. 單用戶單端多次搶購;

  2. 單用戶單端限量搶購辣恋;

  3. 單用戶多端搶購→低并發(fā)亮垫;

  4. 單用戶多端搶購→高并發(fā);

這里給大家準(zhǔn)備了我從大學(xué)到大廠工作的軟件測試資料伟骨,無償分享給大家饮潦,需要的可以點(diǎn)擊自取wenruo.ysepan.com


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市携狭,隨后出現(xiàn)的幾起案子继蜡,更是在濱河造成了極大的恐慌,老刑警劉巖逛腿,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件稀并,死亡現(xiàn)場離奇詭異,居然都是意外死亡单默,警方通過查閱死者的電腦和手機(jī)碘举,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來搁廓,“玉大人引颈,你說我怎么就攤上這事【惩桑” “怎么了蝙场?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長粱年。 經(jīng)常有香客問我售滤,道長,這世上最難降的妖魔是什么台诗? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任完箩,我火速辦了婚禮,結(jié)果婚禮上拉庶,老公的妹妹穿的比我還像新娘嗜憔。我一直安慰自己秃励,他們只是感情好氏仗,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般皆尔。 火紅的嫁衣襯著肌膚如雪挨措。 梳的紋絲不亂的頭發(fā)上绵脯,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼演痒。 笑死,一個(gè)胖子當(dāng)著我的面吹牛嘶摊,可吹牛的內(nèi)容都是我干的铅匹。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼每辟,長吁一口氣:“原來是場噩夢啊……” “哼剑辫!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起渠欺,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤妹蔽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后挠将,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胳岂,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年舔稀,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了乳丰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,841評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡内贮,死狀恐怖成艘,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情贺归,我是刑警寧澤淆两,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站拂酣,受9級(jí)特大地震影響秋冰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜婶熬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一剑勾、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧赵颅,春花似錦虽另、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春族展,著一層夾襖步出監(jiān)牢的瞬間森缠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工仪缸, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留贵涵,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓恰画,卻偏偏與公主長得像宾茂,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子拴还,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評論 2 354

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

  • 性能測試:利用工具模擬大量用戶操作刻炒,驗(yàn)證系統(tǒng)承受的負(fù)載情況。性能測試的目的:找到潛在的性能問題或瓶頸自沧,分析并解決坟奥;...
    小仙女本人呀閱讀 15,577評論 1 15
  • 從14年11月到18年6月,一直專注于服務(wù)端性能測試拇厢,發(fā)現(xiàn)有些同學(xué)經(jīng)常對一些基礎(chǔ)概念和指標(biāo)有異議爱谁,故寫本文,希望對...
    測試在路上閱讀 2,919評論 0 8
  • 1孝偎、性能測試(性能工程)概念 通過分析業(yè)務(wù)邏輯和技術(shù)架構(gòu)访敌,創(chuàng)建性能模型,制定性能方案衣盾,準(zhǔn)備應(yīng)用環(huán)境寺旺,設(shè)計(jì)并實(shí)施性能...
    Sandra_liu閱讀 1,094評論 0 1
  • 作者:Gakki 基礎(chǔ)概念:HPS、TPS势决、QPS阻塑、RPS、RT果复、并發(fā)用戶數(shù)概念陈莽?簡要介紹? HPS(Hits P...
    Gakki0725閱讀 863評論 0 1
  • 一虽抄、性能測試概念 性能測試針對系統(tǒng)的性能指標(biāo)走搁,建立性能測試模型,制定性能測試方案迈窟,制定監(jiān)控策略私植,在場景條件之下執(zhí)行...
    sherlywu88閱讀 435評論 0 0