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