1. 程式人生 > >使用robotframework做接口測試之一——準備工作

使用robotframework做接口測試之一——準備工作

.org nbsp put htm 呵呵 解決問題 org 相對路徑 進行

最近發現做接口測試的朋友越來越多了,打算寫一個系列的rf+requests做接口測試(主要是Http接口)的文檔,可以幫助新入門的同學對接口測試有個大概的了解,同時也是敦促自己做總結的一種手段。希望經驗豐富的大神路過時,如發現我文檔中的不足,提出中肯的批評及更好的解決思路。以期共同進步。

一、環境準備

1)默認已經安裝robotframework
2)默認已經安裝requests庫
3)默認已經安裝並成功導入RequestsLibrary
4)會用抓包工具,fiddler或Charles都可

用這個庫做接口測試,希望用戶本身對這個庫有一定的了解,如果不了解,那麽我們來叨一叨選擇的理由。
1)Python的requests庫號稱是“HTTP for Humans”,它提供了非常方便且人性化的接口調用方法,上手快,功能強大且完美,甩同類庫urllib2, httplib好幾條街。國外網友的使用心得大多是,呵呵呵呵,用requests庫十幾行代碼,把以前的幾百行代碼重構了。缺點是封裝了太多層,不利於http底層原理的理解。中文版用戶指南:http://docs.python-requests.org/zh_CN/latest/user/quickstart.html
2)RequestsLibrary是基於requests模塊做的RF庫,其根基本身就強大,再加上git上有一些大神一直在對其進行持續地更新及維護,提供了很不錯的官方Demo,從使用人數來說,也是完爆那些HTTPLibrary之流,意味著遇到問題得到解答的機會更大。Git地址:https://github.com/bulkan/robotframework-requests/

二、Http接口測試初窺
這一節要寫一個get請求的例子,強烈推薦使用官方Demo入門,並且建議新老用戶都熟悉Demo的每一個細節,對,是每一個細節。筆者當初多走了許多彎路,對這個細致的Demo相見恨晚,每次都溫習demo而後知恥。。
第一個栗子:假如有個這樣的get請求:https://api.github.com/users/bulkan,抓包

技術分享圖片



可以看出,這個接口請求中:
協議: https
訪問的host: api.github.com
root url(基礎url): https://api.github.com
相對uri: /users/bulkan
method: get
傳輸參數: 無
該抓包其對應的測試用例如下:

技術分享圖片


對應到用例,第一步創建一個到https://api.github.com的session,取個很容易認的別名github,第二步,使用get方法,訪問別名為github的相對路徑/users/bulkan。第3,4步斷言返回數據。
對於前面兩步,直接使用requests.get方法可以一步完成,為什麽要強制拆成兩步呢。可以大概揣測一下作者的意圖:
1、使用別名,會使後面的請求寫起來更順手,用例也比較好看,大部分時候訪問同一地址的請求,不需要重復創建session
2、session的使用,可以實現跨請求保持一些cookie,這個功能才是session的重頭戲。

Get request的好基友是post request,也是非常基礎的必須掌握的一種請求方式,這個我就不寫了。官方Demo幾乎列出了所有可能出現的get 及post請求的例子,非常經典,實際項目中都能從裏面找到原型。另外還有一些不常見的請求方式如head, put, delete等,也有例子。

三、如何開始你的接口測試第一步
首先,你得有項目組完善且規範的接口文檔。好吧,大部分的中小公司的寶寶會說啥文檔也沒有。也可以通過抓包來開始做項目的接口demo,在無須外力的因素下邁出第一步,但是單憑抓包是抓不全的,所以最終實施前還是得搞來一份完整的接口文檔,才能保證用例的覆蓋。
單有接口文檔也是不夠的,還要學會如何抓包,抓包後知道如何解剖一個請求,重點關註請求的method, url, request header, request body, cookie, response header, response body等,還是那句話,辦法永遠比問題多,培養好的觀察能力和解決問題能力無比重要。

使用robotframework做接口測試之一——準備工作