在測試過程中我們往往需要校對數據庫的數據或者準備一些測試數據,供給接口測試在自動執(zhí)行時使用驹止。所以就用到了postman對于數據庫的操作。因為postman本身沒有連接數據庫的功能苫昌,所以用到的是node.js中的xmysql實現Rest API的生成昼丑,然后用postman進行不同的查詢鼎天、更新請求即可贺氓。
1.安裝部分:
node.js的安裝 : http://www.runoob.com/nodejs/nodejs-install-setup.html
xmysql的安裝:在安裝完node.js之后得糜,在命令行中輸入 npm install -g xmysql
即可進行安裝叨襟。
2.連接部分:
連接部分也比較簡單:-h 是數據庫的地址 -u 用戶名 -p 密碼 -d 數據庫的名
這里可能注意的是:需要用root賬號才能進行連接
命令行輸入:xmysql -h host -u root -p Root@pwd -d test_db_2
可以在瀏覽器中輸入localhost:3000查看獲取到數據庫內容
注:增加-r 參數繁扎,那么訪問地址就變成了-r設置的地址。
例: xmysql -h host -u root -p Root@pwd -d test_db_2 -r 112.123.3.22
那么訪問地址為112.123.3.22:3000
3.對數據庫的操作部分:
我這里拿一個小的例子描述最常用的查詢和更新操作。
1)問題描述:測試環(huán)境下梳玫,在測試注冊接口的時候爹梁,我需要一個手機號的是未注冊的狀態(tài),所以我這里先準備了一個手機號:18888888888提澎,但是我不能保證這個手機號是否被注冊姚垃,所以我需要從數據庫中查詢當前數據是否存在,如果存在需要做相應的處理盼忌,使其變?yōu)槲醋缘臓顟B(tài)积糯。
2)解決方案:
思路是查詢當前手機號是否存在于user表中,如果存在就更新到別的手機號(考慮到數據庫中謹慎使用delete操作所以使用update)碴犬,如果不存在直接執(zhí)行下一步測試
首先絮宁,先從數據庫user表中查詢當前數據是否已經存在: 請求方式為GET,request name 為getuser-sql
http://localhost:3000/api/user?_where=(phone,eq,18888888888)
然后通過test編寫判斷數據是否存在以及處理方式
responseData = JSON.parse(responseBody)
//獲取到json返回的內容
var text = responseData[0];
//獲取當前是否有id
if(text != null){
//判斷當前手機號是否被注冊 ,如果不為null說明手機號已經注冊
tests["當前手機號已經注冊"] = true === true;
var key = responseData[0].id;
//將id復制給key
pm.environment.set("IDkey",key);
//設置id為環(huán)境變量
postman.setNextRequest("update-sql");
//執(zhí)行更新手機號的接口服协,使手機號為未注冊的手機號
}
else{
tests["當前手機號為未注冊賬號"] = true === true;
postman.setNextRequest("next-api")
//當前手機號未注冊可以直接執(zhí)行正常手機號登錄注冊流程
}
最后進行更新操作的編寫绍昂,請求方式為 PATCH ,request name 為上個接口中寫的 update-sql
http://localhost:3000/api/user/{{IDkey}}
//{{IDkey}}是在getuser-sql中設置的環(huán)境變量偿荷,值為主鍵ID
另外需要在body中編寫需要更新字段窘游,如圖所示即可:
這樣這個問題就完全解決了,另外:patch在使用時只能使用主鍵為條件進行更新跳纳,暫時還沒有找到別的方式忍饰。
4.數據庫基本操作:
第一部分請求方式
第二部分基本的數據庫操作:
第三部分排序操作:
總結:以上就是我在工作中常用的關于postman+xmysql中的使用,基本滿足了對于數據庫使用的需求寺庄。當然肯定還有更高級的知識等待我們去研究艾蓝,這里也不在詳細介紹了。OK斗塘,這次分享就到這里了赢织,有什么疑問可以隨時留言溝通,互相學習進步馍盟!
歡迎加入QQ群:547349021
小提示:群名雖然叫selenium+unittest于置,但是我們不限任何測試領域的溝通交流和學習,讓我們一起補足缺失的40%吧贞岭!