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