【测开实战】从修改今日头条app下发到端上的线上数据说起(Charles+Flask实现的本地小型代理服务器)

1.整体技术架构

使用python框架flask处理charles map remote的接口。

具体流程如下:

【测开实战】从修改今日头条app下发到端上的线上数据说起(Charles+Flask实现的本地小型代理服务器)_第1张图片

2.部分功能实现代码

(1)实现转发get请求

【测开实战】从修改今日头条app下发到端上的线上数据说起(Charles+Flask实现的本地小型代理服务器)_第2张图片

(2)实现转发post请求

今日头条app的post请求都是把参数写在了url上,因此需要用flask的拦截器处理一下才能正确在flask接收。直接使用@app.route可能出现问题。

【测开实战】从修改今日头条app下发到端上的线上数据说起(Charles+Flask实现的本地小型代理服务器)_第3张图片

(3)将本地对json数据作为返回

【测开实战】从修改今日头条app下发到端上的线上数据说起(Charles+Flask实现的本地小型代理服务器)_第4张图片

(4)将返回的json数据进行add操作

【测开实战】从修改今日头条app下发到端上的线上数据说起(Charles+Flask实现的本地小型代理服务器)_第5张图片

(5)将json当作字符串,直接使用正则来替换字段的值

【测开实战】从修改今日头条app下发到端上的线上数据说起(Charles+Flask实现的本地小型代理服务器)_第6张图片

使用:将所有can_duet字段的值修改为true

(6)通过正则修改字段

【测开实战】从修改今日头条app下发到端上的线上数据说起(Charles+Flask实现的本地小型代理服务器)_第7张图片

使用

功能展示 拦截返回,让所有返回的小视频的标题变成“bytedance”展示:

修改小视频展示的title

https://www.bilibili.com/video/BV1zv411y718/

扩展使用

1.检查客户端去重逻辑是否正常。预期结果:对每次数据都添加相同的3个子元素,3个子元素只展示一次。

2.随机修改返回参数,给特殊字符如true,false,null等检查客户端处理逻辑,检查是否有脚本注入的风险。

3.返回冗余数据检查。

4.获取字段的value,去端上验证value是否展示。

5.检查文字内容过长等极端情况等展示。

你可能感兴趣的:(测试工程师)