阿里巴巴在应用性能测试场景设计和实现上的实践
版權(quán)聲明:本文為博主原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接和本聲明。
本文鏈接:https://blog.csdn.net/yunqiinsight/article/details/99827709
本文是《Performance Test Together》(簡(jiǎn)稱(chēng)PTT)系列專(zhuān)題分享的第5期,該專(zhuān)題將從性能壓測(cè)的設(shè)計(jì)、實(shí)現(xiàn)、執(zhí)行、監(jiān)控、問(wèn)題定位和分析、應(yīng)用場(chǎng)景等多個(gè)緯度對(duì)性能壓測(cè)的全過(guò)程進(jìn)行拆解,以幫助大家構(gòu)建完整的性能壓測(cè)的理論體系,并提供有例可依的實(shí)戰(zhàn)。
該系列專(zhuān)題分享由阿里巴巴 PTS 團(tuán)隊(duì)出品,歡迎在文末處加入性能壓測(cè)交流群,參與該系列的線上分享。
第1期:《壓測(cè)環(huán)境的設(shè)計(jì)和搭建》
第2期:《性能壓測(cè)工具選型對(duì)比》
第3期:《阿里巴巴在開(kāi)源壓測(cè)工具 JMeter 上的實(shí)踐和優(yōu)化》
第4期:《并發(fā)模式與 RPS 模式之爭(zhēng),性能壓測(cè)領(lǐng)域的星球大戰(zhàn)》
本文將介紹應(yīng)用性能測(cè)試場(chǎng)景的設(shè)計(jì)和實(shí)現(xiàn),旨在借助阿里巴巴在這方面的沉淀幫助您更準(zhǔn)確的找到性能瓶頸,文章將圍繞以下:
性能測(cè)試的常見(jiàn)分類(lèi)
應(yīng)用性能測(cè)試場(chǎng)景的設(shè)計(jì)
應(yīng)用性能測(cè)試場(chǎng)景的設(shè)計(jì)實(shí)踐
應(yīng)用性能測(cè)試場(chǎng)景的實(shí)現(xiàn)
性能測(cè)試的常見(jiàn)分類(lèi)
負(fù)載測(cè)試:
一種驗(yàn)證性測(cè)試,它的目的是驗(yàn)證預(yù)設(shè)負(fù)載條件下的性能表現(xiàn)是否達(dá)到性能目標(biāo)(可用性、并發(fā)數(shù)/RPS、響應(yīng)時(shí)間等),在達(dá)到性能目標(biāo)之后不會(huì)繼續(xù)增加負(fù)載。
穩(wěn)定性測(cè)試:
負(fù)載測(cè)試的一個(gè)子集,側(cè)重于發(fā)現(xiàn)、驗(yàn)證只有經(jīng)過(guò)長(zhǎng)時(shí)間的運(yùn)行才會(huì)暴露的問(wèn)題。比如內(nèi)存泄漏、FGC 等。
壓力測(cè)試:
一種破壞性測(cè)試,嘗試探測(cè)應(yīng)用或者基礎(chǔ)設(shè)施的極限能力。因此壓力測(cè)試過(guò)程中會(huì)一直增加負(fù)載直到部分性能指標(biāo)不再符合性能預(yù)期。壓力測(cè)試能發(fā)現(xiàn)僅在高負(fù)載條件下出現(xiàn)的同步問(wèn)題、競(jìng)爭(zhēng)條件、內(nèi)存泄漏等。通過(guò)壓力測(cè)試我們還可以確定應(yīng)用服務(wù)在什么條件下會(huì)變得不可用,不可用的現(xiàn)象,以及可以通過(guò)哪些監(jiān)控指標(biāo)來(lái)監(jiān)控即將發(fā)生的不可用,壓測(cè)結(jié)果通??梢詾橄蘖鞯裙芸叵到y(tǒng)提供數(shù)據(jù)支撐。
容量測(cè)試:
往往與容量規(guī)劃一起進(jìn)行,是在保證用戶(hù)體驗(yàn)不受影響(穩(wěn)定性)的前提下,使有限的資源的利用率最大化(成本)。也可以用它來(lái)預(yù)估未來(lái)用戶(hù)量增長(zhǎng)到某個(gè)量級(jí)的情況下,需要多少資源(例如處理器、內(nèi)存、磁盤(pán)、網(wǎng)絡(luò)帶寬)來(lái)支持。
應(yīng)用性能測(cè)試場(chǎng)景的設(shè)計(jì)
在了解了相關(guān)背景之后,我們開(kāi)始進(jìn)入正題。性能場(chǎng)景的設(shè)計(jì)主要包括:業(yè)務(wù)場(chǎng)景建模、測(cè)試數(shù)據(jù)準(zhǔn)備、監(jiān)控指標(biāo)確認(rèn)三個(gè)關(guān)鍵步驟。下面我們用實(shí)戰(zhàn)的方式說(shuō)明每個(gè)步驟的常見(jiàn)做法。
業(yè)務(wù)場(chǎng)景建模
確定壓測(cè)場(chǎng)景范圍:
人類(lèi)是不可預(yù)測(cè)的,在性能測(cè)試中模擬每個(gè)用戶(hù)可能的操作場(chǎng)景基本上是不可能實(shí)現(xiàn)的。一般情況下我們必須要關(guān)注的性能場(chǎng)景包括但不限于:
高頻使用的場(chǎng)景
關(guān)鍵的業(yè)務(wù)場(chǎng)景
最耗性能的場(chǎng)景
曾經(jīng)出現(xiàn)過(guò)問(wèn)題的場(chǎng)景
……
在測(cè)試具有大量新功能的業(yè)務(wù)時(shí),往往需要與業(yè)務(wù)方一起確認(rèn)預(yù)期內(nèi)有哪些功能點(diǎn)可能會(huì)被高頻使用,需要與研發(fā)人員確認(rèn)哪些功能雖然使用頻率不高,但是存在性能隱患、容易引起雪崩效應(yīng);在測(cè)試已經(jīng)上線的功能時(shí),還可以通過(guò)業(yè)務(wù)監(jiān)控、系統(tǒng)日志來(lái)分析現(xiàn)有用戶(hù)的行為模式,得到更加逼近真實(shí)用戶(hù)行為的業(yè)務(wù)場(chǎng)景。
業(yè)務(wù)場(chǎng)景的操作路徑:
業(yè)務(wù)場(chǎng)景的操作路徑可以借助一些可視化的工具來(lái)描述,這部分工作相對(duì)比較簡(jiǎn)單,不再詳細(xì)深入。我們?cè)敿?xì)說(shuō)明一下比較常見(jiàn)的延時(shí)策略。
思考時(shí)間:
思考時(shí)間模擬的是用戶(hù)在等待響應(yīng)、閱讀頁(yè)面內(nèi)容、表單填寫(xiě)等延遲操作的場(chǎng)景。每個(gè)人的閱讀速度、輸入速度都存在非常大的差異,決定了每個(gè)人的思考時(shí)間也是不一樣的,在性能測(cè)試配置中有常見(jiàn)的四種延時(shí)模型覆蓋了絕大部分的延時(shí)場(chǎng)景:
固定時(shí)間:顧名思義,設(shè)置一個(gè)固定的思考時(shí)間。
均勻分布:均勻分布在范圍的上限和下限之間的隨機(jī)數(shù)。
正態(tài)分布:根據(jù)中心極限定理,如果一個(gè)事物受到多種因素的影響,不管每個(gè)因素本身是什么分布,它們加總后,結(jié)果的平均值就是正態(tài)分布。
負(fù)指數(shù)分布:該模型將延遲時(shí)間的頻率強(qiáng)烈地偏向該范圍的一端。
雙駝峰正態(tài)分布:雙峰駝?wù)龖B(tài)分布可以模擬第一次訪問(wèn)時(shí)把頁(yè)面說(shuō)明整個(gè)仔細(xì)的閱讀一遍,但下次訪問(wèn)時(shí)直接掃過(guò)頁(yè)面,點(diǎn)擊頁(yè)面深處的操作鏈接。
我們通??梢酝ㄟ^(guò)以下方式對(duì)思考時(shí)間進(jìn)行建模:
如果是已上線系統(tǒng),可以從線上日志統(tǒng)計(jì)分析出來(lái)平均值以及標(biāo)準(zhǔn)方差
沒(méi)有線上日志,可以從內(nèi)部人員的使用模式中收集響應(yīng)的數(shù)據(jù)
可以計(jì)算自己和同事訪問(wèn)的時(shí)候,在不同頁(yè)面停留的時(shí)間
如果沒(méi)有更好的來(lái)源,也可以從第三方統(tǒng)計(jì)數(shù)據(jù)獲取延時(shí)數(shù)據(jù)
集合點(diǎn)
集合點(diǎn)模擬的是大量的用戶(hù)在同一時(shí)刻一起做同樣的操作(加購(gòu)、付款等),集合的方式通常包括按時(shí)間集合和按量集合。一般只有具備秒殺特性的業(yè)務(wù)才會(huì)使用到。雖然直接在壓測(cè)工具中設(shè)置巨大的起步量級(jí)看似也能模擬秒殺的行為,但是壓測(cè)工具一般都存在一個(gè)不太穩(wěn)定的預(yù)熱的過(guò)程,因此不推薦超高的起步量級(jí)模擬秒殺。
確定場(chǎng)景的施壓參數(shù)
施壓模式:
常見(jiàn)的施壓模式有以下兩種, 并發(fā)模式與 RPS 模式?jīng)]有優(yōu)劣,各自有各自適用的場(chǎng)景。
1、并發(fā)模式(虛擬用戶(hù)模式)
并發(fā)是指虛擬并發(fā)用戶(hù)數(shù),從業(yè)務(wù)角度,也可以理解為同時(shí)在線的用戶(hù)數(shù)。如果需要從客戶(hù)端的角度出發(fā),摸底業(yè)務(wù)系統(tǒng)各節(jié)點(diǎn)能同時(shí)承載的在線用戶(hù)數(shù),可以使用該模式設(shè)置目標(biāo)并發(fā)。
2、RPS 模式(吞吐量模式)
RPS(Requests Per Second)是指每秒請(qǐng)求數(shù)。RPS 模式即“吞吐量模式”,通過(guò)設(shè)置每秒發(fā)出的請(qǐng)求數(shù),從服務(wù)端的角度出發(fā),直接衡量系統(tǒng)的吞吐能力,免去并發(fā)到 RPS 的繁瑣轉(zhuǎn)化,一步到位。
目標(biāo)量級(jí):
目標(biāo)量級(jí)往往來(lái)自于對(duì)項(xiàng)目計(jì)劃、目標(biāo),業(yè)務(wù)方要求,或者是技術(shù)文檔的量化。
場(chǎng)景的負(fù)載占比:
已上線應(yīng)用,盡量使用線上的日志、埋點(diǎn)數(shù)據(jù)結(jié)合業(yè)務(wù)運(yùn)營(yíng)的預(yù)期目標(biāo)確保分配比例盡可能的符合實(shí)際情況;新上線的應(yīng)用一般依靠事前預(yù)期分配虛擬用戶(hù),在測(cè)試的執(zhí)行過(guò)程中可以逐步的調(diào)整。
測(cè)試數(shù)據(jù)準(zhǔn)備
高質(zhì)量的測(cè)試數(shù)據(jù)應(yīng)當(dāng)能真實(shí)的反映用戶(hù)的使用場(chǎng)景。我們一般會(huì)選擇以線上真實(shí)數(shù)據(jù)作為數(shù)據(jù)源,經(jīng)過(guò)采樣、過(guò)濾、脫敏,作為性能測(cè)試的測(cè)試數(shù)據(jù)。低質(zhì)量的測(cè)試數(shù)據(jù)也許能夠測(cè)試出一些問(wèn)題,但是更大的可能性是無(wú)效的測(cè)試結(jié)果。壓測(cè)數(shù)據(jù)至少包括基礎(chǔ)數(shù)據(jù)和運(yùn)行時(shí)數(shù)據(jù)兩種。
基礎(chǔ)數(shù)據(jù),主要是應(yīng)用系統(tǒng)存儲(chǔ)的元數(shù)據(jù),比如用戶(hù)信息、產(chǎn)品信息、商品信息等;基礎(chǔ)數(shù)據(jù)的數(shù)據(jù)量、數(shù)據(jù)分布應(yīng)當(dāng)與線上運(yùn)行的數(shù)據(jù)量相當(dāng),否則容易引起無(wú)效測(cè)試。
運(yùn)行時(shí)數(shù)據(jù),主要是虛擬用戶(hù)操作過(guò)程中需要使用的表單數(shù)據(jù),比如虛擬用戶(hù)的用戶(hù)名、密碼、搜索關(guān)鍵詞等;運(yùn)行數(shù)據(jù)的逼真度也是至關(guān)重要的。
確認(rèn)監(jiān)控指標(biāo)
在性能測(cè)試執(zhí)行過(guò)程中,往往需要實(shí)時(shí)觀察各項(xiàng)指標(biāo)是否正常,包括客戶(hù)端指標(biāo)、應(yīng)用服務(wù)器、數(shù)據(jù)庫(kù)、中間件、網(wǎng)絡(luò)入口等各方面的指標(biāo)。更重要的是,監(jiān)控的過(guò)程是發(fā)現(xiàn)系統(tǒng)瓶頸的過(guò)程,監(jiān)控?cái)?shù)據(jù)是性能基線管理、容量規(guī)劃甚至是高可用架構(gòu)的重要基礎(chǔ)。我們通常需要關(guān)注的監(jiān)控指標(biāo)包括:
業(yè)務(wù)接口指標(biāo),響應(yīng)時(shí)間、RPS、成功率等;
網(wǎng)絡(luò)指標(biāo),數(shù)據(jù)吞吐量、數(shù)據(jù)錯(cuò)誤率等;
服務(wù)器指標(biāo),連接數(shù)、CPU、內(nèi)存、I/O、磁盤(pán)等;
……
最理想的狀態(tài)是,這些監(jiān)控指標(biāo)能夠與性能測(cè)試工具集成,在一個(gè)操作界面上展示各個(gè)維度的監(jiān)控?cái)?shù)據(jù),并能夠基于策略來(lái)智能化、自動(dòng)化識(shí)別指標(biāo)異常。這對(duì)快速、準(zhǔn)確的定位壓測(cè)過(guò)程中可能出現(xiàn)的各種問(wèn)題是至關(guān)重要的。
應(yīng)用性能測(cè)試場(chǎng)景設(shè)計(jì)的實(shí)踐
JPetStore 是一個(gè)開(kāi)源的簡(jiǎn)單的Java語(yǔ)言開(kāi)發(fā)的在線寵物商店,可以從 GitHub 獲取到源碼。為了方便演示,我們用阿里云 EDAS 部署了一套 JPetStore 寵物購(gòu)物網(wǎng)站。
業(yè)務(wù)場(chǎng)景建模
在這次的實(shí)戰(zhàn)演示中,我們通過(guò)實(shí)際操作體驗(yàn)的方式來(lái)獲取所有的業(yè)務(wù)場(chǎng)景、操作路徑、思考時(shí)間。我們先用文字的方式來(lái)描述場(chǎng)景和操作路徑。
用戶(hù)登錄,訪問(wèn)首頁(yè)->進(jìn)登錄頁(yè)->登錄操作
購(gòu)買(mǎi)流程1,訪問(wèn)首頁(yè)->選擇產(chǎn)品大類(lèi)->進(jìn)入產(chǎn)品列表->進(jìn)入型號(hào)列表->查看型號(hào)詳情->加購(gòu)物車(chē)->思考(3s-5s)->提交訂單->確認(rèn)訂單
購(gòu)買(mǎi)流程2,訪問(wèn)首頁(yè)->搜索產(chǎn)品->進(jìn)入產(chǎn)品列表->進(jìn)入型號(hào)列表->查看型號(hào)詳情>加購(gòu)物車(chē)->思考(3s-5s)->提交訂單->確認(rèn)訂單
購(gòu)買(mǎi)流程3,訪問(wèn)首頁(yè)->搜索商品->進(jìn)入產(chǎn)品列表->進(jìn)入型號(hào)列表->加購(gòu)物車(chē)->思考(3s-5s)->提交訂單->確認(rèn)訂單
我們的目的是做壓力測(cè)試。我們選擇 RPS 模式,梯度遞增,漏斗模型;
與并發(fā)模式相比,RPS 模式可以實(shí)現(xiàn)更加精準(zhǔn)的流量控制;常見(jiàn)的限流設(shè)施都是基于TPS設(shè)置閾值的;因此我們首選 RPS 模式。
我們使用手動(dòng)遞增的方式,逐步的逼近系統(tǒng)極限。
在真實(shí)的業(yè)務(wù)中,用戶(hù)會(huì)由于各種原因(網(wǎng)絡(luò)、庫(kù)存、不喜歡、付款失敗等)而放棄購(gòu)買(mǎi),在此我們構(gòu)造一個(gè)漏斗模型,我們假定100個(gè)人查看詳情之后有30個(gè)人加入了購(gòu)物車(chē),15個(gè)人提交訂單,最終10個(gè)人確認(rèn)訂單,購(gòu)買(mǎi)成功;在真實(shí)的場(chǎng)景中我們可以從線上用戶(hù)行為中采集到這些信息。
假定用戶(hù)登錄容量足夠,不是這次壓力測(cè)試的重點(diǎn)業(yè)務(wù)。我們基于線上日志和產(chǎn)品運(yùn)營(yíng)分析得出以下結(jié)論:
使用購(gòu)買(mǎi)流程1的用戶(hù)占比10%
使用購(gòu)買(mǎi)流程2的用戶(hù)占比60%
使用購(gòu)買(mǎi)流程3的用戶(hù)占比為30%
最終,我們得到的業(yè)務(wù)模型如下圖所示:
?
測(cè)試數(shù)據(jù)準(zhǔn)備
因?yàn)樵搼?yīng)用專(zhuān)為測(cè)試而生,不用考慮數(shù)據(jù)污染,我們免去采樣、過(guò)濾、脫敏步驟,直接使用線上的基礎(chǔ)數(shù)據(jù)作為壓測(cè)的基礎(chǔ)數(shù)據(jù)?;A(chǔ)數(shù)據(jù)的結(jié)構(gòu)如下圖所示,當(dāng)然真實(shí)系統(tǒng)的基礎(chǔ)數(shù)據(jù),比這個(gè)復(fù)雜的多:
常見(jiàn)的壓測(cè)工具都支持 CSV 格式(可以簡(jiǎn)單理解為逗號(hào)分隔值,但是實(shí)際上更加復(fù)雜)的數(shù)據(jù)源。我們構(gòu)造的用戶(hù)登錄的運(yùn)行時(shí)數(shù)據(jù)格式如下圖所示:
確認(rèn)監(jiān)控指標(biāo)
依據(jù)我們的應(yīng)用部署架構(gòu)圖,本次壓測(cè)過(guò)程中需要關(guān)注 SLB、ECS、RDS 的基礎(chǔ)指標(biāo)(云監(jiān)控)和壓測(cè)引擎提供的 RPS、RT、成功率等接口指標(biāo)。各項(xiàng)監(jiān)控指標(biāo)均有平臺(tái)可以支撐,在此不做贅述。
應(yīng)用性能測(cè)試場(chǎng)景的實(shí)現(xiàn)
性能場(chǎng)景的實(shí)現(xiàn)主要包括:壓測(cè)工具選型、性能場(chǎng)景配置、施壓參數(shù)配置三個(gè)關(guān)鍵步驟,某些壓測(cè)工具還提供了監(jiān)控集成、SLA 等功能,我們稍后也會(huì)做一些介紹。
壓測(cè)工具選型
工欲善其事必先利其器,選擇一款高效的壓測(cè)工具往往能達(dá)到事半功倍的效果。然而壓測(cè)工具選型已經(jīng)是一個(gè)老生常談的話題了,今天我們換個(gè)角度,從場(chǎng)景實(shí)現(xiàn)的角度再對(duì)比一下,希望對(duì)大家做選型有所幫助,如果有哪些方面不太完善的地方,請(qǐng)?jiān)谖哪┝粞杂懻?。?duì)比詳情,點(diǎn)擊這里。
?
下面我們演示怎么在阿里云 PTS 上配置我們?cè)O(shè)計(jì)的壓力測(cè)試場(chǎng)景,由于操作都比較簡(jiǎn)單,僅截取關(guān)鍵配置用于演示,大家如果有不明白的地方可以留言討論或者進(jìn)入我們的釘釘群中討論。
下面我們演示怎么在阿里云 PTS 上配置我們?cè)O(shè)計(jì)的壓力測(cè)試場(chǎng)景,由于操作都比較簡(jiǎn)單,僅截取關(guān)鍵配置用于演示,大家如果有不明白的地方可以留言討論或者進(jìn)入我們的釘釘群中討論。
壓測(cè)場(chǎng)景配置
1、高仿真場(chǎng)景編排,完美再現(xiàn)用戶(hù)行為
壓測(cè)接口錄入:
錄入接口信息是一件非常繁瑣的事情,接口多,參數(shù)多經(jīng)常容易出錯(cuò)。今天我們用PTS提供的云端錄制器來(lái)演示怎么快速的梳理和錄入所有涉及到的接口。云端錄制器的原理是在本地電腦或者手機(jī)設(shè)備配置網(wǎng)絡(luò)代理,云端錄制器就能獲取到所有網(wǎng)絡(luò)請(qǐng)求的信息。具體的錄制步驟如下:
配置網(wǎng)絡(luò)代理。請(qǐng)參考 PTS 錄制器操作文檔即可,這里不再贅述。
在瀏覽器或者 App 中執(zhí)行業(yè)務(wù)操作。強(qiáng)烈建議使用域名過(guò)濾功能,可以避免錄制到干擾請(qǐng)求;每次執(zhí)行業(yè)務(wù)操作前先創(chuàng)建一個(gè)步驟并備注上業(yè)務(wù)名稱(chēng),而不要在所有操作錄制完成之后在梳理分類(lèi)(想象一下從幾百個(gè)請(qǐng)求中撈出來(lái)哪些是登陸相關(guān)的請(qǐng)求吧)。
選擇錄制到的接口信息,導(dǎo)入一個(gè)新場(chǎng)景。仍然請(qǐng)參考 PTS 錄制器操作文檔即可,這里不再贅述。
表單數(shù)據(jù)的參數(shù)化處理
這個(gè)步驟實(shí)際上是做場(chǎng)景與壓測(cè)數(shù)據(jù)的分離。PTS 支持常見(jiàn)的 CSV 格式文件、包含一個(gè) CSV 文件的 ZIP 文件作為場(chǎng)景的數(shù)據(jù)源。這里演示一下如何使用用戶(hù)名和密碼進(jìn)行虛擬用戶(hù)的登錄,其他參數(shù)的設(shè)置與此類(lèi)似,不在贅述。
第一步,將我們準(zhǔn)備的測(cè)試數(shù)據(jù)上傳到 PTS,并且給每一列設(shè)置變量名。
?
第二步,編輯登錄接口,將 username 變量的值和 password 變量的值設(shè)置為文件參數(shù)列表中的變量名。
接口間的參數(shù)關(guān)聯(lián)處理
這個(gè)步驟的主要作用是從前置接口的返回內(nèi)容中提取出后續(xù)接口需要的變量,傳遞給后續(xù)接口使用。在場(chǎng)景編排過(guò)程中經(jīng)常會(huì)碰到很復(fù)雜的關(guān)聯(lián)方式,比如加密、字符串截取等,可以使用系統(tǒng)函數(shù)、數(shù)據(jù)指令進(jìn)行加工處理,詳見(jiàn) PTS 操作文檔。我們演示一下怎么實(shí)現(xiàn)從產(chǎn)品列表中隨機(jī)選擇一個(gè)產(chǎn)品進(jìn)行購(gòu)買(mǎi)。
第一步,使用正則表達(dá)式從產(chǎn)品列表接口的響應(yīng)中隨機(jī)提取一個(gè)產(chǎn)品 ID ,作為該接口的出參。
?
第二步,在型號(hào)列表接口中,修改參數(shù) productId 的值為上一步導(dǎo)出的變量
第三步,將 itemId 也用類(lèi)似的方式配置參數(shù)關(guān)聯(lián),就實(shí)現(xiàn)了虛擬用戶(hù)隨機(jī)購(gòu)買(mǎi)商品的需求。操作過(guò)程類(lèi)似,不在贅述了。
檢查接口調(diào)用是否成功
檢查點(diǎn)的作用是保證接口調(diào)用是成功的,配置了檢查點(diǎn)的接口有業(yè)務(wù)成功率的監(jiān)控指標(biāo),是發(fā)現(xiàn)服務(wù)端問(wèn)題的重要渠道之一。PTS 支持多種復(fù)雜的檢查點(diǎn),具體配置請(qǐng)參考 PTS 操作文檔。下面演示怎么給產(chǎn)品列表接口添加檢查點(diǎn),檢查返回的產(chǎn)品 ID 是否存在。
?
2、靈活的施壓配置,想怎么壓就怎么壓
施壓參數(shù)配置
施壓參數(shù)主要包括壓力來(lái)源、壓測(cè)模式、加壓方式、虛擬用戶(hù)分配等,根據(jù)之前設(shè)計(jì)的場(chǎng)景模型,我們直接配置上去即可。
第一步,配置目標(biāo)量級(jí)、壓力來(lái)源、壓測(cè)時(shí)長(zhǎng)、IP 擴(kuò)展等信息
第二步,配置各個(gè)業(yè)務(wù)目標(biāo)量級(jí)的分配占比,這也是漏斗模型的關(guān)鍵
流量來(lái)源定制
PTS 支持 IP 數(shù)量定制、國(guó)內(nèi)公網(wǎng)流量的運(yùn)營(yíng)商和地域定制,如果有更加復(fù)雜的流量定制需求,還可以申請(qǐng)獨(dú)占資源池,全球流量定制都不是問(wèn)題。
?
3、完整實(shí)時(shí)監(jiān)控,瓶頸無(wú)所遁形
監(jiān)控集成&SLA監(jiān)控
PTS 支持添加云監(jiān)控,用于查看各項(xiàng)指標(biāo),更好地保證測(cè)試前提,記錄相關(guān)數(shù)據(jù),輸出最終結(jié)果。如果您使用了阿里云基礎(chǔ)服務(wù)(ECS、RDS、SLB),均可通過(guò)添加監(jiān)控的方式,在壓測(cè)及報(bào)告中便捷地查看相應(yīng)的監(jiān)控?cái)?shù)據(jù)。若未使用阿里云基礎(chǔ)服務(wù),亦可以使用PTS進(jìn)行施壓。
結(jié)合我們之前的架構(gòu)圖,我們給 ECS、SLB、RDS 配置云監(jiān)控集成,利用 PTS 的監(jiān)控大盤(pán),方便的監(jiān)控所有監(jiān)控指標(biāo)。
?
服務(wù)等級(jí)定義 SLA(Service Level Agreement)是判定服務(wù)是否異常的重要依據(jù)。壓測(cè)過(guò)程中,通過(guò)監(jiān)控核心服務(wù)狀態(tài)的 SLA 指標(biāo)數(shù)據(jù),可以更直觀地了解被壓測(cè)業(yè)務(wù)的狀態(tài)。PTS 支持定義常見(jiàn)的的、關(guān)鍵的 SLA:
業(yè)務(wù)質(zhì)量相關(guān)指標(biāo),RT、RPS、成功率;
ECS基礎(chǔ)監(jiān)控指標(biāo),CPU利用率、內(nèi)存利用率、load5;
RDS基礎(chǔ)監(jiān)控指標(biāo),CPU利用率、連接利用率;
SLB基礎(chǔ)監(jiān)控指標(biāo),丟棄連接數(shù)、后端異常ECS數(shù);
我們給提交訂單、確認(rèn)訂單、商品詳情、加購(gòu)物車(chē)接口配置 SLA 監(jiān)控,以及時(shí)的發(fā)現(xiàn)問(wèn)題。
總結(jié)
本文介紹了性能壓測(cè)場(chǎng)景設(shè)計(jì)和實(shí)現(xiàn)的常用方法和流程,針對(duì)目前幾款受眾相對(duì)較多的性能壓測(cè)工具給出了場(chǎng)景實(shí)現(xiàn)相關(guān)的功能對(duì)比。與實(shí)際需求匹配的方法和工具才是最佳實(shí)踐,大家可以針對(duì)不同需求選取最合適的性能壓測(cè)工具來(lái)實(shí)施性能測(cè)試。
原文鏈接
本文為云棲社區(qū)原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。
————————————————
版權(quán)聲明:本文為CSDN博主「阿里云云棲社區(qū)」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/yunqiinsight/article/details/99827709
總結(jié)
以上是生活随笔為你收集整理的阿里巴巴在应用性能测试场景设计和实现上的实践的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 安卓手机文件管理器在哪里打开(安卓手机文
- 下一篇: java中的void是什么?有什么作用?