如何做接口測試?
接口測試作為業務質量的重要保證手段,是整個質量保證過程中必可不少的手段了,目前主要的測試方式包括利用工具進行測試比如postman、jmeter,還有純代碼編寫測試case,測試平臺,一些支持通過文件寫測試用例的框架等。
為什么要做接口測試在金字塔這樣的自底向上結構中,越靠近底層,測試越穩定,所以我們投入的也應該越高;同樣的,越是底層,發現問題越早、越高效,修改和維護的成本也就越低。但是單元測試目前只在一些大廠做的比較好,而且單元測試要想覆蓋到的全面,需要很大的投入,一般的互聯網公司這塊是缺失,而由于接口測試的高投資回報比,決定其大范圍的應用,互聯網公司也會把中心放到這塊兒。
接口測試的手段可視化工具類
常用的接口可視化界面工具有postman,和他的情敵Postwoman,jmeter也可以做,postman可以接入Jenkins實現持續集成,而且操作方便,功能也很強大,現在互聯網技術人員幾乎人手必備。但是會有個問題,它的靈活性不夠,在寫接口測試用例的時候回有時會操作mysql、Redis,還會調用thrift,甚至需要建立socket鏈接,而且無法進行版本控制。純代碼
純代碼的測試手段是能滿足所有的接口測試需求,是最靈活的一種,個人認為也是最好用的一種。不同語言生態都可以實現,比如java生態們可以使用restassured、assrtj、junit來做,python生態可以使用requests、pytest來做,不過這需要編碼能力,對測試人員的要求會高一些。測試平臺
通過搭建一個測試平臺,在這上面寫測試用例,平臺一般會提供可視化界面讓測試人員編寫,平臺的好處是可以讓不懂編碼的同學也能快速寫出測試用例,而且可以對測試用例進行管理,控制用例執行等。支持文件寫用例的框架
還要寫測試框架支持通過編寫json、yaml文件編寫測試用例,有框架解析文件生成測試用例,然后去執行。接口測試的思路接口測試用例設計主要針對輸入、處理、輸出進行考慮
針對輸入進行設計
對于接口來說,輸入就是入參,一般的參數類型數值型邊界內、邊界值、邊界外三個方面去考慮特殊值處理不當程序異常、類型邊界溢出、錯誤信息返回不正確字符串主要考慮字符串長度和字符串的內容空、特殊字符、數字、表情符號數組鏈表多個重復值、空、最大范圍值結構體:json、字典字段錯誤,字段類型錯誤、未包含字段、缺失字段
針對邏輯設計
限制條件數值類型限制,比如購買次數、登錄次數、優惠券最大面額、訂單取消次數等狀態限制:比如是否登錄、是否有訂單等關系限制:比如好友關系、關注關系,只能查看好友或者關注人的朋友圈權限限制:比如銷售只能查看和自己綁定客戶數據,而管理員可有查看所有客戶數據時間限制:比如未支付過20分鐘訂單自動取消狀態轉換分析比如一個出租車訂單,從乘客下單、司機搶單、到達起點、接上乘客、到達目的地,發起支付,支付,評價這是一個完整的訂單狀態轉換流程,必須按照這個次序,才能正確流轉,一旦打亂其中任何一個狀態,就會出現邏輯問題。接口用例可以這樣設計:正常狀態遷移: 乘客下單,司機搶單,異常狀態遷移:乘客剛下的那,司機發起支付,出現異常針對輸出設計
針對輸出結果,一般情況下,接口正常處理的結果可能只有一個,但是異常的處理結果,可能會返回多種錯誤,那就可以針對不同的錯誤進行設計。接口超時,舊版本接口,廢棄接口,接口設計是否合理,比如字段冗余、接口冗余、返回錯誤信息是否清晰明了、調用是否方便,冪等性總結接口測試重要的思路要明確,清晰的理解業務邏輯,至于具體的工具根據自己目前的能力選擇,先去做,在做的過程中不斷完善不斷學習,早日提高自己的測試技能。
碼字不易,歡迎大家點贊評論支持。