接口测试思路
在日常工作中,常見(jiàn)的接口測(cè)試主要包括:Web接口測(cè)試,應(yīng)用程序接口(API, application programming interface)測(cè)試和數(shù)據(jù)庫(kù)測(cè)試。
前言:
在做接口測(cè)試用例之前,首先要做接口分析。主要需明確以下內(nèi)容:
1)收否有接口文檔?接口文檔內(nèi)容有哪些?
2)明確接口測(cè)試流程。
3)分析每一個(gè)接口:header,url,參數(shù)(含義、可選/必選、格式、類(lèi)型等等),響應(yīng)數(shù)據(jù)來(lái)源及數(shù)據(jù)量。
4)分析實(shí)際可做接口測(cè)試的測(cè)試點(diǎn)。
1、接口文檔
A、接口文檔五要素:接口地址、接口請(qǐng)求的方式、是否有請(qǐng)求參數(shù)(參數(shù)相關(guān)屬性)、返回參數(shù)說(shuō)明(參數(shù)相關(guān)屬性)、返回結(jié)果樣例;
B、如果沒(méi)有接口文檔,到功能測(cè)試階段,需要自己抓包,抓包工具如Fiddler等。
2、接口測(cè)試流程
主要的流程包括:接口文檔 — 接口測(cè)試計(jì)劃、方案 — 接口測(cè)試用例(評(píng)審)— 執(zhí)行 — 集成到Jenkins — 接口反饋
3、測(cè)試點(diǎn)
A、單一接口功能的測(cè)試主要測(cè)試返回的數(shù)據(jù)結(jié)構(gòu)是否和接口文檔給出的一致;
B、接口的正常功能是否完成;
C、接口的參數(shù)檢查測(cè)試,接口的異常測(cè)試;
D、多接口組合測(cè)試,實(shí)際上是在測(cè)試一個(gè)業(yè)務(wù)流;
E、在測(cè)試過(guò)程中一次調(diào)用多個(gè)接口。
在明確上述內(nèi)容后,開(kāi)始設(shè)計(jì)接口測(cè)試用例。(劃重點(diǎn)啦)
1、輸入
在輸入?yún)?shù)方面,我們需要從以下幾個(gè)方面進(jìn)行設(shè)計(jì):
A、必填項(xiàng)校驗(yàn):在接口文檔中是否有必須填寫(xiě)的相關(guān)內(nèi)容(參考接口文檔即可)。
B、參數(shù)長(zhǎng)度校驗(yàn):參數(shù)長(zhǎng)度可以參考接口文檔。
C、參數(shù)值的有效性校驗(yàn):參數(shù)有效性的校驗(yàn)就需要結(jié)合實(shí)際業(yè)務(wù)場(chǎng)景,判斷哪些數(shù)據(jù)是真實(shí)有效的數(shù)據(jù),一定要確保所有真實(shí)有效的數(shù)據(jù)是可以驗(yàn)證通過(guò)的。
舉個(gè)例子:身份證信息的校驗(yàn)。
我們?cè)谧鱿嚓P(guān)校驗(yàn)時(shí)需要注意,雖然數(shù)據(jù)的長(zhǎng)度符合設(shè)定規(guī)則,但并不代表它是真實(shí)有效的身份信息。(例:123456789012345678)
這種情況下,我們需注意身份證號(hào)的校驗(yàn)規(guī)則設(shè)定。一般情況下,采用的現(xiàn)成的身份證號(hào)校驗(yàn)器即可。但是,有些校驗(yàn)算法是自己寫(xiě)的,因此,要注意校對(duì)這種算法是否合理,
D、參數(shù)組合校驗(yàn):不同的參數(shù)組合可能會(huì)存在不同的業(yè)務(wù)場(chǎng)景;
E、如果參數(shù)是枚舉值,一定要各種枚舉值都要測(cè)試,因?yàn)榭赡懿煌拿杜e走的不同的業(yè)務(wù)流程;
F、參數(shù)值的默認(rèn)值的校驗(yàn):參考接口文檔。
G、某些參數(shù)具有特定的生成規(guī)則,要單獨(dú)針對(duì)生成規(guī)則設(shè)計(jì)用例,一定要保證真實(shí)有效的數(shù)據(jù)是可以驗(yàn)證通過(guò)的。
如:身份證號(hào)中間幾位***19860701*,本人就遇到過(guò)輸入***19861001*這種值校驗(yàn)不正確;
2、接口邏輯
接口邏輯我用的設(shè)計(jì)方法是分支覆蓋—>路徑覆蓋—>場(chǎng)景覆蓋,同樣也是要結(jié)合實(shí)際業(yè)務(wù)場(chǎng)景,根本不發(fā)生的業(yè)務(wù)場(chǎng)景就是無(wú)效的測(cè)試用例。
A、流程圖
第一步先把業(yè)務(wù)流程圖畫(huà)出來(lái);
B、異常情況
依據(jù)路程圖中的分支分別設(shè)計(jì),不同分支不同的場(chǎng)景,這里就要把異常的場(chǎng)景考慮進(jìn)去;如接口超時(shí),接口異常,接口請(qǐng)求成功或失敗,成功后怎么處理,失敗后流程是否繼續(xù)執(zhí)行,失敗后的數(shù)據(jù)怎么處理;
以付款接口為例:
付款結(jié)果為:成功或失敗。當(dāng)付款成功后,應(yīng)怎么處理,需要回寫(xiě)打款成功狀態(tài);若付款失敗,也需要回寫(xiě)失敗狀態(tài)。失敗后的數(shù)據(jù)可以操作退回,也可以操作重新出款等等;
C、業(yè)務(wù)場(chǎng)景
測(cè)試邏輯設(shè)計(jì)完成后要想一想不同的業(yè)務(wù)場(chǎng)景怎么去測(cè)試,需要哪些人員協(xié)助,如:接口超時(shí)怎么去測(cè)試,請(qǐng)求重復(fù)怎么去測(cè)試,請(qǐng)求并發(fā)怎么去測(cè)試。
3、輸出
輸入結(jié)果:正常輸出和異常輸出,常用的方法有錯(cuò)誤推斷法(列舉出程序中可能存在的錯(cuò)誤或者異常,根據(jù)他們選擇測(cè)試用例)。
4、冗余
以上都完成后,要結(jié)合實(shí)際的業(yè)務(wù)場(chǎng)景去掉冗余的用例(即實(shí)際業(yè)務(wù)場(chǎng)景不存在的流程或者輸入數(shù)據(jù));
5、狀態(tài)轉(zhuǎn)換
如果業(yè)務(wù)流程涉及到狀態(tài)轉(zhuǎn)換,要單獨(dú)設(shè)計(jì)用戶(hù)—方法:狀態(tài)轉(zhuǎn)換圖;
6、正交試驗(yàn)法
涉及到多個(gè)不同金額或者手續(xù)費(fèi)的計(jì)算,可能還會(huì)用到正交實(shí)驗(yàn)法去設(shè)計(jì)用例;
7、異常數(shù)據(jù)
另外,用例設(shè)計(jì)中還應(yīng)當(dāng)包含異常流程中產(chǎn)生的異常數(shù)據(jù)的處理流程;—通常所說(shuō)的補(bǔ)償機(jī)制,這塊流程能大大的減輕人工運(yùn)營(yíng)的工作量,當(dāng)然,這需要在做系統(tǒng)設(shè)計(jì)的時(shí)候就需要把這部分考慮進(jìn)去。
在設(shè)計(jì)好測(cè)試用例后,接下來(lái)是調(diào)試接口腳本。可以使用jmeter,postman等接口工具,也可以自編接口測(cè)試腳本。在測(cè)試腳本過(guò)程中,應(yīng)注意:
1)不斷調(diào)試腳本;
2)添加邏輯控制,對(duì)腳本內(nèi)的數(shù)據(jù)進(jìn)行參數(shù)化(包括:前置條件,測(cè)試步驟及測(cè)試數(shù)據(jù));
3)添加用例里的預(yù)期結(jié)果。
最后,執(zhí)行測(cè)試和腳本,并對(duì)執(zhí)行結(jié)果進(jìn)行分析。包括:錯(cuò)誤分析、響應(yīng)結(jié)果分析、響應(yīng)時(shí)間分析等等。
轉(zhuǎn)載于:https://www.cnblogs.com/uestc2007/p/11008235.html
總結(jié)
- 上一篇: Python+selenium用法 上
- 下一篇: Cut the Sequence(POJ