使用robotframework做接口测试之一——准备工作
最近發(fā)現(xiàn)做接口測試的朋友越來越多了,打算寫一個系列的rf+requests做接口測試(主要是Http接口)的文檔,可以幫助新入門的同學(xué)對接口測試有個大概的了解,同時也是敦促自己做總結(jié)的一種手段。希望經(jīng)驗(yàn)豐富的大神路過時,如發(fā)現(xiàn)我文檔中的不足,提出中肯的批評及更好的解決思路。以期共同進(jìn)步。
一、環(huán)境準(zhǔn)備
1)默認(rèn)已經(jīng)安裝robotframework
2)默認(rèn)已經(jīng)安裝requests庫
3)默認(rèn)已經(jīng)安裝并成功導(dǎo)入RequestsLibrary
4)會用抓包工具,fiddler或Charles都可
用這個庫做接口測試,希望用戶本身對這個庫有一定的了解,如果不了解,那么我們來叨一叨選擇的理由。
1)Python的requests庫號稱是“HTTP for Humans”,它提供了非常方便且人性化的接口調(diào)用方法,上手快,功能強(qiáng)大且完美,甩同類庫urllib2, httplib好幾條街。國外網(wǎng)友的使用心得大多是,呵呵呵呵,用requests庫十幾行代碼,把以前的幾百行代碼重構(gòu)了。缺點(diǎn)是封裝了太多層,不利于http底層原理的理解。中文版用戶指南:http://docs.python-requests.org/zh_CN/latest/user/quickstart.html
2)RequestsLibrary是基于requests模塊做的RF庫,其根基本身就強(qiáng)大,再加上git上有一些大神一直在對其進(jìn)行持續(xù)地更新及維護(hù),提供了很不錯的官方Demo,從使用人數(shù)來說,也是完爆那些HTTPLibrary之流,意味著遇到問題得到解答的機(jī)會更大。Git地址:https://github.com/bulkan/robotframework-requests/
二、Http接口測試初窺
這一節(jié)要寫一個get請求的例子,強(qiáng)烈推薦使用官方Demo入門,并且建議新老用戶都熟悉Demo的每一個細(xì)節(jié),對,是每一個細(xì)節(jié)。筆者當(dāng)初多走了許多彎路,對這個細(xì)致的Demo相見恨晚,每次都溫習(xí)demo而后知恥。。
第一個栗子:假如有個這樣的get請求:https://api.github.com/users/bulkan,抓包
可以看出,這個接口請求中:
協(xié)議: https
訪問的host: api.github.com
root url(基礎(chǔ)url): https://api.github.com
相對uri: /users/bulkan
method: get
傳輸參數(shù): 無
該抓包其對應(yīng)的測試用例如下:
對應(yīng)到用例,第一步創(chuàng)建一個到https://api.github.com的session,取個很容易認(rèn)的別名github,第二步,使用get方法,訪問別名為github的相對路徑/users/bulkan。第3,4步斷言返回?cái)?shù)據(jù)。
對于前面兩步,直接使用requests.get方法可以一步完成,為什么要強(qiáng)制拆成兩步呢。可以大概揣測一下作者的意圖:
1、使用別名,會使后面的請求寫起來更順手,用例也比較好看,大部分時候訪問同一地址的請求,不需要重復(fù)創(chuàng)建session
2、session的使用,可以實(shí)現(xiàn)跨請求保持一些cookie,這個功能才是session的重頭戲。
Get request的好基友是post request,也是非常基礎(chǔ)的必須掌握的一種請求方式,這個我就不寫了。官方Demo幾乎列出了所有可能出現(xiàn)的get 及post請求的例子,非常經(jīng)典,實(shí)際項(xiàng)目中都能從里面找到原型。另外還有一些不常見的請求方式如head, put, delete等,也有例子。
三、如何開始你的接口測試第一步
首先,你得有項(xiàng)目組完善且規(guī)范的接口文檔。好吧,大部分的中小公司的寶寶會說啥文檔也沒有。也可以通過抓包來開始做項(xiàng)目的接口demo,在無須外力的因素下邁出第一步,但是單憑抓包是抓不全的,所以最終實(shí)施前還是得搞來一份完整的接口文檔,才能保證用例的覆蓋。
單有接口文檔也是不夠的,還要學(xué)會如何抓包,抓包后知道如何解剖一個請求,重點(diǎn)關(guān)注請求的method, url, request header, request body, cookie, response header, response body等,還是那句話,辦法永遠(yuǎn)比問題多,培養(yǎng)好的觀察能力和解決問題能力無比重要。
總結(jié)
以上是生活随笔為你收集整理的使用robotframework做接口测试之一——准备工作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 液体密度测试仪的测试方法@恒美【2023
- 下一篇: odoo 的字段。orm对象