問題:接口的入?yún)?、地址、請求方式都設(shè)置對了,但是請求仍返回500,報系統(tǒng)錯誤是為啥?
在日常進(jìn)行接口測試過程中,我們都知道一個完整的接口HTTP請求一般包括四大部分:請求信息頭、請求體、響應(yīng)信息頭、響應(yīng)體、請求方式(post/get等)。在進(jìn)行測試時我們比較關(guān)心的是請求入?yún)ⅲ簿褪钦埱篌w的信息,從而忽略了請求信息頭的重要性。若是未正確定義信息頭,會導(dǎo)致接口請求失敗。
本文主要帶大家簡單了解下信息頭的作用。Jmeter提供了HTTP Header Manager信息頭管理器,用于定義規(guī)范客戶端和服務(wù)端之間HTTP接口請求的默認(rèn)規(guī)范。
注意:HTTP 的請求方式有 8 種,但是我們在實際應(yīng)用中常用的也就是 get 和 post,其他請求方式也都可以通過這兩種方式間接的來實現(xiàn)。
常用的標(biāo)準(zhǔn)
常用的HTTP接口請求頭字段有如下:
l Accept
設(shè)置接受的內(nèi)容類型
l User-Agent
用戶代理的字符串值,一般用于告訴服務(wù)器客戶端使用的操作系統(tǒng)/瀏覽器的名稱和版本等信息
l Content-Type
設(shè)置請求體的MIME類型(適用POST和PUT請求),告訴客戶端實際返回的內(nèi)容的內(nèi)容類型,常用application/json;charset=UTF-8,定義接口響應(yīng)返回的數(shù)據(jù)是json格式,編碼格式是UTF-8。
l Content-Length
設(shè)置請求體的字節(jié)長度
l Accept-Encoding
設(shè)置接受的編碼格式
l Accept-Language
設(shè)置接受的語言
l Origin
標(biāo)識跨域資源請求(請求服務(wù)端設(shè)置Access-Control-Allow-Origin響應(yīng)字段)
l Referer
設(shè)置前一個頁面的地址,并且前一個頁面中的連接指向當(dāng)前請求,意思就是如果當(dāng)前請求是在A頁面中發(fā)送的,那么referer就是A頁面的url地址
l Cookie
Cookie是遠(yuǎn)程服務(wù)端返回的識別用戶身份信息,該信息存儲在客戶端,客戶端每次進(jìn)行操作時,會通過HTTP協(xié)議和服務(wù)器端進(jìn)行Cookie的交互,驗證身份信息正確才可交互成功(大多數(shù)需要登錄后操作的接口上面會比較常見)。
l Set-Cookie
設(shè)置HTTP Cookie,用來存儲一些用戶信息以便讓服務(wù)器辨別用戶身份的,一般是服務(wù)端返回的用戶身份信息(大多數(shù)需要登錄的接口上面會比較常見)
......
Header信息獲取方式
接口的信息頭到底定義了哪些內(nèi)容,可以通過以下渠道獲得:
1. 開發(fā)提供接口文檔
2. 通過抓包工具charles抓取查看Request的Headers
下圖為方式2,通過抓包工具查看到的某接口的請求信息頭(Request-Headers)
實踐
目標(biāo):某系統(tǒng)登錄接口已定義響應(yīng)數(shù)據(jù)(Response)返回的格式是json格式,使用jmeter的HTTP Request、HTTP Header Manager成功實現(xiàn)登錄。
配置
菜單路徑
配置內(nèi)容:
從抓包工具charles上可獲取到接口需要定義Content-Type:application/json;charset=UTF-8(響應(yīng)數(shù)據(jù)為json格式,編碼方式為UTF-8)
未定義信息頭
下圖中POST方式的登錄接口未設(shè)置HTTP Header Manager,運行jmeter腳本發(fā)起接口請求時默認(rèn)Content-Type:text/plain(純文本格式),所以請求會報錯,返回狀態(tài)碼500。
?
正確定義信息頭
正確定義信息頭:Content-Type:application/json
信息頭配置正確后,運行jmeter腳本接口請求成功,返回狀態(tài)碼200。
其他常見的媒體格式
text/html :HTML格式
text/plain :純文本格式
text/xml :XML格式
application/xhtml+xml :XHTML格式
application/xml:XML數(shù)據(jù)格式
application/json:JSON數(shù)據(jù)格式
......
本文僅分享由于請求信息頭(Headers)未定義而引起的錯誤碼500,不排除其他原因引起。
最后感謝每一個認(rèn)真閱讀我文章的人,看著粉絲一路的上漲和關(guān)注,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走
?文章來源:http://www.zghlxwxcb.cn/news/detail-737119.html
這些資料,對于做【軟件測試】的朋友來說應(yīng)該是最全面最完整的備戰(zhàn)倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!凡事要趁早,特別是技術(shù)行業(yè),一定要提升技術(shù)功底。希望對大家有所幫助…..點擊下方小卡片進(jìn)群免費獲取~文章來源地址http://www.zghlxwxcb.cn/news/detail-737119.html
到了這里,關(guān)于接口測試遇到500報錯?別慌,你的頭部可能有點問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!