30行左右代碼實現一個類似httprunner的接口框架

框架的最終歸宿往往是領域語言+模板解析。

首先先約定一種所要執行操作的表述格式。然後通過模板解析將描述語言轉化為代碼進行執行。例如,我們可以使用以下yaml文件描述多個步驟並且需要關聯的接口:

apis.yaml:

- name: 獲取百度token接口 # 接口名稱

request: # 請求報文

url: https://aip.baidubce.com/oauth/2.0/token

method: get

params:

grant_type: client_credentials

client_id: kPoFYw85FXsnojsy5bB9hu6x

client_secret: l7SuGBkDQHkjiTPU3m6NaNddD6SCvDMC

extract: # 提取變量, 字典格式

token: RESPONSE.json()['access_token'] # RESPONSE系統變量,代表響應對象

- name: 百度ORC接口 # 第二個接口

request:

url: https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token=${token} # 使用變量

method: post

data: # 請求體(表單格式)

url: http://upload-images.jianshu.io/upload_images/7575721-40c847532432e852.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240

verify: # 斷言, 列表格式

- RESPONSE.json()['words_result_num'] == 6

其中,name為該接口或步驟的名稱描述,request段是接口的信息,對應requests.request()的每一個參數,url和method是必要參數,params,headers,cookies,data, json,files,timeout等,並使用對應格式。extract用於提取值, token: RESPONSE.

聯繫作者longtestyan


分享到:


相關文章: