天天看點

通過案例帶你輕松玩轉JMeter連載(46)

3.2容量負載測試執行

我們采用二分逼近法來尋找容量負載測試的拐點,用過python腳本向資料庫中注入資料,通過delete SQL語句删除資料。固定線上使用者數為100,每次測試仍舊持續運作10分鐘,如果測試錯誤百分比在5%以内(含5%)認為測試正常,否則認為測試出現異常。設定通過的最小值與失敗最大值之間內插補點 (精度) 為<10000。

1)建立如下代碼,目的是向資料庫中加入資料。

if __name__=='__main__':
    db = DB()

    db.connect()

    tablename ="goods_goods"

    for i in range(100000,200000):

       j = i % 10

       if j ==0:

            values =str(i)+",'茶葉',67.87,'/static/image/1.jpg','這是款好的茶葉'"

       elif j ==1:

            values =str(i)+",'火腿腸',100.47,'/static/image/2.jpg','這是款好的火腿腸'"

       elif j ==2:

            values =str(i)+",'五香豆',100.47,'/static/image/2.jpg','這是款好的五香豆'"

       elif j ==3:

            values =str(i)+",'花生',100.47,'/static/image/2.jpg','這是款好的花生'"

       elif j ==4:

           values =str(i)+",'烤鴨',100.47,'/static/image/2.jpg','這是款好的烤鴨'"

       elif j ==5:

            values =str(i)+",'瓜子',100.47,'/static/image/2.jpg','這是款好的瓜子'"

       elif j ==6:

            values =str(i)+",'大排',100.47,'/static/image/2.jpg','這是款好的大排'"

       elif j ==7:

            values =str(i)+",'烤肉',100.47,'/static/image/2.jpg','這是款好的烤肉'"

       elif j ==8:

            values =str(i)+",'羊肉串',100.47,'/static/image/2.jpg','這是款好的羊肉串'"

       elif j ==9:

             values =str(i)+",'辣子雞丁',100.47,'/static/image/2.jpg','這是款好的辣子雞丁'"

       db.insert(tablename,values)

db.close()
           

複制

2)用Jmeter打開ebussine_old.jmx,把購物車吞吐量控制器與檢視商品詳情吞吐量控制器中的吞吐量設定為0。

3)把查詢商品吞吐量控制器的吞吐量設定為100。這樣也就僅僅對查詢商品進行設定。

4)線程組并發數改為100,其他不變。

5)循環控制器循環時間為10。

6)通過腳本設定商品中的資料為100000條,運作10分鐘,錯誤百分比為7.67%,超過了5%的門檻值。

7)通過SQL語句删除商品中的資料,使其個數為70000條,運作10分鐘,錯誤百分比為1.87%,說明容量測試拐點在70000與100000之間。

8)通過腳本設定商品中的資料為80000條,運作10分鐘,錯誤百分比為5.52%,說明容量測試拐點在70000與80000之間。

9)通過腳本設定商品中的資料為75000條,運作10分鐘,錯誤百分比為1.75%,說明容量測試拐點在75000與80000之間。二者之間的內插補點為5000,低于我們預先設定好的精度<=10000,是以認為拐點為75000。

10)打開壓測端與被測端的監控工具(詳見第11章介紹),對在商品數為75000的場景下運作10分鐘測試進行監控。

11)将測試産生的拐點資料jtl導入到各個報表中進行分析。

3.3疲勞性測試執行

1)用JMeter打開ebussines_old.jmx或者ebusiness.jmx,将線程組中的線程數設定為100,Ramp_Up時間設定為5,循環次數為永遠。打開排程器,持續時間為48小時(606024*2=172800秒)。延遲啟動為60秒。如圖15所示。

通過案例帶你輕松玩轉JMeter連載(46)

圖15 疲勞性測試線程組設定

2)如果打開的是ebusiness.jmx,線程組(新)也按照上一步進行設定。

3)查詢商品的同步定時器模拟使用者數量設定為50。

4)檢視商品詳情的同步定時器模拟使用者數量設定為30。

5)檢視商品詳情的同步定時器模拟使用者數量設定為20。

6)如果打開的是ebusiness.jmx,檢視商品詳情同步定時器和商品清單同步定時器模拟使用者數量設定為50。

7)打開被測程式

8)測試,保證設定無誤。

9)啟動壓測端監控程式,比如将在第11.1節講的JMeter叢集+InfluxDB存儲+Grafana。

10)打開被測端監控程式,比如将在第11.2節講的Exporter + Prometheus + Grafana。

11)根據需求打開全鍊路監控程式,比如将在第11.3節講的SkyWalking。

12)啟動測試。

13)在測試過程中随時檢視監控軟體的狀态。

14)測試完畢,将測試jtl資料導入到JMeter中,進行分析。