1. 程式人生 > >postman介面自動化測試之利用node.js和xmysql連線、操作資料庫

postman介面自動化測試之利用node.js和xmysql連線、操作資料庫

一、背景

使用postman進行介面自動化測試時,除了要驗證介面的返回,有時候還要同時驗證資料庫的資料,或者將介面返回的資料與資料庫的資料做對比,檢驗資料的正確性。

有的時候還需要在執行自動化case之前,造一些測試資料,或者在跑完自動化之後,刪除測試資料。

所以,我們需要在postman裡連線並操作資料庫,才能實現真正的完全自動化。

經查閱資料,可以通過安裝node.js和xmysql,實現Postman與資料庫的連線,生成Rest API,對資料庫的資料進行增刪改查操作。

具體實現如下:

 

二、下載安裝node.js

1、下載

nodejs下載地址:https://nodejs.org/en/

2、安裝

 

 

 

 

這一步是選擇安裝哪些模組,預設是全部安裝,對於新手來說建議全部安裝。

 

npm package manager:表示npm包管理器

online documentation shortcuts:線上文件快捷方式

Add to PATH:新增node安裝路徑到環境變數

 

點開那個add path選項前面的+號,我們看到,會主動把NodeJS和NPM這兩個模組的命令路徑新增到系統路徑裡,對於我們來說就非常方便了。

點選next繼續下一步,確認資訊,點選Install開始安裝,程式開始複製檔案等一系列步驟。一直到安裝完畢。

 

 

 

 

 

 

3、測試是否安裝成功

 

 

node -v

 

 可以看到,已經安裝成功。

 

 

三、連線資料庫

1、安裝用來連線資料庫的xmysql外掛

npm install -g xmysql

 

2、通過xmysql命令連線資料庫

xmysql -h 主機ip -u 使用者名稱-p 密碼 -d 資料庫名
注意:需要root賬號才能連線,連線成功後,如下圖:

 可以看到Database為sousou,表的數量為53。

 

四、操作資料庫

連線成功後,我們就可以通過http://localhost:3000/api/表名來操作資料庫。

 

1、查詢資料【GET】

其中,where引數是條件,不加where則是查詢所有記錄。

如下例子,是指查詢【package】表中【id=11】的記錄(【eq】代表資料庫裡的【=】,其他運算子見下文【資料庫操作合集】):

http://localhost:3000/api/package?_where=(id,eq,11)

 

 

2、刪除資料【DELETE】

其中,id是資料庫中的記錄的唯一標識。

如下例子,刪除【banner】表中【id=155】的記錄:

http://localhost:3000/api/banner/:id

 

 可以看出,一行受影響,證明已經刪除成功。

 

另:

可以對結果加斷言(檢查點)進行校驗,例如判斷受影響行數為1。

//校驗HTTP狀態碼為200
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

var jsonData = pm.response.json();

//校驗受影響行數為1
pm.test("affectedRows = 1", function () {
    pm.expect(jsonData.affectedRows).to.eql(1);
});

 

 

 

   可以在Test Results中看到,狀態碼及受影響行數的斷言均通過。

點選檢視詳細加斷言(檢查點)的方式 

 

3、修改資料【PATCH】

其中,id是資料庫中的記錄的唯一標識,更新的資料以json的格式放在body裡

如下例子是將【package】表中【id=11】的記錄的【name】改為“測試修改”

http://localhost:3000/api/package/:id

通過結果response可以看出,有一行受影響,說明已經更新成功了,可根據自身情況設定響應的斷言進行校驗。

 

 

4、插入資料【POST】

插入記錄的資料以json的格式放在body裡。

如下例子,向【banner】表中新增一條記錄:

http://localhost:3000/api/banner

 

可以看出,受影響行數為1,說明已經新增成功。 

 

五、資料庫操作合集

1、請求方式

   

2、條件中的運算子

   

3、排序操作

    更全面的詳解請參考官方:https://github.com/o1lab/xmysql#api-overview    

初入職場熱愛分享的打工人一枚,請大家多多指教~~