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