本文章使用王者榮耀游戲接口、企業微信接口的展示結合理論知識,講解什么是接口測試、接口測試理論、疑問收錄與擴展相關知識點的知識學院,快來一起看看吧~
1
接口測試基礎理論
接口測試:接口測試是測試系統組件間接口的一種測試,主要用于測試系統與外部其他系統之間的接口,以及系統內部各個子模塊之間的接口。
接口原理:模擬客戶端向服務器發送請求報文,服務器接收請求報文后對相應的報文做判斷并將最終結果返回至客戶端,客戶端再次接收返回結果并應答的過程。
檢查重點:測試的重點是檢查接口參數傳遞、接口功能實現、輸出結果的正確性,以及對各類異常情況容錯處理的完整性與合理性。
接口類型:內部接口及外部接口,內部接口為程序開發的接口,方法之間或模塊之間的調用,外部接口為外部接入調用接口,例如王者榮耀的微信登錄、支付寶的支付功能等,均是外部接口。
接口分類:webservice接口及http api接口,webService接口使用soap協議傳輸,通過http進行傳輸,是HTTP POST專用版本之一,遵循一種特殊的xml消息格式(請求及返回均為xml),http api接口使用http協議,通過路徑來區分調用的方法,通過key-value請求,返回報文通常為json。
接口本質:接口的本質上是一個公開的函數類,進行數據傳輸的發送與接收,可以理解成一條通道,在發送get或post請求方式時,實際上就是從通道進行發送、在由服務器從通道返回數據。
測試范圍:接口功能、接口性能、接口穩定性以及接口安全性等。
2
為什么要進行接口測試
1、穩固代碼底層:在初期階段的開發時,業務層面無法檢測到底層內容,代碼底層不穩固牢靠,故此需要對底層內容進行接口測試,否則底層代碼錯誤可能會引發更多外部系統或調用模塊的錯誤。
2、低成本高效益:初期開發且資源未設計完成時,提前介入測試工作提前暴露問題,符合質量前移理念,能夠明顯有效的控制測試成本,且接口可進行自動化持續集成,故此會有更高的長期收益體現。
3、測試范圍更廣:接口測試大部分是從用戶的角度而言對系統接口進行全方面的檢查測試,無論是軟件項目還是游戲項目,接口測試均會覆蓋到部分業務邏輯,故此在進行接口測試時也同樣能夠輔助業務測試。
4、提高接口安全:上述提到了接口安全的測試范圍,在接口安全方面考慮,客戶端進行的限制條件容易避開繞過,同樣需要測試服務端的限制,涉及到部分隱私數據時還需要驗證接口的加密傳輸,例如用戶密碼、身份證、銀行卡信息等。
5、保障系統穩固:進行接口測試能夠保障系統間的數據傳輸以及容錯,從而提高系統層面的穩定性。
總結:??
接口測試的優點:提高整體測試效率,降低研發測試的成本,綜合性提升產品質量、降低后續維護資源。
3
如何開展接口測試
3.1、接口開展方式
業務層面:
常用接口測試工具:Postman、Jmeter、SoupUI等。
接口測試工具原理:通過接口測試工具模擬請求與數據接收,實現數據傳輸。
代碼層面:
接口自動化測試:通過代碼實現,發送請求通過代碼斷言判斷接口正確性。
ps:會在后續自動化的文章教學接口自動化框架搭建、持續集成等內容。
3.2、接口測試流程
在真實的項目工作中,接口測試的流程大致分為以下幾個步驟(公司不同,流程會存在部分差異):
1、公司有接口測試需求或測試人員收到接口測試任務時開始正式介入接口測試的流程階段。?
?2、由開發人員提供接口文檔,測試人員拿到接口文檔后先行熟悉需求文檔,了解各個接口的功能以及相關信息。(包括但不限于服務器地址端口、請求方式、請求參數、約束條件、返回狀態碼等)?
?3、當測試人員熟悉需求文檔完成后,開始介入測試用例的編寫,與業務測試相同,需要考慮到正常、異常的請求參數、還需要考慮到對應的響應報文數據的正確性。
4、最后可以通過接口測試工具進行用例執行,可以選用Postman、Jmeter等,舉例:Jmeter可以先建立線程組、添加http請求,寫好相關的請求地址、端口、請求參數,并設置好參數化,添加斷言,最后添加結果樹再運行,Postman與Jmeter原理是一樣的,只是操作方式不同,這里不過多闡述,有興趣的朋友可以網上查找下相關的工具使用說明與資料。
5、當運行完成后,檢查接口是否通過,如果接口測試不通過,第一步先檢查請求方式、參數等信息是否有錯誤,如果無錯誤的情況下,檢查下網絡環境,如果都沒有問題,可能是接口本身存在問題,先以自己的認知進行判斷是前端還是后端問題,判斷完成后提單給開發并附上相關日志信息直至全部確認完成。值得一提的是,在業務的接口測試過程中更多的會關注失敗的接口,在接口自動化的過程中也同樣需要關注測試通過的接口,以用于質量提升、報告輸出等方面。
3.3、接口測試需求
一份接口需求文檔,核心要素主要包括以下內容:
文檔封面:封面為xx公司接口需求文檔,有公司名稱及公司logo并注明為保密文件、需求文檔的版本號、文檔創建日期等。??修訂記錄:通常為表格形式,其中至少包括修訂的版本及日期、修訂說明、修訂人、審核時間以及審核人等。??接口說明:接口訪問地址格式、接口地址舉例、返回結果說明等。(狀態碼及相關注釋)??接口信息:模塊名稱、子模塊、業務描述、接口名稱、請求方法、請求格式、響應格式、請求參數、結果說明、返回示例等。
簡單介紹接口信息中對應信息所產出的內容:
模塊名稱:登錄、支付等
子模塊名:微信登錄、QQ登錄、手機號登錄
業務描述:簡潔概括接口的功能
接口名稱:
/login/wechat,/payment/personal
請求方法:GET / POST 等
請求格式:application/x-www-form-urlencoded
響應格式:application/json
請求參數:手機號、登錄密碼(包括變量名、類型、說明注釋、是否必填)
結果說明:參數內容、變量名、類型(例如string),返回狀態碼等
返回示例:返回成功的舉例,下方4.4接口演示中有圖片體現
ps:并非所有的接口文檔都很規范,絕大多數的需求文檔中不會有如此詳細的信息說明,具體情況大家依據公司接口文檔為準即可。
3.4、接口演示(王者榮耀、企業微信接口演示)
筆者在這里進行一些接口的演示,幫助大家了解接口、熟悉接口需求和說明~
王者榮耀接口展示如下:
英雄列表:
接口地址: https://pvp.qq.com/web201605/js/herolist.json
請求方式:GET
輸入參數:無
??輸出參數:
返回結果(部分展示):
企業微信接口展示如下:
文件上傳接口:
素材上傳得到media_id,該media_id僅三天內有效media_id只能是對應上傳文件的機器人可以使用
請求方式:POST(HTTPS)接口地址:https://qyapi.weixin.qq.com/cgi-bin/webhook/upload_media?key=KEY&type=TYPE
使用multipart/form-data
POST上傳文件, 文件標識名為“media”參數說明:
POST的請求包中,form-data中媒體文件標識,應包含有 filename、filelength、content-type等信息
filename標識文件展示的名稱。比如,使用該media_id發消息時,展示的文件名由該字段控制
請求示例:POST https://qyapi.weixin.qq.com/cgi-bin/webhook/upload_media?key=693a91f6-7xxx-4bc4-97a0-0ec2sifa5aaa&type=file HTTP/1.1
Content-Type: multipart/form-data; boundary=-------------------------acebdf13572468
Content-Length: 220---------------------------acebdf13572468
Content-Disposition: form-data; name=“media”;filename=“wework.txt”; filelength=6
Content-Type: application/octet-streammytext---------------------------acebdf13572468–
返回數據(未傳參):{“errcode”: 44001,“errmsg”: “empty media data, hint: [1638347756075722279950035], from ip: 183.14.133.153, more info at https://open.work.weixin.qq.com/devtool/query?e=44001”}
3.5、接口測試用例設計
用例設計格式:
用例序號:項目名稱_模塊名稱_序號
接口模塊:對應的接口模塊,例如英雄列表、召喚師技能,企業微信的登錄模塊、語音模塊等
請求方式:通常請求方式為GET、POST
接口地址:通常有固定的地址格式便于接口自動化測試(圖中的是全地址)
接口參數輸入:部分接口不需要接口參數的輸入,部分存在接口輸入,如果有,填寫即可
用例設計重點及關注點:
(1)發送給服務器的請求數據是否正確;
(2)服務器返回給客戶端的數據是否與需求一致,符合預期;
(3)查看數據庫中接口是否實現對應功能;
(4)接口的響應時間是否符合需求文檔要求
接口用例設計考慮的范圍:
1、業務功能:功能是否實現
2、業務規則:定義的描述是否符合預期
3、請求參數:參數的長短、大小、格式等
4、異常場景:傳參異常、操作異常、服務異常等
5、數據傳輸:數據傳輸結果的正確性
6、接口性能:接口性能的正確,例如并發等
7、接口安全:如支付類、充值接口的數據篡改等
ps:在以上范圍內還需要考慮接口的用例覆蓋率及代碼覆蓋率,至少符合預期
3.6、后端接口測試內容
所謂的接口測試,后端接口都測試什么內容?下面的圖片會給你一定的幫助(圖片來源于網絡):
好啦~以上就是本次文章分享的全部內容啦,你學會了嗎?有問題記得留言討論哦~
-
測試
+關注
關注
8文章
5269瀏覽量
126599 -
接口
+關注
關注
33文章
8575瀏覽量
151015
原文標題:這都不會,還敢說會接口測試?
文章出處:【微信號:TestinChina,微信公眾號:Testin云測】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論