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