jMeter壓測--以登錄爲例

1、jMeter準備:錄入登錄所用到的所有接口,可參見我的另一篇博客:https://blog.csdn.net/gao_xiao_qi/article/details/102485149

我錄入了5個接口:

(1)登錄初始化:登錄前要請求的接口

(2)獲取公鑰:用於對用戶名和密碼進行加密

(3)用戶名加密:前端輸入用戶名,後臺根據一定的加密規則(即用公鑰)返回用戶名加密後的密文

(4)密碼加密:類似於用戶名加密

(5)獲取手機號:用戶名和密碼加密後,使用加密後的字段請求接口,返回手機號

2、接口中的注意點:有調不通的接口,可以看下後臺日誌報什麼錯誤、是否是請求頭類型問題、是否是請求中帶中文導致亂碼。如果是請求頭類型的問題,可以對某個接口下添加HTTP Header Manager,如Content-Type設置爲application/json。具體可參考一篇詳細的文章:https://blog.csdn.net/hujyhfwfh2/article/details/80559854

3、添加斷言response Assertion:對返回的結果進行字段比對,比對成功則在查看結果樹中該接口是綠色,不成功則紅色

4、數據庫準備:好了,現在接口都有了,想要壓測還要造大量用戶,比如500個用戶(一個用戶請求500次肯定是不行的,因爲有時候會設定一個用戶不能在兩臺機器上同時登錄、同一個用戶1分鐘之內只能發送一次驗證碼等限制)。

首先需要在數據庫中造500條用戶數據,這樣請求才會有返回(如果已經有這麼多用戶就不用造了),oracle批量造數據可參考我的另一篇文章:https://blog.csdn.net/gao_xiao_qi/article/details/102508671

5、jMeter文件:如果只有一個用戶,那直接使用公共變量User Defined Variables添加參數和值就好了,但這樣一個username只能有一個值,而我們想在500個線程裏每個線程都使用不同的username怎麼辦?這時候就要用到jMeter的CSV Data 來實現了:

(1)jMeter中添加CSV Data Set Config並設置

(2)準備CSV 文件

5.1、jMeter中添加CSV Data Set Config並設置:

添加CSV Data Set Config,將需要用到的所有參數名字寫到Variable Name 中。

過程:500次請求中,每次請求的每個接口會先在CSV Data Set Config並中找到自己用到的參數,如“用戶名加密”接口中,會先在CSV Data Set Config中的Variable Name 中找到username這個參數,然後在文件壓測數據.txt中找到第一列數據,第一次請求讀第一行第一列... ...第500次請求讀第500行第一列,password就會讀第二列,以此類推

5.2、準備CSV 文件:文件中,每個參數用逗號分開:

這麼多數據,手寫要累死,試試用python腳本生成這個txt文件吧:

新建一個python項目,在跟目錄下建個子目錄如insertsql,在該目錄下建個python文件util_test.py,然後輸入下面的代碼:

#寫入文件
f = open(r'C:\Users\gaoxq\Desktop\壓測數據.txt', 'w')    #參數a代表追加,w代表覆蓋
for i in range(1001,1499):
    f.write('yace')    #姓名
    f.write(str(i))
    f.write(',')      #用,隔開

    f.write('aa123456')   #密碼
    f.write(',')

    f.write('123456')    #驗證碼

    f.write('\n')   #每行後的回車
f.close()

#讀取文件
with open(r'C:\Users\gaoxq\Desktop\壓測數據.txt', 'r') as f:  # ,參數r代表讀取
    for line in f:
        print(line)
    f.close()

運行:右鍵選擇run 'util_test'  ,大功告成,文件已經生成了

備註:如果你的用戶名不像我這樣有規律可循,可以使用python直接從數據庫中讀取然後寫到文件中(python安裝數據庫要用cx_Oracle,且安裝版本要與oracle、python版本一致,否則會報錯比較麻煩)

6、現在萬事俱備只欠運行了,

點擊綠色的運行,看看結果:

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章