HTTP響應狀態碼(404,500 )

2021-10-23 07:18:46 字數 1366 閱讀 5741

在使用 httprunner 進行介面測試的時候,最常用到的一類斷言方式就是判斷介面返回的響應狀態碼,所以這裡對各型別的 http 響應狀態碼進行簡要介紹。

http 狀態碼(http status code):是用以表示伺服器對請求進行響應後,表示結果狀態的3位數字**。被置於響應頭的第一行(也叫響應行)中。以 firefox 瀏覽器自帶網路功能抓包為例,在「狀態碼」一項中可以清晰看到。狀態碼後面緊跟的是「訊息短語」,可以看成對狀態碼的最精簡解釋說明。

如圖,狀態碼:200, 訊息短語:ok,代表此請求的響應是成功完成的。

http 的響應狀態碼主要分為五類,分別為從1到5開頭的三位數字:

1xx: 代表訊息

2xx: 代表成功

3xx: 代表重定向

4xx: 代表客戶端錯誤

5xx: 代表伺服器端錯誤

在進行介面測試的過程中,我們涉及比較多的有以下幾個:

1. 200 ok

請求成功,伺服器已經正常響應。

注意:返回 200 不一定代表得到的就是我們預期的結果頁面,如登入成功開啟系統桌面,此時返回200狀態碼,但是不小心輸入了錯誤的使用者名稱和密碼,登入失敗仍然回到登入頁面,但此時伺服器返回響應的狀態碼還是 200,說明這個過程中伺服器已經做完它認為正確的事情,而不是代表業務的正確性。所以在測試的時候,僅僅依靠200這個狀態碼進行斷言是不充分的。

httpruner 斷言寫法: - eq: [status_code, 200]

2. 301/302/307 永久移動/臨時移動/臨時重定向

被請求的資源已經不在你請求的url上了,需要去另外乙個url中獲取。

注意:httprunner 的核心實際是 requests 模組,而 requests 模組在傳送請求的時候,會預設自動完成重定向的操作,此時就無法從重定向前的頁面提取資料了。

解決方法,在 request 關鍵字下增加: allow_redirects: false

3. 304 未改變

如果瀏覽器端的快取檔案已經過期,則瀏覽器自己無法自己決定該檔案是否還可以繼續使用,此時需要向伺服器傳送請求來詢問。伺服器判斷此段時間以來,該檔案是否被改變過,如果沒有改變過,則說明瀏覽器端的快取檔案依然可以使用,就向瀏覽器傳送 304 訊息(只有響應頭沒有響應體),瀏覽器收到後直接讀取快取檔案內容呈現到頁面。當然,如果伺服器判斷該檔案被修改過,會重新向瀏覽器傳送 200 訊息(重新傳送最新檔案)。

4. 401 未經許可,認證失敗

請求失敗,請求資源的時候沒有通過認證,鑑權失敗了。

5. 404 未找到

請求失敗,請求的資源在伺服器上沒有找到。

注意:一般發生這種錯誤,不意味著伺服器端**的錯誤,往往是由於自己編寫的 url 或者檔名稱錯誤,需要自行檢查。

6. 500 伺服器內部錯誤

HTTP響應狀態碼

1 請求收到,繼續處理 2 操作成功收到,分析 接受 3 完成此請求必須進一步處理 4 請求包含乙個錯誤語法或不能完成 5 伺服器執行乙個完全有效請求失敗 100 客戶必須繼續發出請求 101 客戶要求伺服器根據請求轉換http協議版本 200 交易成功 201 提示知道新檔案的url 202 接受...

HTTP 響應狀態碼

100 continue 初始的請求已經接受,客戶應當繼續傳送請求的其餘部分。101 switching protocols 伺服器將遵從客戶的請求轉換到另外一種協議。200 ok 一切正常,對get和post請求的應答文件跟在後面。201 created 伺服器已經建立了文件,location 頭...

HTTP響應狀態碼

1 資訊,伺服器收到請求,需要請求者繼續執行操作 2 成功,操作被成功接受並處理 3 重定向,需要進一步的操作以完成請求 4 客戶端錯誤,請求包含語法錯誤或無法完成請求 5 伺服器操作,伺服器在處理請求的過程中發生了錯誤 1xx 臨時響應 表示臨時響應並需要請求者繼續執行操作的狀態碼。100 繼續 ...