在前后端分離開發(fā)時(shí),后端工作人員完成系統(tǒng)接口開發(fā)后,需要與前端人員對(duì)接,測(cè)試調(diào)試接口,驗(yàn)證接口的正確性可用性。而這要求前端開發(fā)進(jìn)度和后端進(jìn)度保持基本一致,任何一方的進(jìn)度跟不上,都無(wú)法及時(shí)完成功能模塊的測(cè)試。
做為后端開發(fā)人員,要求獨(dú)立開發(fā)完成某個(gè)接口后,開發(fā)人員自己需要先測(cè)試通過后再提交給測(cè)試人員進(jìn)行測(cè)試,否則會(huì)出現(xiàn)到測(cè)試人員哪里業(yè)務(wù)流程根本就走不通,或者BUG會(huì)過多的情況等。
市場(chǎng)上有很多優(yōu)秀的,完善的接口測(cè)試工具,比如SoapUI,Postman等,能夠高效的幫助后端開發(fā)人員獨(dú)立進(jìn)行接口測(cè)試。這里使用Postman接口測(cè)試工具,此處以請(qǐng)求方式為POST的userLogin登錄接口為例。
Postman安裝和使用
1、這個(gè)直接去官網(wǎng)下載即可,我們使用免費(fèi)版即可滿足基本接口測(cè)試,根據(jù)個(gè)人或者公司的項(xiàng)目實(shí)際情況考慮是否需要專業(yè)版或者其他。
免費(fèi)版官網(wǎng)鏈接:https://www.getpostman.com/postman
下載好的安裝程序Postman-Win64-xxx-Setup.exe,雙擊安裝即可。建議安裝在非系統(tǒng)盤,即C盤在外的其他盤,另建議使用全英文路徑,避免使用中文路徑。
2、打開Postman如下圖,可以關(guān)閉該頁(yè)面跳過注冊(cè)賬戶,非登陸狀態(tài)下該工具可以直接使用。接下來出現(xiàn)引導(dǎo)頁(yè)面,類似IDEA,Android Studio等開發(fā)工具的引導(dǎo)頁(yè)。此處關(guān)閉即可。
注冊(cè)賬戶圖
項(xiàng)目創(chuàng)建引導(dǎo)圖
3、進(jìn)入Postman主頁(yè)面并創(chuàng)建項(xiàng)目接口集合
這里是我之前用過,所以左側(cè)文件欄存在幾個(gè)已有的文件夾。
選擇功能菜單New下的Collection創(chuàng)建項(xiàng)目接口集合。新建一個(gè)億的項(xiàng)目A hundred million,可在Description部分寫一下項(xiàng)目描述。
Postman主頁(yè)面
新建項(xiàng)目接口集合圖
4、創(chuàng)建項(xiàng)目模塊文件夾
一般項(xiàng)目會(huì)分多個(gè)管理模塊或者功能模塊進(jìn)行開發(fā)。這里可根據(jù)項(xiàng)目具體情況創(chuàng)建子文件夾方便接口管理。此處在A hundred million項(xiàng)目右鍵創(chuàng)建資產(chǎn)管理assets文件夾、user用戶管理文件夾。可將測(cè)試的接口實(shí)例保存在對(duì)于管理模塊下。
新建資產(chǎn)管理文件夾
5、后臺(tái)登錄接口演示
開發(fā)完成后臺(tái)接口,編寫正確嚴(yán)謹(jǐn)?shù)倪壿嫶a處理前端請(qǐng)求。此處登錄接口代碼如下,運(yùn)行后臺(tái)開發(fā)項(xiàng)目,使該接口能夠訪問。
接口請(qǐng)求路徑為:http://localhost:8080/manage/app/user/login
@Controller
@RequestMapping("/manage/app/")
@Scope("prototype")
public class AppUserController {
/**
* 日志
*/
public static Logger customFile = LoggerFactory.getLogger("manageCustomFile");
@Resource
private AppUserService appUserService;
/**
* 用戶登錄
* @param baseResult
* @return
*/
@RequestMapping(value = "user/login" , produces = "application/json;charset=UTF-8", method = RequestMethod.POST)
@ResponseBody
public BaseResult loginUser(@RequestBody BaseResult baseResult) {
customFile.info("appId:"+ baseResult.getTreasureID()+ "用戶登陸訪問:" + baseResult.toString());
return appUserService.loginUser(baseResult);
}
}
6、新建接口測(cè)試
在Postman主頁(yè)面Content部分點(diǎn)擊’+'按鈕,新增一個(gè)接口測(cè)試。在圖2-6所示第一部分填寫接口請(qǐng)求路徑,左側(cè)下拉列表可選擇請(qǐng)求方式,此處選擇POST請(qǐng)求方式。接口請(qǐng)求路徑為http://localhost:8080/manage/app/user/login。
第二部分是請(qǐng)求體,即包含接口所需請(qǐng)求參數(shù)的Body,此處選擇原始數(shù)據(jù)RAW,數(shù)據(jù)類型使用JSON數(shù)據(jù)作為請(qǐng)求數(shù)據(jù)。點(diǎn)擊藍(lán)色Send按鈕發(fā)送請(qǐng)求,后臺(tái)項(xiàng)目接口接收請(qǐng)求并響應(yīng)返回執(zhí)行結(jié)果。此處后臺(tái)處理數(shù)據(jù)返回結(jié)果仍是JSON數(shù)據(jù),這個(gè)看實(shí)際項(xiàng)目而定,此處僅做演示。
第三部分是接口響應(yīng)體,即接口響應(yīng)請(qǐng)求處理并返回的數(shù)據(jù)。點(diǎn)擊Pretty自動(dòng)匹配接口返回的數(shù)據(jù)格式并對(duì)數(shù)據(jù)美化顯示,使數(shù)據(jù)看起來更加直觀。如果接口測(cè)試出現(xiàn)異常,則可以通過PreView視圖查看瀏覽器響應(yīng)接口的頁(yè)面信息,也可以通過Header了解請(qǐng)求狀態(tài)等參數(shù)。一般出現(xiàn)異常還是直接去后臺(tái)看控制臺(tái)的異常信息及項(xiàng)目日志來處理解決異常,再進(jìn)行接口測(cè)試。
接口測(cè)試通過后,可Ctrl+S保存接口測(cè)試實(shí)例,填寫接口測(cè)試名稱和接口描述信息,選擇要保存的路徑,此處保存在user用戶管理模塊文件夾。當(dāng)項(xiàng)目的接口全部測(cè)試通過后,可在A hundred million項(xiàng)目右鍵Export導(dǎo)出接口文檔,保存為JSON接口測(cè)試文件,該文件可通過Postman導(dǎo)入查看。
請(qǐng)求方式
對(duì)于后臺(tái)開發(fā)的接口,請(qǐng)求方
POST一種,Postman也支持多種請(qǐng)求方式。在新建接口測(cè)試實(shí)例時(shí)可選擇接口的請(qǐng)求方式,看下圖
請(qǐng)求類型可以模擬Form表單文本提交,F(xiàn)orm表單文件提交,raw原始數(shù)據(jù)提交,二進(jìn)制文件提交。對(duì)于原始數(shù)據(jù)類型raw還支持不同文件格式,包括JSON,TXT,HTML等多種文件格式。
資金記錄接口實(shí)例演示
后臺(tái)開發(fā)接口如下,服務(wù)器部署運(yùn)行后臺(tái)項(xiàng)目。接口請(qǐng)求路徑為:
@Controller
@RequestMapping("/manage/app/")
@Scope("prototype")
public class AppUserAssetController {
/**
* 日志
*/
public static Logger customFile = LoggerFactory.getLogger("manageCustomFile");
@Resource
private AppUserAssetService appUserAssetService;
/**
* 獲取提現(xiàn)記錄
* 即我的頁(yè)面中的資金記錄
* @param baseResult
* @return
*/
@RequestMapping(value = "user/asset/withdrawRecord" , produces = "application/json;charset=UTF-8", method = RequestMethod.POST)
@ResponseBody
public BaseResult getUserWithdrawRecord(@RequestBody BaseResult baseResult){
customFile.info( "appId:"+ baseResult.getTreasureID() + "用戶提現(xiàn)記錄獲取"+baseResult.toString());
return appUserAssetService.getUserWithdrawRecord(baseResult);
}
}
新建資金接口測(cè)試
請(qǐng)求方式為POST,
請(qǐng)求URL為http://localhost:8080/manage/app/user/asset/withdrawRecord
請(qǐng)求體為JSON類型的原始數(shù)據(jù)
點(diǎn)擊Send請(qǐng)求接口,接口響應(yīng)請(qǐng)求處理返回結(jié)果