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、現在萬事俱備只欠運行了,
點擊綠色的運行,看看結果: