序言
接口測試的流程就相當(dāng)于一個程序(交互式的程序)位谋;而程序開發(fā)前,得先確定需求堰燎,所以我們先來聊聊需求掏父,即當(dāng)有了接口測試腳本和框架時(shí),怎么用(執(zhí)行)的問題秆剪。
討論要點(diǎn):
1.前期準(zhǔn)備
2.執(zhí)行步驟
3.提BUG
前期準(zhǔn)備
搭建本地測試環(huán)境本身是件很麻煩的事赊淑,但用docker的話就少了很多麻煩專注于測試本職工作
(1)搭建環(huán)境:
在docker設(shè)置中添加的鏡像源路徑,docker-compose.yml文件目錄有用于構(gòu)建mysql鏡像的文件時(shí)鸟款,在該目錄下執(zhí)行:
docker-compose up -d
部署鏡像(當(dāng)沒有對應(yīng)鏡像膏燃,就會拉取鏡像源(包括本地)的鏡像)
(2)更新表結(jié)構(gòu):
每次后臺的數(shù)據(jù)庫表結(jié)構(gòu)有更新時(shí)(同時(shí)更新migration),就需要更新本地的表結(jié)構(gòu);
先更新用于構(gòu)建本地鏡像的sql文件(resotre),再構(gòu)建新鏡像部署
docker-compose stop mysql
docker-compose rm -f -v mysql
svn up mysql && docker-compose up -d --build mysql
最后需要進(jìn)行數(shù)據(jù)初始化何什,因?yàn)閿?shù)據(jù)庫光有基礎(chǔ)數(shù)據(jù)還不夠组哩,還需要一些常用數(shù)據(jù):比如賬號數(shù)據(jù)。(可以通過寫SQL腳本或者接口測試腳本達(dá)到初始化的效果)
(3)更新代碼
先需要更新最新的代碼鏡像(jenkins更新測試環(huán)境代碼)处渣,再執(zhí)行
docker-compose pull 服務(wù)名
docker-compose up -d
(4)其他常用
日志查看 : docker-compose logs --tail 200 -f 服務(wù)名
執(zhí)行計(jì)劃任務(wù)服務(wù):
docker-compose exec schedule bash '' 對應(yīng)修改計(jì)劃任務(wù)配置的腳本''
docker-compose restart schedule
當(dāng)然這些前期準(zhǔn)備的命令最好使用jenkins執(zhí)行腳本的方式伶贰,來方便執(zhí)行,提高執(zhí)行效率罐栈。
執(zhí)行步驟
(1)接口第一輪測試
這種都是在后臺代碼完成后黍衙,前端和接口聯(lián)調(diào)前執(zhí)行的
為了編寫和調(diào)試方便,所以是在IDE上命令行執(zhí)行腳本荠诬;
要點(diǎn):
1琅翻、獨(dú)立的python運(yùn)行環(huán)境
2、對應(yīng)的路徑下跑有不同效果柑贞,可以是測試集跑(suit)方椎、測試用例(case)下跑
3、出現(xiàn)非接口的報(bào)錯需調(diào)試時(shí)钧嘶,可以在對應(yīng)函數(shù)加上異常處理棠众,或者在打印到測試報(bào)告中(這些處理最好是在寫腳本時(shí)就有準(zhǔn)備)
(2)接口第二輪測試
這種就是在功能測試時(shí),需要做接口回歸測試時(shí)跑
為了執(zhí)行的方便有决,所以在jenkins上跑腳本(一般測試集的跑)
要點(diǎn):
1闸拿、測試報(bào)告輸出到j(luò)enkins日志上
2空盼、支持修改配置跑不同的地方
提BUG
(1)確定是否為BUG
用例驗(yàn)證接口一般兩種:接口的返回驗(yàn)證、數(shù)據(jù)庫字段驗(yàn)證新荤。
所以要點(diǎn)是明確期望和執(zhí)行步驟揽趾,這執(zhí)行步驟包括:造數(shù)據(jù)前請求的接口、測試對象接口的請求參數(shù)迟隅;
這些都是在腳本上已經(jīng)確定好了的但骨,所以很好明確
(2)定位BUG
根據(jù)步驟流程上數(shù)據(jù)產(chǎn)生來定位,比如:可以由錯誤的返回字段推導(dǎo)出是生成了錯誤數(shù)據(jù)的原因智袭,從而找出產(chǎn)生錯誤數(shù)據(jù)的接口
(接口分類無非是增刪改查)
(3)開發(fā)有疑問時(shí)
1奔缠、讓開發(fā)通過訪問本地?cái)?shù)據(jù)庫來調(diào)試代碼
2、讓開發(fā)在代碼上加上日志吼野,再跑一次腳本校哎,查看日志