柚幣抽獎壓測報告

1. 概率驗證:

抽獎概率主要包括2個方面:

  • 獎品概率:后臺設(shè)置獎品的獲獎概率,驗證抽獎獲得的獎品是否符合概率分布;
  • 獎品概率浮動:當(dāng)非默認(rèn)獎品C的庫存變?yōu)?時,默認(rèn)獎品的獲獎概率隨之增加(增加值為非默認(rèn)獎品C的獲獎概率);

基于以上2點,我們設(shè)計獎品及概率分布如下表:

獎品列表 獲獎概率 庫存 是否默認(rèn)
獎品A 40% 10000
獎品B 30% 10000
獎品C 30% 0
其他 0% 10000

測試的樣本數(shù)目為1000次抽獎,需要得到的結(jié)果為:抽中獎品A的概率約為70%(即40%+30%),抽中獎品B的概率約為30%,抽中其他獎品的概率為0。

基于以上的設(shè)計,使用Jmeter工具模擬用戶抽獎,結(jié)果符合預(yù)期,如下表:

image.png

注:我們在使用Jmeter時使用了斷言的方式,即抽中獎品A返回true,其他false,同時,我們也通過檢查結(jié)果樹確認(rèn)返回false的獎品均為獎品B。所以上表的錯誤率30.10%代表抽中獎品B的概率,69.90%表示抽中獎品A的概率。

2. 是否超賣驗證

超賣可能出現(xiàn)的場景:當(dāng)獎品數(shù)為1個時,再次多個用戶請求抽獎,存在>1個用戶抽到獎品。針對這種測試場景,確定測試方案如下:

將獎品庫存設(shè)置為1,1000并發(fā)進行請求,驗證只有1個用戶抽獎成功,其他用戶返回活動已下線。

根據(jù)上述方案,測試結(jié)果:無超賣現(xiàn)象。

3. 接口壓測

本次主要針對2個涉及到性能的接口進行壓測:柚幣抽獎 & 獲得額外獎品。壓測結(jié)果如下:

接口名稱 并發(fā)量 TPS 平均響應(yīng)時間(ms)
柚幣抽獎 48 18.7 2286
額外獎品 48 176.7 243

通過以上數(shù)據(jù)可知,柚幣抽獎接口性能較低,低于預(yù)期,即柚幣商城首頁接口(tae_coin)的接口性能(TPS 約為60),上線風(fēng)險較高。

下面針對柚幣抽獎接口涉及到的接口做具體分析:

3.1 柚幣中心接口

首先,先對柚幣中心的查柚幣、扣柚幣、加柚幣進行壓測,該部分壓測請廈門@翁秀妹@周澤潤進行了協(xié)助。@翁秀妹在內(nèi)網(wǎng)環(huán)境下,得出這3個接口的壓測結(jié)果如下:

接口名稱 并發(fā)量 TPS 平均響應(yīng)時間(ms) CPU占用率 平均負(fù)載
查柚幣 48 228 308 6% 1
扣柚幣 48 126 559 18% 3
加柚幣 48 447 102 56% 24

因為電商這邊是通過公網(wǎng)與柚幣中心進行交互,所以,我們又針對公網(wǎng)環(huán)境對上述3個接口進行了壓測(48并發(fā)、5min),因柚幣中心的服務(wù)器無法監(jiān)控,我們僅給出接口對應(yīng)的TPS和平均響應(yīng)時間,如下表:

接口名稱 并發(fā)量 TPS 平均響應(yīng)時間(ms)
查柚幣 48 36 1194
扣柚幣 48 41.8 1030
加柚幣 48 343.3 124

Jmeter數(shù)據(jù)如下:

查柚幣


image.png

加柚幣


image.png

扣柚幣:


image.png

由上面數(shù)據(jù)可知,目前柚幣中心接口經(jīng)過改造后,扣柚幣、查柚幣接口在走外網(wǎng)的情況下TPS較低、平均響應(yīng)時間較長。

然后,我們針對柚幣抽獎、額外獎品接口進行壓測,其中,柚幣抽獎接口涉及到柚幣中心的查柚幣、扣柚幣、加柚幣接口,額外獎品如配置為柚幣商品,則涉及到柚幣中心的加柚幣接口。這里為了驗證電商獨立業(yè)務(wù)代碼,暫給額外獎品配置為非柚幣商品。

3.2 柚幣抽獎接口

壓測方案:

并發(fā)數(shù)為48,穩(wěn)壓5min,利用332個不同用戶不斷地去抽獎,獲得該接口的TPS和平均響應(yīng)時間,同時監(jiān)控服務(wù)器性能。

壓測結(jié)果:
接口名稱 并發(fā)量 TPS 平均響應(yīng)時間(ms) CPU占用率(應(yīng)用服務(wù)器) CPU占用率(數(shù)據(jù)庫)
額外獎品 48 18.7 2286 12% 1%

Jmeter數(shù)據(jù)統(tǒng)計:


image.png

通過上面數(shù)據(jù)及代碼日志,可知柚幣抽獎的主要耗時集中在curl請求柚幣中心的扣柚幣接口上面,所以造成該接口耗時較長,其中查柚幣已在柚幣首頁時進行了緩存優(yōu)化,所以柚幣抽獎接口不會調(diào)用查柚幣接口。

代碼log日志——記錄功能模塊耗時


image.png

3.3 額外獎品接口

壓測方案:

并發(fā)數(shù)為48,穩(wěn)壓5min,利用332個不同用戶不斷地去領(lǐng)取額外獎品,獲得該接口的TPS和平均響應(yīng)時間,同時監(jiān)控服務(wù)器性能。

壓測結(jié)果:
接口名稱 并發(fā)量 TPS 平均響應(yīng)時間(ms) CPU占用率(應(yīng)用服務(wù)器) CPU占用率(數(shù)據(jù)庫)
額外獎品 48 176.7 243 80% 5%

Jmeter數(shù)據(jù)統(tǒng)計


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在使用Jmeter進行接口的性能測試時,由于Jmeter 是JAVA應(yīng)用,對于CPU和內(nèi)存的消耗比較大,所以,當(dāng)需...
    燕京博士閱讀 4,300評論 0 16
  • 一般的抽獎管理功能,基本是在一個獎池中放一堆獎品,分別給它們設(shè)置不同的數(shù)量和概率,在獎品沒有發(fā)完的情況下,...
    wwking閱讀 10,443評論 3 16
  • 一般的抽獎管理功能,基本是在一個獎池中放一堆獎品,分別給它們設(shè)置不同的數(shù)量和概率,在獎品沒有發(fā)完的情況下,概...
    wwking02閱讀 4,164評論 1 4
  • 互聯(lián)網(wǎng)壓力性能Badboy.Jmeterhttp://itopic.org/jmeter-http-tcp.htm...
    燕京博士閱讀 3,118評論 0 20
  • 關(guān)于拿破侖,高中學(xué)歐美歷史的時候,講到法國大革命,接著就是拿破侖的執(zhí)政府?,F(xiàn)在回想,當(dāng)初歷史書上的講的那些東西是多...
    大眼貓閱讀 258評論 0 0

友情鏈接更多精彩內(nèi)容