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代码,是否是快了很多呢工具

相关文章
相关标签/搜索