Jmeter if控制器的使用 - 真正實現3:2的業務

 

  1、業務分析:微信

    兩種支付方式:1.銀聯刷卡支付(線下支付)、2.微信掃碼支付(線上支付),按照公司目前的交易訂單來源,銀聯刷卡支付:微信掃碼支付=3:2,因此在執行性能測試的時候,須要按照3:2的比例來測試,也就是說10條訂單,6條是刷卡支付,4條是掃碼支付。函數

   2、if控制器元件:工具

    在jmeter工具執行性能測試時,能夠用if控制器元件來實現,在條件中,添加上判斷代碼,判斷代碼是針對if控制器之下的每個可運行測試元件單獨評估的,要求全部的請求都要發到該控制器下,判斷語句才能生效,若是是同級的元件,是沒有做用的。性能

  3、條件代碼設計:    測試

  1.用__counter該函數能夠統計執行的次數。在測試的時候,我用了1個用戶,執行1秒鐘。成功請求57次:
spa

 2.那麼業務要求3:2,57條總的數據,既要求34條數據是銀聯刷卡、23條是掃碼支付的。不少網上的代碼條件都是${__counter(true,)}%2==1||${__counter(true,)}%3==0,這個比例不對的,以下詳細解析:線程

   1.    2.   3.   4.    5.    6.   7.    8.    9.   10   設計

   知足條件的是1.3.5.6.7.9         餘4個知足3:2   3d

  11.  12.  13.  14. 15.  16.  17.  18.  19.  20    blog

  知足條件的是11.12.13.15.17.18.19    餘3個不知足3:2

  21.  22.  23.  24. 25.  26.  27.  28.  29.  30    

  知足條件的是21.23.24.25.27.28.29.30   餘2不知足3:2

    31.  32.  33.  34. 35.  36.  37.  38.  39.  40    

  知足條件的是31.33.35.36.37.39      餘4個知足3:2

    41.  42.  43.  44. 45.  46.  47.  48.  49.  50  

   知足條件的是41.42.43.45.37.48.49    餘3個不知足3:2

    51.  52.  53.  54. 55.  56.  57.  58.  59.  60    

  知足條件的是51.53.54.55.57.48.59.60  餘2不知足3:2

經過上面的數據,咱們發現該條件不知足業務的3:2需求。因此網上提供的是錯誤的。我本身寫了一個知足條件的,以下:

${__counter(true,)}%2==1||${__counter(true,)}%10==0

   1.    2.   3.   4.    5.    6.   7.    8.    9.   10   

   知足條件的是1.3.5.7.9 .10           餘4個知足3:2  

  11.  12.  13.  14. 15.  16.  17.  18.  19.  20   

   知足條件的是11.13.15.17.19.20    餘4個知足3:2

     21.  22.  23.  24. 25.  26.  27.  28.  29.  30    

  知足條件的是21.23.25.27.29.30      餘4個知足3:2

後面的數據都不用舉例了,這個條件是都能知足的。比例是3的條件已經寫好了,那麼很容易,咱們也能夠得出2的條件:

${__counter(true,)}%2==0&&${__counter(true,)}%10!==0

   1.    2.   3.   4.    5.    6.   7.    8.    9.   10    

  知足條件的是2.4.6.8             餘6個知足3:2 

  11.  12.  13.  14. 15.  16.  17.  18.  19.  20   

   知足條件的是12.14.16.18      餘6個知足3:2 

     21.  22.  23.  24. 25.  26.  27.  28.  29.  30    

  知足條件的是22.24.26.28       餘6個知足3:2 

  4、執行測試: 

 場景、腳本以下:

 

  場景設置的是10VU,運行10S,執行結果總的業務量比例是3:2,TPS得比例也是3:2,以下所示:

 這裏只介紹if條件的使用,整個腳本的運行,看本身的需求,我這裏都是接口的測試,前面的文章有介紹,建議在測試的時候,使用的是同一腳本,個人2個腳本都是同樣的,腳本以下:

 

  5、業務測試結果: 

 個人業務最終實現的結果以下3線下if控制器表明的是銀聯刷卡,2線上if控制器表明的是掃碼支付,測試的數據是3:2。請求都放到同一個線程組中,業務請求放到if控制器下。在沒有瓶頸的狀況下,該公式都是正確的,若是是有瓶頸,那麼公式測試出來的結果不必定知足。

相關文章
相關標籤/搜索