背景
由于UI自动化在执行过程中受环境的影响特别大,一是网络问题,二是数据难构造性。第一类问题是外部因素,不太容易控制。我选择了第二类问题进行尝试,尝试将数据层进行mock,搭建一套mock服务。
技术架构图
整套方案思路:Web Service采用html+js+flask+mysql、代理服务采用python-mitmproxy
Web Service能力
支持界面化case的增删改查
激活状态(同一个接口名只能生效一条mock数据)
case复制
打通web服务与代理服务
优化框架,改用flask框架-MVC模式
client端与mock服务通过IP实现一对一绑定
解决response数据过多,插库失败问题
支持apk下载
EXCEL批量处理
创建ID入口,用来调用API构造数据(未完成)
mitmproxy是什么
mitm:man-in-the-middle中间人攻击,顾名思义,mitmproxy就是一个可以用作中间人的基于python环境的工具包,可以用于查看流量,抓包改包,重放,可以实现和burpsuite一样的功能,mitmproxy最大的优势是基于python平台可以灵活地开发插件脚本。
mitmproxy HTTPS代理过程图
![mitmproxy HTTPS代理过程图](https://img-blog.csdnimg.cn/4e16e178dad34c2d8879e9ac8177e7d7.png#pic_center
页面效果:
添加case
删除case
修改case
查询case(支持模糊查询、精准查询)
激活状态开关
同一个接口名只能生效一条mock数据
复制case