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代码,是不是快了不少呢
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
.net core 集成 sentry 进行异常报警
.net core 集成 sentry 进行异常报警 Intro#Sentry 是一个实时事件日志记录和汇集的平台。其专注于错误监控以及提取一切事后处理所需信息而不依赖于麻烦的用户反馈。它分为客户端和服务端,客户端(目前客户端有 C#, Python, PHP, JavaScript, Ruby等多种语言)就嵌入在你的应用程序中间,程序出现异常就向服务端发送消息,服务端将消息记录到数据库中并提供一个web页方便查看。 Sentry 是 Python 写的一个开源的项目https://github.com/getsentry/sentry而且可以满足私有部署的需求 官方介绍: Sentry is cross-platform application monitoring, with a focus on error reporting. Sentry fundamentally is a service that helps you monitor and fix crashes in realtime. The server is in Python, but it contains ...
- 下一篇
普通企业的规划类项目中,OptaPlanner更适合作为APS的规划优化引擎
在企业的规划、优化场景中,均需要开发规划类的项目,实现从各种可能方案中找出相对最优方案。如排班、生产计划(包括高层次的供应链优化,到细粒度的车间甚至机台作业指令)、车辆调度等。因为这类场景需要解决的问题,均可以归约为数学中的NP-C或NP-Hard问题。而解决此类问题,均需要通用的求解器才能实现。这类求解器也称规划引擎,通过它才能从天文数字的可能方案中,找出一个可行且相对优化的方案。 规划引擎的本质,是运用规划中的各种优化算法(目前用得比较多的是启发式算法),对一个NPC或NP-Hard 问题寻找最优解的过程。面对不同的问题、场景,会衍生出各种各样的运筹优化变种。但事实上这些问题都可以视作数学规划问题,可使用运筹学中的对应方法来处理。例如生产计划的排程,车辆路线规划与实时调度,工单的划分和开料问题等,都可以通过数学规划并优化。而求解器则提供了各种优化算法的软件,用于求解这类问题,也被称为规划引擎。 使用约束求解器实现求解,其中关键的步骤是问题进行建模。建模过程其实是把业务场景中的参数、变量、规则和优化目标等要素,转化成可被规划引擎识别,并运算的优化模型。在常见的商用求解器中,这些问题均...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2全家桶,快速入门学习开发网站教程
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装