基於RF框架的接口自動化


本文基於robot framework框架,支持http api,robot framework如何使用請參考光毅的另一篇文章

基於RF框架的接口自動化

(腳本做了一些修改和更新,更新內容請看part2)

本文主要講,如何分離測試用例和參數

目標:縮減用例編寫成本;提高用例可維護性

參數通過csv表格編寫和維護

背景(可不看)

用robot framework編寫用例的構成:用例+keyword+json結構參數

keyword: 處理邏輯

 

 

json文件:存請求數據和預期返回數據

 

 

基於如上背景,我們寫一條用例,需要有一個用例代碼,一個json的請求和預期返回

例如,我們的請求有10個參數,一個參數編寫五種不同的測試值,我們需要編寫50個用例,寫50個json請求和返回

上述過程種,存在大量重復工作,且不方便維護,如果請求增加字段,則需要修改全部json體

所以想到了用例和參數分離的方式:模版用例+參數,生成可執行用例

效果:請求有五種預期返回碼,只需要寫一個json請求模版和5個預期返回模版

 

使用步驟

(流程圖在最后)

(文章末尾更新了使用步驟,可以直接看簡化步驟,細節可以回來看這里)

1.下載代碼到本地(robot framework如何使用請參考文章開頭附的文章)

link: https://git.garena.com/arrow.zhang/httpapiautotest.git

2.編寫一個成功用例(包含用例和一個json請求體和一個預期json返回體)

3.GenerateTest.py是生成,robot用例的腳本,可以copy一個或者在上邊改

4.需要修改內容,是步驟4和步驟5

將TestCaseHeader和TestCaseBody替換成自己用例(寫用例時也按照這個格式寫),紅框處為替換參數名字需要保持不變

5.填寫apilist參數,參數是一個多元數組,一個值表示一個api,一個api包含了api_name,json_file_path,parameter_file_path三個參數

api_name:API的名稱,決定了你生成robot文件的名稱

json_file_path:存儲json請求模版和json預期返回模版的路徑

parameter_file_path:參數文件的路徑

(到這里代碼部分的邏輯已經修改完成,下邊講參數文件的編寫規范)

6.參數文件編寫規范

格式:csv格式,名稱和apilist里的名稱一致,在file文件夾下

參數包含六列:

case_id: 數據的鍵值,不可重復

case_name: 用例名稱

request_template: 請求的模版名稱(與json文件中的模版對應)

request_key:當前需要測試的字段

request_value: 測試字段的值

response_exp: 預期的返回模版

例如:t002號用例,替換請求字段里的signature為“SDFGHJKLTYUIOFGHJK”,預期結果的模版名稱是E103 response

tips:

給request_value做了一些自定義的判斷:

0XRight表示正確請求,不需要替換參數

0XMissing 表示沒有這個字段

int–開頭 表示這個字段要傳int類型

PS:參數文件是要手動編寫,並放入到對應目錄下

整理流程圖:

 

完成了上邊所有步驟后,后續增加和修改用例,只需要維護csv的表格

如果請求體結構有變化,只需要修改模版文件的json結構體就ok

 

功能還沒那么完善,有什么意見或者建議請聯系我~~~如果文檔看不明白也請私戳我~

 

~~~~~~~~~~~~~~~~~~~~~~~~(以下是新修改內容,7月3日)~~~

 

1.生成腳本做了修改,參數文件格式做了修改

https://docs.google.com/spreadsheets/d/1T48OAyGviZpF3exAQlVZ393gP8H_kU7qN8MHYsyXqo8/edit?usp=sharing

新支持內容:

    1.請求可以修改多個字段

    2.支持不同格式

    3.返回校驗,不用寫Json返回體,直接輸入預期校驗的key和value即可

2.簡化了接入步驟:

    a.下載代碼

    https://git.garena.com/arrow.zhang/httpapiautotest.git

    (因為不能直接設置pulich權限,需要權限的同學私戳我就好)

    b.寫一個Json請求體,(參數均正確)

    c.按照上述格式編寫用例

    d.填寫,Json請求體文件路徑,用例csv.文件路徑,run即可

生成用例腳本如下圖路徑

keyword路徑(處理請求參數替換和返回驗證邏輯)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM