天天看點

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

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

背景

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

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

這時候新來的同僚小青提出建議----能不能把Mapi請求導緻為HAR檔案,然後通過HTTPRunner的 har2case指令轉成Case;這樣不是快多了嗎?

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

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

打開塵封已久的C#工程;看了下git記錄,上一次的送出還是一年多以前;稍微理了理思路,然後打開浏覽器并飛速敲下了 google.com.hk;什麼,為啥不是baidu ? 明叔給你一個白眼并向你扔了一個二踢腳。

上集回顧:

【FiddlerScript進階技巧---自定義Fiddler菜單】

上上集 。。。

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

一、先看效果

二、實作原理

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

2、用Python + Flask 實作接口 

http://ip:port/ConvertToYAML  ; 用于實作JSON到YAML TestCase 的轉換

智能替換;
  通過轉換後的結果圖也可以看出;Flask接口在接收到請求後作默默地做了很多工作
  1)實作了自動配置Config;自動綁定變量;自動登入并擷取Token;
  2) 在TestCase的Header裡自動完成變量替換;如 deviceid version sessionToken等,
  3)入參中若有日期相關的參數;也會自動替換為動态方法,動态擷取日期值。
  4)自動添加Hook函數;用于識别和處理Mapi請求           

3、在Fiddler中将JSON入參和Header直接Post到上述接口中;并擷取轉換後的結果;

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

三、使用方法

更新插件後,直接在檢視入參的文本框中右鍵 ---【轉換為YAML】即可;然後可以一鍵儲存到自動化工程目錄下稍作修改就可以送出git了

需要進一步處理的地方如下(把大象裝進冰箱分幾步?):

1、修改用例作者 (author 字段值)
2、修改CaseName ; 
3、添加需要的斷言           

PS: 相比之前手撸Case代碼,是不是快了不少呢

原文位址

https://www.cnblogs.com/zhm450/p/12676518.html

繼續閱讀