大多數(shù)人對(duì)于接口測(cè)試都覺(jué)得是一種高大上的測(cè)試,覺(jué)得學(xué)會(huì)接口測(cè)試就可以從小白測(cè)試員,變成了高級(jí)測(cè)試員,但其實(shí)接口測(cè)試只是測(cè)試的基礎(chǔ)內(nèi)容
什么是接口
接口泛指實(shí)體把自己提供給外界的一種抽象化物(可以為另一實(shí)體),用以由內(nèi)部操作分離出外部溝通方法,使其能被內(nèi)部修改而不影響外界其他實(shí)體與其交互的方式。
人類與電腦等信息機(jī)器或人類與程序之間的接口稱為用戶界面。電腦等信息機(jī)器硬件組件間的接口叫硬件接口。電腦等信息機(jī)器軟件組件間的接口叫軟件接口。
在計(jì)算機(jī)中,接口是計(jì)算機(jī)系統(tǒng)中兩個(gè)獨(dú)立的部件進(jìn)行信息交換的共享邊界。這種交換可以發(fā)生在計(jì)算機(jī)軟、硬件,外部設(shè)備或進(jìn)行操作的人之間,也可以是它們的結(jié)合。
接口測(cè)試主要用于外部系統(tǒng)與系統(tǒng)之間以及內(nèi)部各個(gè)子系統(tǒng)之間的交互點(diǎn),定義特定的交互點(diǎn),然后通過(guò)這些交互點(diǎn)來(lái),通過(guò)一些特殊的規(guī)則也就是協(xié)議,來(lái)進(jìn)行數(shù)據(jù)之間的交互。
你要買一倆車,你不用知道車在工廠里面需要什么原理,怎么構(gòu)造模型,怎么制作,你只要到能找到窗口,給出你要買車的信號(hào),窗口返回給你一個(gè)車的相關(guān)信息的信號(hào)。接口也是這樣,你不用理解程序內(nèi)部是怎么樣的,你只要理解你給出請(qǐng)求從而得到的請(qǐng)求是正確的,即你發(fā)出A的數(shù)據(jù),必須得到B的返回,而不是C。
為什么要做接口測(cè)試
在了解為什么要接口測(cè)試之前,我們需要了解以下幾點(diǎn):1.越底層,越穩(wěn)定。2.越底層,越高效。3.越底層,越低成本。4.越底層,越難實(shí)施。
接口測(cè)試測(cè)試系統(tǒng)組件間接口的一種測(cè)試。接口測(cè)試主要用于檢測(cè)外部系統(tǒng)與系統(tǒng)之間以及內(nèi)部各個(gè)子系統(tǒng)之間的交互點(diǎn)。測(cè)試的重點(diǎn)是要檢查數(shù)據(jù)的交換,傳遞和控制管理過(guò)程,以及系統(tǒng)間的相互邏輯依賴關(guān)系等。就如同之前的買車時(shí),我們需要確定你給出的是買車信號(hào),返回的是相關(guān)車輛信息,而不是買房信息。
接口測(cè)試的模板
請(qǐng)求協(xié)議:
http — 普通的http請(qǐng)求,默認(rèn)端口為80
https — 加密的http請(qǐng)求,傳輸數(shù)據(jù)更加安全,默認(rèn)端口為443
ftp — 文件傳輸協(xié)議,主要用來(lái)傳輸文件,默認(rèn)端口為21
請(qǐng)求IP:就是指提供接口的系統(tǒng)所部署的服務(wù)器地址,可以是直接的IP地址,也可以是域名
請(qǐng)求端口:如果不填端口,都是默認(rèn)端口,否則需要填寫端口號(hào)
接口路徑:指系統(tǒng)提供的接口在什么位置
接口參數(shù):參數(shù)在接口路徑后,用“?”來(lái)表示路徑地址完了,剩下的都是參數(shù)了,用“&”來(lái)區(qū)分參數(shù)個(gè)數(shù),
http中的常用請(qǐng)求方式
這個(gè)請(qǐng)求方式,作為一位測(cè)試人員,不需要擔(dān)心不知道該項(xiàng)目請(qǐng)求方式是什么,一般情況是在開發(fā)文檔中有具體的說(shuō)明請(qǐng)求方式是什么,不過(guò)我們有時(shí)候需要有自我的判斷這個(gè)地方用什么接口合適,比如輸入密碼的地方一定要用post方法,絕對(duì)不能用get的方法。
序號(hào) 方法 描述
1 GET 請(qǐng)求指定的頁(yè)面信息,并返回實(shí)體主體。 2 HEAD 類似于get請(qǐng)求,只不過(guò)返回的響應(yīng)中沒(méi)有具體的內(nèi)容,用于獲取報(bào)頭 3 POST 向指定資源提交數(shù)據(jù)進(jìn)行處理請(qǐng)求(例如提交表單或者上傳文件)。數(shù)據(jù)被包含在請(qǐng)求體中。POST請(qǐng)求可能會(huì)導(dǎo)致新的資源的建立和/或已有資源的修改。 4 PUT 從客戶端向服務(wù)器傳送的數(shù)據(jù)取代指定的文檔的內(nèi)容。 5 DELETE 請(qǐng)求服務(wù)器刪除指定的頁(yè)面。 6 CONNECT HTTP/1.1協(xié)議中預(yù)留給能夠?qū)⑦B接改為管道方式的代理服務(wù)器。 7 OPTIONS 允許客戶端查看服務(wù)器的性能。 8 TRACE 回顯服務(wù)器收到的請(qǐng)求,主要用于測(cè)試或診斷。 9 PATCH 實(shí)體中包含一個(gè)表,表中說(shuō)明與該URI所表示的原內(nèi)容的區(qū)別。 10 MOVE 請(qǐng)求服務(wù)器將指定的頁(yè)面移至另一個(gè)網(wǎng)絡(luò)地址。 11 COPY 請(qǐng)求服務(wù)器將指定的頁(yè)面拷貝至另一個(gè)網(wǎng)絡(luò)地址。 12 LINK 請(qǐng)求服務(wù)器建立鏈接關(guān)系。 13 UNLINK 斷開鏈接關(guān)系。 14 WRAPPED 允許客戶端發(fā)送經(jīng)過(guò)封裝的請(qǐng)求。 15 Extension-mothed 在不改動(dòng)協(xié)議的前提下,可增加另外的方法。
接口測(cè)試的重點(diǎn)
目的:測(cè)試接口的正確性和穩(wěn)定性;
原理:模擬客戶端向服務(wù)器發(fā)送請(qǐng)求報(bào)文,服務(wù)器接收請(qǐng)求報(bào)文后對(duì)相應(yīng)的報(bào)文做處理并向客戶端返回應(yīng)答,客戶端接收應(yīng)答的過(guò)程;
重點(diǎn):檢查數(shù)據(jù)的交換,傳遞和控制管理過(guò)程,還包括處理的次數(shù);
核心:持續(xù)集成是接口測(cè)試的核心;
優(yōu)點(diǎn):為高復(fù)雜性的平臺(tái)帶來(lái)高效的缺陷監(jiān)測(cè)和質(zhì)量監(jiān)督能力,平臺(tái)越復(fù)雜,系統(tǒng)越龐大,接口測(cè)試的效果越明顯(提高測(cè)試效率,提升用戶體驗(yàn),降低研發(fā)成本);
用例設(shè)計(jì)重點(diǎn):通常情況下主要測(cè)試最外層的兩類接口:數(shù)據(jù)進(jìn)入系統(tǒng)接口(調(diào)用外部系統(tǒng)的參數(shù)為本系統(tǒng)使用)和數(shù)據(jù)流出系統(tǒng)接口(驗(yàn)證系統(tǒng)處理后的數(shù)據(jù)是否正常);
接口測(cè)試質(zhì)量評(píng)估標(biāo)準(zhǔn)
業(yè)務(wù)功能覆蓋是否完整
業(yè)務(wù)規(guī)則覆蓋是否完整
參數(shù)驗(yàn)證是否達(dá)到要求(邊界、業(yè)務(wù)規(guī)則)
接口異常場(chǎng)景覆蓋是否完整
接口覆蓋率是否達(dá)到要求
代碼覆蓋率是否達(dá)到要求
性能指標(biāo)是否滿足要求
安全指標(biāo)是否滿足要求
接口模擬測(cè)試
接口:https://api.apiopen.top/getWangYiNews
請(qǐng)求類型:POST
在線測(cè)試:https://www.sojson.com/httpRequest/
軟件測(cè)試:postman、jemter(這兩個(gè)后期出專門的使用教程)
1、輸入相應(yīng)的數(shù)據(jù)
2、獲取的數(shù)據(jù)進(jìn)行分析
這一塊是表頭,一般情況不需要特別記住,只要了解就可以了,注意返回的狀態(tài)碼是否是正確的,有一些時(shí)候需要注意加載的時(shí)間
這一塊內(nèi)容為表主體,也就是我們查看返回的數(shù)據(jù)是否正確。
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-841184.html
HTTP狀態(tài)碼列表
狀態(tài)碼 狀態(tài)碼英文名稱 中文描述 100 Continue 繼續(xù)??蛻舳藨?yīng)繼續(xù)其請(qǐng)求 101 Switching Protocols 切換協(xié)議。服務(wù)器根據(jù)客戶端的請(qǐng)求切換協(xié)議。只能切換到更高級(jí)的協(xié)議,例如,切換到HTTP的新版本協(xié)議 200 OK 請(qǐng)求成功。一般用于GET與POST請(qǐng)求 201 Created 已創(chuàng)建。成功請(qǐng)求并創(chuàng)建了新的資源 202 Accepted 已接受。已經(jīng)接受請(qǐng)求,但未處理完成 203 Non-Authoritative Information 非授權(quán)信息。請(qǐng)求成功。但返回的meta信息不在原始的服務(wù)器,而是一個(gè)副本 204 No Content 無(wú)內(nèi)容。服務(wù)器成功處理,但未返回內(nèi)容。在未更新網(wǎng)頁(yè)的情況下,可確保瀏覽器繼續(xù)顯示當(dāng)前文檔 205 Reset Content 重置內(nèi)容。服務(wù)器處理成功,用戶終端(例如:瀏覽器)應(yīng)重置文檔視圖。可通過(guò)此返回碼清除瀏覽器的表單域 206 Partial Content 部分內(nèi)容。服務(wù)器成功處理了部分GET請(qǐng)求 300 Multiple Choices 多種選擇。請(qǐng)求的資源可包括多個(gè)位置,相應(yīng)可返回一個(gè)資源特征與地址的列表用于用戶終端(例如:瀏覽器)選擇 301 Moved Permanently 永久移動(dòng)。請(qǐng)求的資源已被永久的移動(dòng)到新URI,返回信息會(huì)包括新的URI,瀏覽器會(huì)自動(dòng)定向到新URI。今后任何新的請(qǐng)求都應(yīng)使用新的URI代替 302 Found 臨時(shí)移動(dòng)。與301類似。但資源只是臨時(shí)被移動(dòng)??蛻舳藨?yīng)繼續(xù)使用原有URI 303 See Other 查看其它地址。與301類似。使用GET和POST請(qǐng)求查看 304 Not Modified 未修改。所請(qǐng)求的資源未修改,服務(wù)器返回此狀態(tài)碼時(shí),不會(huì)返回任何資源??蛻舳送ǔ?huì)緩存訪問(wèn)過(guò)的資源,通過(guò)提供一個(gè)頭信息指出客戶端希望只返回在指定日期之后修改的資源 305 Use Proxy 使用代理。所請(qǐng)求的資源必須通過(guò)代理訪問(wèn) 306 Unused 已經(jīng)被廢棄的HTTP狀態(tài)碼 307 Temporary Redirect 臨時(shí)重定向。與302類似。使用GET請(qǐng)求重定向 400 Bad Request 客戶端請(qǐng)求的語(yǔ)法錯(cuò)誤,服務(wù)器無(wú)法理解 401 Unauthorized 請(qǐng)求要求用戶的身份認(rèn)證 402 Payment Required 保留,將來(lái)使用 403 Forbidden 服務(wù)器理解請(qǐng)求客戶端的請(qǐng)求,但是拒絕執(zhí)行此請(qǐng)求 404 Not Found 服務(wù)器無(wú)法根據(jù)客戶端的請(qǐng)求找到資源(網(wǎng)頁(yè))。通過(guò)此代碼,網(wǎng)站設(shè)計(jì)人員可設(shè)置"您所請(qǐng)求的資源無(wú)法找到"的個(gè)性頁(yè)面 405 Method Not Allowed 客戶端請(qǐng)求中的方法被禁止 406 Not Acceptable 服務(wù)器無(wú)法根據(jù)客戶端請(qǐng)求的內(nèi)容特性完成請(qǐng)求 407 Proxy Authentication Required 請(qǐng)求要求代理的身份認(rèn)證,與401類似,但請(qǐng)求者應(yīng)當(dāng)使用代理進(jìn)行授權(quán) 408 Request Time-out 服務(wù)器等待客戶端發(fā)送的請(qǐng)求時(shí)間過(guò)長(zhǎng),超時(shí) 409 Conflict 服務(wù)器完成客戶端的 PUT 請(qǐng)求時(shí)可能返回此代碼,服務(wù)器處理請(qǐng)求時(shí)發(fā)生了沖突 410 Gone 客戶端請(qǐng)求的資源已經(jīng)不存在。410不同于404,如果資源以前有現(xiàn)在被永久刪除了可使用410代碼,網(wǎng)站設(shè)計(jì)人員可通過(guò)301代碼指定資源的新位置 411 Length Required 服務(wù)器無(wú)法處理客戶端發(fā)送的不帶Content-Length的請(qǐng)求信息 412 Precondition Failed 客戶端請(qǐng)求信息的先決條件錯(cuò)誤 413 Request Entity Too Large 由于請(qǐng)求的實(shí)體過(guò)大,服務(wù)器無(wú)法處理,因此拒絕請(qǐng)求。為防止客戶端的連續(xù)請(qǐng)求,服務(wù)器可能會(huì)關(guān)閉連接。如果只是服務(wù)器暫時(shí)無(wú)法處理,則會(huì)包含一個(gè)Retry-After的響應(yīng)信息 414 Request-URI Too Large 請(qǐng)求的URI過(guò)長(zhǎng)(URI通常為網(wǎng)址),服務(wù)器無(wú)法處理 415 Unsupported Media Type 服務(wù)器無(wú)法處理請(qǐng)求附帶的媒體格式 416 Requested range not satisfiable 客戶端請(qǐng)求的范圍無(wú)效 417 Expectation Failed 服務(wù)器無(wú)法滿足Expect的請(qǐng)求頭信息 500 Internal Server Error 服務(wù)器內(nèi)部錯(cuò)誤,無(wú)法完成請(qǐng)求 501 Not Implemented 服務(wù)器不支持請(qǐng)求的功能,無(wú)法完成請(qǐng)求 502 Bad Gateway 作為網(wǎng)關(guān)或者代理工作的服務(wù)器嘗試執(zhí)行請(qǐng)求時(shí),從遠(yuǎn)程服務(wù)器接收到了一個(gè)無(wú)效的響應(yīng) 503 Service Unavailable 由于超載或系統(tǒng)維護(hù),服務(wù)器暫時(shí)的無(wú)法處理客戶端的請(qǐng)求。延時(shí)的長(zhǎng)度可包含在服務(wù)器的Retry-After頭信息中 504 Gateway Time-out 充當(dāng)網(wǎng)關(guān)或代理的服務(wù)器,未及時(shí)從遠(yuǎn)端服務(wù)器獲取請(qǐng)求 505 HTTP Version not supported 服務(wù)器不支持請(qǐng)
演示代碼
以下是一個(gè)基于Python的requests庫(kù)編寫的接口測(cè)試示例代碼。這個(gè)代碼演示了如何使用GET和POST方法來(lái)測(cè)試一個(gè)簡(jiǎn)單的API接口。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-841184.html
import requests # 示例GET請(qǐng)求 def test_get_request(api_url): response = requests.get(api_url) if response.status_code == 200: return response.json() # 返回JSON格式的響應(yīng)內(nèi)容 else: return "Error", response.status_code # 示例POST請(qǐng)求 def test_post_request(api_url, data, headers): response = requests.post(api_url, data=data, headers=headers) if response.status_code == 200: return response.json() # 返回JSON格式的響應(yīng)內(nèi)容 else: return "Error", response.status_code # 使用示例 if __name__ == "__main__": api_url = 'http://example.com/api' # 替換為實(shí)際的API URL test_data = {'key1': 'value1', 'key2': 'value2'} # 測(cè)試數(shù)據(jù) test_headers = {'Content-Type': 'application/json'} # 請(qǐng)求頭 # 測(cè)試GET請(qǐng)求 get_result = test_get_request(api_url) print("GET請(qǐng)求結(jié)果:", get_result) # 測(cè)試POST請(qǐng)求 post_result = test_post_request(api_url, data=test_data, headers=test_headers) print("POST請(qǐng)求結(jié)果:", post_result)
到了這里,關(guān)于接口測(cè)試入門指南:從基礎(chǔ)到實(shí)戰(zhàn)的全面解析的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!