Fiddler插件---將Mapi請求自動轉爲HTTPRunner測試用例(YAML格式)

背景

  繼以前鼓搗出了Mapi解密插件以後,在團隊內已經使用了三年之久,一躍成爲團隊最愛歡迎的測試工具之一(加個之一,低調謙虛一點)。html

  隨着團隊推行HttpRunner搞接口自動化;編寫和維護Case帶來的工做量成爲同窗們最頭疼的事情;木有之一。HTTPRunner要求Case格式是YAML的;而咱們的參數都是JSON的;每次編寫新Case都要在兩者中不斷的轉換,折騰的欲仙欲死。看着兄弟們日益低落的狀態;我慢慢意識到,是時候再作點什麼改進了。python

  這時候新來的同事小青提出建議----能不能把Mapi請求致使爲HAR文件,而後經過HTTPRunner的 har2case命令轉成Case;這樣不是快多了嗎?git

  小夥子有想法啊,不愧是我招進來的人!json

  可既然最終目的是要轉成YAML格式的Case;我爲何不直接轉成Case?脫褲子放X先轉成Har的事,咱可不幹!flask

  打開塵封已久的C#工程;看了下git記錄,上一次的提交仍是一年多之前;稍微理了理思路,而後打開瀏覽器並飛速敲下了 google.com.hk;什麼,爲啥不是baidu ? 明叔給你一個白眼並向你扔了一個二踢腳。api

上集回顧:

 【FiddlerScript高級技巧---自定義Fiddler菜單】瀏覽器

上上集 。。。

 【Fiddler插件 --- 解密Elong Mapi請求參數及響應內容】session

1、先看效果

2、實現原理

一、原始的Mapi請求;須要通過一次unzip處理,再進行一次AES解密,才能轉換爲明文的JSON;以下圖 (其中 "api" 這個字段,是在Fiddler中處理後加上去的;爲了方便在轉化爲YAML Case時,自動添加URL; )

二、用Python + Flask 實現接口 http://ip:port/ConvertToYAML ; 用於實現JSON到YAML TestCase 的轉換

智能替換;
      經過轉換後的結果圖也能夠看出;Flask接口在接收到請求後做默默地作了不少工做
      1)實現了自動配置Config;自動綁定變量;自動登陸並獲取Token;
      2) 在TestCase的Header裏自動完成變量替換;如 deviceid version sessionToken等,
      3)入參中如有日期相關的參數;也會自動替換爲動態方法,動態獲取日期值。
      4)自動添加Hook函數;用於識別和處理Mapi請求

三、在Fiddler中將JSON入參和Header直接Post到上述接口中;並獲取轉換後的結果;

用接口處理轉換,而不是在Fiddler插件中實現,是由於考慮到維護的靈活性;如何對用例的編寫規範、模板等有變動 ,直接修改接口就好;不用每次發新的插件包來更新Fiddler客戶端。

3、使用方法

 更新插件後,直接在查看入參的文本框中右鍵 ---【轉換爲YAML】便可;而後能夠一鍵保存到自動化工程目錄下稍做修改就能夠提交git了
 須要進一步處理的地方以下(把大象裝進冰箱分幾步?):函數

一、修改用例做者 (author 字段值)
    二、修改CaseName ; 
    三、添加須要的斷言

PS: 相比以前手擼Case代碼,是否是快了很多呢工具

相關文章
相關標籤/搜索