零代碼實現(xiàn)接口自動化測試-RF框架實踐(接口自動化測試框架步驟)
每天進步一點點,關注我們哦,每天分享測試技術文章
本文章出自【碼同學軟件測試】
碼同學公眾號:自動化軟件測試
碼同學抖音號:小碼哥聊軟件測試
robotframework是一款關鍵字自動化測試框架,可能做各種類型的自動化測試。本文介紹通過 robotframework 來實現(xiàn)接口測試。
01
安裝接口請求的第三方庫
pip install robotframework-requests |
在python安裝目錄的Libsite-packages可以看到
02
接口關鍵字基礎
robotframework-requests關鍵字文檔地址:http://marketsquare.github.io/robotframework-requests/doc/RequestsLibrary.html
以碼同學全棧接口項目中的以下接口為例:
1. 創(chuàng)建測試集合并導入接口庫
創(chuàng)建一個測試集合apibasic,選中后在設置區(qū)導入RequestsLibrary庫
測試集合下添加集合全局變量host,作為接口測試的域名
在該集合下將會針對碼同學全棧接口項目中的接口進行測試,每個接口的域名都是一致的,因此我們給測試集合增加一個前置動作,前置動作里完成該域名下session的創(chuàng)建,那么在用例之中發(fā)起請求時都使用該session,可以幫我們有效關聯(lián)相關數(shù)據(jù)
關鍵信息解釋,創(chuàng)建一個session對象,命名為pinter:
- Create Sesion:這是接口庫提供的一個關鍵字,用來創(chuàng)建一個session對象
- pinter:這是自定義起的一個session對象的名字,用于后續(xù)其他地方要使用時進行引用
- ${host}:這是引用集合變量定義的host
2. get接口
創(chuàng)建一個用例,起名叫get接口
- Get On Session:發(fā)起get請求的關鍵字
- ${resp.json()}[message]:表示提取接口響應body體重的message字段
3. post 表單接口
創(chuàng)建一個用例,起名叫post表單接口
- Post On Session:發(fā)起post請求的關鍵字
4. post json接口
由于json格式參數(shù)通常比較多,所以我們將他定義成了普通變量,但是接口關鍵字請求時json參數(shù) 必須是字典格式,所以使用Evaluate關鍵字將字符串形式的json參數(shù)轉換成字典
5. put 接口
6. delete 接口
7. 文件上傳
表單形式上傳
- Get File For Streaming Upload:獲取本地文件轉換成流對象
- ${resp.text}:因為該接口返回信息并不是json串,是個純文本,所以使用這種方式獲取
Ajax上傳接口
8. 文件下載接口
9. 需要簽名驗證的接口
接口參數(shù)格式如下,其中timestamp參數(shù)時實時的毫秒時間戳
{"phoneNum":"123434","optCode":"testfan","timestamp":"12112121212","sign":"your sign data"}
簽名規(guī)則如下:
- sign字段的值 = phoneNum optCode timestamp
- 組合在一起然后進行md5加密
因此在腳本中需要先進行加密處理,同時因為用到了實時時間戳,所以我們要導入一個時間處理庫 DateTime庫,在測試集合中導入DateTime庫
加密時的核心:
hashlib.md5('${phoneNum}${optCode}${timestamp}'.encode(encoding='utf8')).hexdigest()
計算得到毫秒時間戳:
int(round(${timestamp} *1000))
腳本如下:
免費領取 碼同學軟件測試 課程筆記 超多學習資料 完整視頻 最新面試題,可以轉發(fā)文章 私信「碼同學666」獲取資料哦
10. cookie關聯(lián)
在使用相同的session對象時,會自動做到cookie關聯(lián)
先實現(xiàn)登錄接口的用例,再實現(xiàn)查詢余額接口的測試,然后兩個一起執(zhí)行即可
一起執(zhí)行,勾選兩條用例
11. token關聯(lián)
對于接口鑒權采用token時,即便采用相同的session對象也是關聯(lián)不了的,需要我們自行處理
業(yè)務規(guī)則:
- 登錄接口成功后響應信息中的data字段就是產(chǎn)生的token值
- 查詢余額接口請求時headers中的testfan-token字段就是token參數(shù)名稱
因此我們需要從登錄接口響應中提取data,并將其傳給查詢余額的接口headers
腳本如下:
03
rf數(shù)據(jù)驅動實現(xiàn)接口測試
1. 安裝數(shù)據(jù)驅動依賴庫
pip install robotframework-datadriver |
在python安裝目錄的Libsite-packages可以看到
2. 準備測試數(shù)據(jù)文件
以碼同學全棧接口項目的一個登錄接口為例,準備測試數(shù)據(jù)
創(chuàng)建一個excel文件寫入如下數(shù)據(jù):
- 第一行第一列是固定格式,表示測試用例名稱
- 第二列開始是測試數(shù)據(jù)對應的變量名稱
- 第二行開始是測試數(shù)據(jù)
3. 創(chuàng)建測試集合并導入第三方庫
創(chuàng)建測試集合apidatadriver,導入庫RequestsLibrary和DataDriver,注意導入DataDriver時要寫參數(shù),導入后標紅的話先不用管,繼續(xù)做
4. 創(chuàng)建集合變量并初始化session
5. 創(chuàng)建登錄接口關鍵字
6. 創(chuàng)建測試用例引用數(shù)據(jù)驅動
測試用例中只需要在設置的模板中填寫第5步創(chuàng)建的登錄接口關鍵字即可
執(zhí)行測試,測試數(shù)據(jù)有三組,登錄接口也執(zhí)行了三次
免費領取碼同學軟件測試課程筆記 超多學習資料 學習完整視頻,可以關注我們公眾號哦:自動化軟件測試
本文著作權歸作者所有,任何形式的轉載都請聯(lián)系作者獲得授權并注明出處。