當我們做專案時,寫完乙個功能後都要進行測試,js中測試框架一般使用:mocha
、chai
,如果你還需要測試介面的話,可能還需要supertest
測試框架。
安裝依賴:yarn add mocha chai supertest -d
比如我現在寫個密碼加密,密碼驗證的工具:
密碼加密一般用的比較多的是:md5
、bcrypt
,這裡使用 bcrypt
:yarn add bcrypt
// src/main/util/passwordutil.js
import bcrypt from
'bcrypt'
;// 鹽值
const
salt=10
;/**
* 加密密碼(非同步)
* @param pwd 要加密的密碼
* @returns 加密後的密碼
*/export
const encryptpasswrod =
async
(pwd)
=>
;/**
* 密碼驗證(非同步)
* @param pwd 密碼
* @param encryptedpwd 加密後的密碼
* @returns 驗證成功返回 true
*/export
const checkpasswrod =
async
(pwd, encryptedpwd)
=>
;/**
* 加密密碼(同步)
* @param pwd 要加密的密碼
* @returns 加密後的密碼
*/export
const
encryptpasswrodsync
=(pwd)
=>
;/**
* 密碼驗證(同步)
* @param pwd 密碼
* @param encryptedpwd 加密後的密碼
* @returns 驗證成功返回 true
*/export
const
checkpasswrodsync
=(pwd, encryptedpwd)
=>
;
// src/test/util/passwordutil.test.js
import
from
'chai'
;import
from
'@main/util/passwordutil'
;describe
('密碼工具測試'
,async()
=>);
it('#非同步密碼加密、驗證測試(結果應為false)'
,async()
=>);
it('#同步密碼加密、驗證測試(結果應為true)',(
)=>);
it('#同步密碼加密、驗證測試(結果應為false)',(
)=>);
});
因為我不是全域性安裝mocha
所以不能直接使用mocha
命令,應該使用./node_modules/mocha/bin/mocha
。
我測試**全部放在了src/test
目錄下,並且根據不同層次的分目錄(例如:工具測試在util
目錄,介面測試放controller
目錄),所以需要加引數:./node_modules/mocha/bin/mocha ./src/test --recursive
。
因為這裡使用了import
等 node 不支援的語法,這裡使用了babel
所以還需要新增引數:./node_modules/mocha/bin/mocha ./src/test --recursive --require babel-register
// src/test/controller/usercontroller.test.js
;import request from
'supertest'
;import
from
'chai'
;describe
('使用者介面測試',(
)=>);
after((
)=>})
;it('#使用者新增測試'
,async()
=>).
expect
('content-type'
,/json/).
expect
(200).
expect
(res =>);
});it
('#使用者查詢測試'
,async()
=>`)
.expect
('content-type'
,/json/).
expect
(200).
expect
(res =>);
});it
('#使用者更新測試'
,async()
=>
;await
request
(server)
.put
(`/api/user`).
send
(user)
.expect
('content-type'
,/json/).
expect
(200).
expect
(res =>);
});}
);
我自定義了全域性統一返回格式:
}
在**裡我設定了全域性異常處理,出現錯誤,這裡的code
欄位會變為500
等其他非200
數值,所以需要根據響應體的code === 200
欄位來判斷介面是否成功。
gitee原始碼檢視
robot framework 介面自動化測試
介面測試比ui測試更有價值,如果專案時間緊張,測試介面更好一些,但每次都頻繁的手工填寫介面進行測試也浪費時間,下面給大家介紹一下很好的自動化測試框架robot framework,並且做介面自動化測試事半功倍。其返回值驗證和與資料庫連線進行增刪改查很方便,邏輯也很嚴謹,如果公司沒有造輪子推薦這麼做。...
Robotframework 介面自動化測試
1.目的 1 以雲平台為例 實現註冊 登入 更新apikey 新增專案 新增裝置 新增感測器 新增執行器 感測器每隔3s上報一次資料 1分鐘後與雲平台主動斷開連線的介面自動化測試。2 斷言每條用例是否執行成功。3 程式不管執行多少次都不報錯。2.robotframework環境搭建 1 安裝pyth...
python requests介面自動化測試 一
python requests環境部署 1.安裝python,配置系統環境變數 4.安裝requests庫 pip install requests 在進行介面自動化測試時,常用到的幾個requests庫方法。如下 get 不帶引數的請求 n requests.get 帶引數的請求 引數是以字典的形...