jmeter如何連線資料庫,並且利用查詢的結果 作為下一個請求的引數
背景:小編最近寫了一個介面自動化的步驟,主要分為以下幾個部分
1.隨機賬號登入微信商城
2.提交訂單 生成訂單單號
3.訂單進行餘額支付或者線上支付
4.後臺訂單分揀
對於後臺訂單分揀,小編髮現,他只是傳了一個Id就對商品進行分揀了,然後小編一臉懵逼,這我怎麼知道我剛才下的訂單,每個商品的這個id是多少呢?經過思考小編覺得,應該是資料庫儲存了這個唯一的標識的Id(也就是商品訂單表中的儲存id),而如何獲取這個id,只有根據提交訂單時介面返回的訂單號,然後根據這個訂單號,在資料庫中的訂單表進行查詢到Order_id,然後根據order_id在訂單商品表中在查詢商品對應關係的儲存id(也就是分揀列印傳遞的哪個id,當然這裡如果一個訂單下了多個商品的話,查詢的結果是多個商品儲存標識id的,當然這裡就靠自己對list以及元組的操作能力了,因為每次你只能一個id的對後臺進行提交,所以我們還需要使用到迴圈
分析到了這裡,所以在程式碼中,我們必須對資料庫進行查詢,在將這個查詢的結果作為引數,也就是jmeter中的的請求引數,從而才能讓這個介面自動化流程能夠跑通,下面為小編主要運用到的方法
一,首先你得連線上資料庫
1.需要依賴的mysql jar包 ,需要放到 jmeter的lib下面
給你網盤下載地址連結:https://pan.baidu.com/s/1EP4R2k3zan7xiKb4vWoCTw 密碼:cony
2.新建一個JDBC Connection Configuration,具體設定如下,
關注點:database url地址格式:jdbc:mysql://host(或者Ip):3306/dbname
關注點:哪個variable name的名稱 記得要跟下面sql語句得保持一致 否則會報錯
關注點:com.mysql.jdbc.Driver(依賴的class)
關注點:記得執行緒組哪裡需要選擇Jmeter/lib下選擇剛才的mysql驅動包
選擇下載的jar包即可(jmeter lib下面)
3.新建一個jdbc requests請求,記住這個variable name需要跟之前的保持一致
關注點:查詢的結果 id_n(n代表第幾行資料) 所以不需要用什麼正則提取器
4.使用的時候 只需要使用${id_n}就可以呼叫了
二、連上了資料庫 是不是覺得 需要一個迴圈控制器
1.新建一個foreacH控制器 輸入一個變數名 然後再寫輸出變數名 開始設定成0 結束設定成5
也就是說 ${vid} 可以相當於這種效果(id_1 -> id_2- > id_3 -> id_4-> id_5)
vid
三、隨機函式生成器
1.Jmeter選項 然後點選函式對話選項框 ,之後看下圖
2.至於引用的話 就是使用生成的那一堆 直接放到請求引數即可