以基于HTTP協(xié)議的接口為例,
1.首先需要了解HTTP協(xié)議和協(xié)議相關(guān)聯(lián)的知識(shí),掌握和理解通過(guò)URL調(diào)用接口的至少兩種常用方法:Get請(qǐng)求和Post請(qǐng)求
2.學(xué)會(huì)分析接口的測(cè)試點(diǎn):掌握單接口測(cè)試要點(diǎn)和場(chǎng)景功能測(cè)試要點(diǎn)以及常用的異常場(chǎng)景測(cè)試點(diǎn),并能根據(jù)接口文檔編寫(xiě)測(cè)試用例。
達(dá)到第1點(diǎn)和第2點(diǎn),就能進(jìn)行初步的進(jìn)行接口測(cè)試了。
3.學(xué)會(huì)批量運(yùn)行測(cè)試用例,完成接口測(cè)試自動(dòng)化和自動(dòng)生成測(cè)試報(bào)告以及持續(xù)集成。就能進(jìn)入項(xiàng)目實(shí)戰(zhàn)了。
4.至少要掌握一門(mén)語(yǔ)言,如Python,Java,然后學(xué)會(huì)使用數(shù)據(jù)庫(kù),Linux后,技能上就達(dá)到了中級(jí)的水準(zhǔn),如果此時(shí)能夠1-2個(gè)成熟項(xiàng)目作為經(jīng)驗(yàn),并能恰當(dāng)?shù)谋磉_(dá),則能順利基本入職接口測(cè)試崗位。
5.繼續(xù)向上晉升,則需要掌握接口自動(dòng)化框架設(shè)計(jì)思想,并且有自己參與開(kāi)發(fā)的項(xiàng)目能夠進(jìn)行展示
6.還需要補(bǔ)充的是,性能測(cè)試和安全測(cè)試也是接口測(cè)試的知識(shí)范疇,所以也需要對(duì)性能測(cè)試和安全測(cè)試有一定的理解。
這些技能都是當(dāng)初在傳智播客學(xué)習(xí)時(shí)候直接結(jié)合實(shí)例教的,學(xué)完出來(lái)現(xiàn)在工資都15k了。
我在TestBird做功能測(cè)試比較多,但是接口測(cè)試和功能測(cè)試的流程也是比較類似的。
因?yàn)榻涌跍y(cè)試依賴的主要對(duì)象也是需求說(shuō)明書(shū),所以,最初的流程就是參與需求討論,評(píng)審需求。需求確定以后,開(kāi)發(fā)會(huì)根據(jù)需求進(jìn)行接口設(shè)計(jì),會(huì)產(chǎn)出接口定義,在開(kāi)發(fā)設(shè)計(jì)過(guò)程中,有能力的話,可以給出一些針對(duì)設(shè)計(jì)的建議,提高可測(cè)性,針對(duì)需求及設(shè)計(jì),進(jìn)行測(cè)試計(jì)劃,測(cè)試設(shè)計(jì),然后還需要和配管確定測(cè)試環(huán)境相關(guān)的事情。
在開(kāi)發(fā)完成接口定義之后,就根據(jù)需求文檔及接口定義進(jìn)行測(cè)試用例設(shè)計(jì),測(cè)試用例設(shè)計(jì)主要從業(yè)務(wù)場(chǎng)景,功能,以及異常測(cè)試幾個(gè)方面考慮。測(cè)試用例設(shè)計(jì)完成后,針對(duì)測(cè)試用例進(jìn)行評(píng)審,然后,如果開(kāi)發(fā)代碼部分可測(cè)時(shí),即可進(jìn)入測(cè)試了,因?yàn)槭遣糠挚蓽y(cè),可能會(huì)使用到mock方法。
已有測(cè)試代碼時(shí),就要進(jìn)行測(cè)試代碼的持續(xù)集成了。當(dāng)然在最后還會(huì)對(duì)每個(gè)項(xiàng)目進(jìn)行總結(jié)。
對(duì)于接口測(cè)試來(lái)說(shuō),項(xiàng)目測(cè)試用例的重復(fù)運(yùn)行首先是表現(xiàn)在單個(gè)測(cè)試用例的獨(dú)立性方面的,也就是說(shuō),每一個(gè)測(cè)試用例的運(yùn)行除了依賴被測(cè)對(duì)象和對(duì)應(yīng)的數(shù)據(jù)庫(kù)環(huán)境外,是不依賴于其他任何測(cè)試用例的,并且這個(gè)測(cè)試用例執(zhí)行完畢后,對(duì)系統(tǒng)來(lái)說(shuō),也是沒(méi)有任何痕跡的,這樣就保證了每個(gè)測(cè)試用例運(yùn)行時(shí),都在一個(gè)干凈的環(huán)境中運(yùn)行。要實(shí)現(xiàn)測(cè)試用例的獨(dú)立性,就必須對(duì)被測(cè)系統(tǒng)的設(shè)計(jì)有詳細(xì)的了解,這樣,不會(huì)出現(xiàn)測(cè)試用例執(zhí)行后遺漏數(shù)據(jù),環(huán)境未改變,另外,還需要對(duì)測(cè)試用例進(jìn)行詳細(xì)的設(shè)計(jì)。另外,要保證測(cè)試用例的重復(fù)使用,還需要做到測(cè)試用例的及時(shí)更新,在這個(gè)方面,我們是做接口測(cè)試的人會(huì)維護(hù)對(duì)應(yīng)的系統(tǒng)的接口測(cè)試用例,要保證,代碼每次更新,測(cè)試用例都必須全部執(zhí)行通過(guò)。
接口測(cè)試用例的設(shè)計(jì)方法其實(shí)和功能測(cè)試用例的設(shè)計(jì)方法是類似的,因?yàn)榻涌谑切枰獫M足需求的,而接口測(cè)試所依賴的也是需求說(shuō)明書(shū),但是,因?yàn)榻涌跍y(cè)試畢竟是通過(guò)代碼去測(cè)試代碼,所以,為了保證覆蓋率,可能會(huì)使用到單元測(cè)試的方法,具體的測(cè)試用例設(shè)計(jì),我考慮的如下,請(qǐng)參考,如果有錯(cuò)誤,一起討論。
輸入?yún)?shù)測(cè)試:針對(duì)輸入的參數(shù)進(jìn)行測(cè)試,也可以說(shuō)是假定接口參數(shù)的不正確性進(jìn)行的測(cè)試,確保接口對(duì)任意類型的輸入都做了相應(yīng)的處理:輸入?yún)?shù)合法,輸入?yún)?shù)不合法,輸入?yún)?shù)為空,輸入?yún)?shù)為null,輸入?yún)?shù)超長(zhǎng);
功能測(cè)試:接口是否滿足了所提供的功能,相當(dāng)于是正常情況測(cè)試,如果一個(gè)接口功能復(fù)雜時(shí)推薦對(duì)接口用例進(jìn)行結(jié)構(gòu)劃分,這樣子用例具有更好的可讀性和維護(hù)性。
邏輯測(cè)試:邏輯測(cè)試嚴(yán)格講應(yīng)為單元測(cè)試,單元測(cè)試應(yīng)保持內(nèi)部邏輯的正確性,可單元測(cè)試和接口測(cè)試界限并不是那么清楚,所以我們也可以從給出的設(shè)計(jì)文檔中考慮內(nèi)部邏輯錯(cuò)誤的分支情況和異常; 異常情況測(cè)試:接口實(shí)現(xiàn)是否對(duì)異常情況都進(jìn)行了處理,接口輸入?yún)?shù)雖然合法,但是在接口實(shí)現(xiàn)中,也會(huì)出現(xiàn)異常,因?yàn)閮?nèi)部的異常不一定是輸入的數(shù)據(jù)造成的,而有可能是其他邏輯造成的,程序需要對(duì)任何的異常都進(jìn)行處理。
接口測(cè)試是項(xiàng)目測(cè)試的一部分 ,它測(cè)試的主要對(duì)象是接口 ,是測(cè)試系統(tǒng)組件間接口的一種測(cè)試。
接口測(cè)試主要用于檢測(cè)外部系統(tǒng)與所測(cè)系統(tǒng)之間以及內(nèi)部各系統(tǒng)之間的交互點(diǎn)。測(cè)試的重點(diǎn)是檢查數(shù)據(jù)交互、傳遞、和控制管理過(guò)程以及系統(tǒng)間的相互依賴關(guān)系等。
如何設(shè)計(jì)接口測(cè)試用例?首先,明確出發(fā)點(diǎn),和所有的測(cè)試一樣 ,接口測(cè)試出發(fā)點(diǎn)是你要證明所測(cè)的程序是錯(cuò)誤的。以這個(gè)出發(fā)點(diǎn)為導(dǎo)向 ,你的設(shè)計(jì)行為就會(huì)盡量朝這個(gè)方向,更易發(fā)現(xiàn)問(wèn)題 其次,選擇好測(cè)試對(duì)象。
對(duì)于一個(gè)系統(tǒng)做接口測(cè)試選擇好的測(cè)試對(duì)象是接口測(cè)試關(guān)鍵。一個(gè)系統(tǒng)有無(wú)數(shù)的接口 ,每個(gè)接口如果分別測(cè)試 ,那將是很痛苦的一件事情,而且任何一個(gè)內(nèi)部接口的變動(dòng) ,都將導(dǎo)致我們用例的不可用。
可將這些最外層的接口分為兩類:一類是數(shù)據(jù)進(jìn)入系統(tǒng)的接口;一類是數(shù)據(jù)流出系統(tǒng)的接口。進(jìn)入系統(tǒng)的接口實(shí)際是我們用例的執(zhí)行調(diào)用的接口。
可通過(guò)變化參數(shù)對(duì)這些接口進(jìn)行調(diào)用 ,模擬外部的使用;而流出的接口則是我們用例真正該驗(yàn)證的點(diǎn)。數(shù)據(jù)從哪里流出,流出時(shí)的狀態(tài)如何 ,此時(shí)系統(tǒng)又是什么狀態(tài)都是我們所應(yīng)該驗(yàn)證的。
然后,確認(rèn)完整的測(cè)試對(duì)象的功能:確認(rèn)外部接口提供給使用這些接口的外部用戶什么樣的功能,外部用戶真正需要什么樣的功能。此兩個(gè)功能一定要準(zhǔn)確詳細(xì),用例的設(shè)計(jì)要嚴(yán)格按照測(cè)試對(duì)象功能設(shè)計(jì)才是正確的用例。
最后當(dāng)出發(fā)點(diǎn)、對(duì)象、功能都確定了,就可以真正設(shè)計(jì)用例了。下面詳細(xì)介紹下如何去設(shè)計(jì)一個(gè)結(jié)構(gòu)好、可讀性高、滲透性強(qiáng)的接口測(cè)試用例。
接口測(cè)試用例設(shè)計(jì)和測(cè)試用例設(shè)計(jì)一樣,用例設(shè)計(jì)的內(nèi)容應(yīng)該包括:主要測(cè)試功能點(diǎn)、測(cè)試環(huán)境、測(cè)試數(shù)據(jù)、執(zhí)行操作以及預(yù)期結(jié)果。 1)接口測(cè)試環(huán)境分為兩種:一種是程序內(nèi)部的環(huán)境;一種是程序的所調(diào)用外部接口的環(huán)境。
2)接口測(cè)試測(cè)試數(shù)據(jù)分為接口參數(shù)數(shù)據(jù)和用例執(zhí)行所需系統(tǒng)數(shù)據(jù)。數(shù)據(jù)的設(shè)計(jì)、準(zhǔn)備測(cè)試用例的數(shù)據(jù)上需要花費(fèi)更多的心思。
要通過(guò)好的測(cè)試數(shù)據(jù)使用例查找問(wèn)題。接口參數(shù)數(shù)據(jù)需對(duì)每個(gè)參數(shù)根據(jù)測(cè)試接口的實(shí)際的功能進(jìn)行分析,在符合業(yè)務(wù)邏輯的情況下進(jìn)行邏輯組合排列 ,不要遺漏了某些邊界值和錯(cuò)誤點(diǎn)的數(shù)據(jù)。
每個(gè)用例執(zhí)行所需系統(tǒng)數(shù)據(jù)和接口參數(shù)數(shù)據(jù)盡可能的采用不一樣的數(shù)據(jù) ,使用例更容易發(fā)現(xiàn)問(wèn)題。 3)測(cè)試功能點(diǎn),如果一個(gè)接口功能復(fù)雜時(shí)推薦對(duì)接口用例進(jìn)行結(jié)構(gòu)劃分 ,這樣子用例具有更好的可讀性和維護(hù)性。
接口劃分原則為以接口提供的功能點(diǎn)的不同進(jìn)行合適粒度的劃分。同一功能點(diǎn)的用例又可根據(jù)測(cè)試環(huán)境的不同、數(shù)據(jù)的不同進(jìn)行用例的填充。
4)接口測(cè)試用例執(zhí)行操作非常簡(jiǎn)單,就是所測(cè)接口的調(diào)用。 5)預(yù)期結(jié)果驗(yàn)證,這也是接口用例設(shè)計(jì)的很關(guān)鍵的一步 ,應(yīng)該細(xì)而不冗余。
每個(gè)用例均需驗(yàn)證 ,避免一個(gè)用例中重復(fù)做相同的驗(yàn)證 ,提高測(cè)試用例的效率。 如何設(shè)計(jì)接口測(cè)試用例小例子: 簡(jiǎn)單劃分可以按照2個(gè)基本組成要素進(jìn)行劃分:1. 參數(shù) 2. 業(yè)務(wù) 以下為最簡(jiǎn)單的一種劃分用例的方法,可能涵蓋不全,但只為說(shuō)明一種劃分接口用例的方法方式以及需要考慮的測(cè)試用例的測(cè)試點(diǎn) 為何要如此設(shè)計(jì),是為了更好的將用例分類為程序規(guī)定型以及業(yè)務(wù)限制型,盡量的保證覆蓋,盡量細(xì)化到點(diǎn)的劃分形式來(lái)保證工作時(shí)間的預(yù)估和計(jì)劃。
所有的自動(dòng)化接口的測(cè)試用例 都基本圍繞三部曲進(jìn)行,傳數(shù)據(jù),執(zhí)行,校驗(yàn)返回的數(shù)據(jù)和期望數(shù)據(jù)是否一致來(lái)構(gòu)成每個(gè)簡(jiǎn)單的測(cè)試用例。 有清晰的線路和清晰的思維,才能做好整體測(cè)試的掌控。
聲明:本網(wǎng)站尊重并保護(hù)知識(shí)產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請(qǐng)?jiān)谝粋€(gè)月內(nèi)通知我們,我們會(huì)及時(shí)刪除。
蜀ICP備2020033479號(hào)-4 Copyright ? 2016 學(xué)習(xí)鳥(niǎo). 頁(yè)面生成時(shí)間:4.338秒