本節開始,開始介紹python的接口自動化測試,首先需要搭建python開發環境,到https://www.python.org/下載python
版本直接安裝就以了,建議 下載python2.7.11版本,當然,也是可以下載python最新版本的。
接口測試是測試系統組件間接口的一種測試。接口測試主要用於檢測外部系統與系統之間以及內部各個子系統之間的交互點。
測試的重點是要檢查數據的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關系等,該解釋來自百度百科。
當然,為了更好的進行接口測試,需要了解經常使用的http狀態消息,比如請求成功是200 OK,但是http狀態消息除了這個之
外還有很多的,http的狀態消息,簡單的來理解就是當瀏覽器從web服務器發送請求時,可能會請求成功,可能請求失敗返回其他的錯
誤信息,從而返回各種情況的htttp狀態消息。比如百度首頁輸入搜索關鍵詞,可能會返回成功的后的搜索信息,但是也有可能搜索失敗
的情況,當然這種情況一般很少出現,畢竟百度不會出現這么低級的錯誤。下面分別列出經常常見的http狀態消息,這些信息來自w3c
網站,見如下的http狀態消息:
1xx: 信息
消息: | 描述: |
---|---|
100 Continue | 服務器僅接收到部分請求,但是一旦服務器並沒有拒絕該請求,客戶端應該繼續發送其余的請求。 |
101 Switching Protocols | 服務器轉換協議:服務器將遵從客戶的請求轉換到另外一種協議。 |
2xx: 成功
消息: | 描述: |
---|---|
200 OK | 請求成功(其后是對GET和POST請求的應答文檔。) |
201 Created | 請求被創建完成,同時新的資源被創建。 |
202 Accepted | 供處理的請求已被接受,但是處理未完成。 |
203 Non-authoritative Information | 文檔已經正常地返回,但一些應答頭可能不正確,因為使用的是文檔的拷貝。 |
204 No Content | 沒有新文檔。瀏覽器應該繼續顯示原來的文檔。如果用戶定期地刷新頁面,而Servlet可以確定用戶文檔足夠新,這個狀態代碼是很有用的。 |
205 Reset Content | 沒有新文檔。但瀏覽器應該重置它所顯示的內容。用來強制瀏覽器清除表單輸入內容。 |
206 Partial Content | 客戶發送了一個帶有Range頭的GET請求,服務器完成了它。 |
3xx: 重定向
消息: | 描述: |
---|---|
300 Multiple Choices | 多重選擇。鏈接列表。用戶可以選擇某鏈接到達目的地。最多允許五個地址。 |
301 Moved Permanently | 所請求的頁面已經轉移至新的url。 |
302 Found | 所請求的頁面已經臨時轉移至新的url。 |
303 See Other | 所請求的頁面可在別的url下被找到。 |
304 Not Modified | 未按預期修改文檔。客戶端有緩沖的文檔並發出了一個條件性的請求(一般是提供If-Modified-Since頭表示客戶只想比指定日期更新的文檔)。服務器告訴客戶,原來緩沖的文檔還可以繼續使用。 |
305 Use Proxy | 客戶請求的文檔應該通過Location頭所指明的代理服務器提取。 |
306 Unused | 此代碼被用於前一版本。目前已不再使用,但是代碼依然被保留。 |
307 Temporary Redirect | 被請求的頁面已經臨時移至新的url。 |
4xx: 客戶端錯誤
消息: | 描述: |
---|---|
400 Bad Request | 服務器未能理解請求。 |
401 Unauthorized | 被請求的頁面需要用戶名和密碼。 |
402 Payment Required | 此代碼尚無法使用。 |
403 Forbidden | 對被請求頁面的訪問被禁止。 |
404 Not Found | 服務器無法找到被請求的頁面。 |
405 Method Not Allowed | 請求中指定的方法不被允許。 |
406 Not Acceptable | 服務器生成的響應無法被客戶端所接受。 |
407 Proxy Authentication Required | 用戶必須首先使用代理服務器進行驗證,這樣請求才會被處理。 |
408 Request Timeout | 請求超出了服務器的等待時間。 |
409 Conflict | 由於沖突,請求無法被完成。 |
410 Gone | 被請求的頁面不可用。 |
411 Length Required | "Content-Length" 未被定義。如果無此內容,服務器不會接受請求。 |
412 Precondition Failed | 請求中的前提條件被服務器評估為失敗。 |
413 Request Entity Too Large | 由於所請求的實體的太大,服務器不會接受請求。 |
414 Request-url Too Long | 由於url太長,服務器不會接受請求。當post請求被轉換為帶有很長的查詢信息的get請求時,就會發生這種情況。 |
415 Unsupported Media Type | 由於媒介類型不被支持,服務器不會接受請求。 |
416 | 服務器不能滿足客戶在請求中指定的Range頭。 |
417 Expectation Failed |
5xx: 服務器錯誤
消息: | 描述: |
---|---|
500 Internal Server Error | 請求未完成。服務器遇到不可預知的情況。 |
501 Not Implemented | 請求未完成。服務器不支持所請求的功能。 |
502 Bad Gateway | 請求未完成。服務器從上游服務器收到一個無效的響應。 |
503 Service Unavailable | 請求未完成。服務器臨時過載或當機。 |
504 Gateway Timeout | 網關超時。 |
505 HTTP Version Not Supported | 服務器不支持請求中指明的HTTP協議版本。 |
對於接口測試來說,一般分為二種情況,分別是基於http協議和基於web services協議,但是最常用的是基於http協議的
接口測試,其中最常用的http方法是get和post,當然還有put,delete請求,接口測試的過程就是client(瀏覽器)向server(服務
器端)request一個請求,server得到請求后,response返回給client響應數據。下面分別說明接口測試中幾種常使用的請求方法:
GET:從指定的資源獲取數據
如在百度閱讀搜索“selenium-python自動化測試“,就會返回本人寫的《selenium-python自動化測試》電子書,請求地址
為:http://yuedu.baidu.com/search?word=selenium-python%E8%87%AA%E5%8A%A8%E5%8C%96%E6%
B5%8B%E8%AF%95,方式為GET,見請求后返回的結果:
POST:向指定的資源要被處理的數據
對於post請求,以百度登錄為案例,來說明這一過程,請求地址為:http://www.cyw.com/api/login/authorized.html,
請求方式為POST,見如下的截圖:
PUT:上傳指定的URL,一般是修改,可以理解為數據庫中的update。
DELETE:刪除指定資源。
在接口測試中,一般來說,post創建數據,get獲取創建成功后的所有數據和指定的數據,put可以對創建成功后的數據
進行修改,delete是指定的資源。
當然,接口自動化相比UI自動化來說,比較復雜,需要掌握的知識比較多,本人也是在學習中,感覺接口自動化測試,
首先需要了解http狀態消息,http協議,http方法,當然還得了解python語言,畢竟接口自動化測試是以代碼的方式進行,
並非工具的方式。
如您對接口自動化測試感興趣,可掃描如下二維碼關注本課程,謝謝!