推荐一款代理工具 mitmproxy ,功能比较强大,不但可以像fiddler一样抓包,而且可以通过编写python脚本过滤监听的数据,修改请求和响应。
1.Mitmproxy是基于python开发的,所以可以直接用pip命令直接安装
pip install mitmproxy
2.mitmproxy 提供了三个命令,启动模式不同:
3.设置代理,和fiddler一致,我以手机为例,电脑和手机同一局域网,先通过cmd命令,我以android手机为例子,代理步骤
2. 手机设置代理
3.安装证书,浏览器访问mitm.it,根据对应的平台进行下载证书安装
选择对应平台,目前用的是android,点击android图标下载,安装证书(和fiddler一样),(有些浏览器会下载失败,可以切换浏览器)安装完成就可以正常抓包了。可以在对应的web端看到抓包的情况,如下:
最想介绍的功能是编写python脚本监控接口,并修改数据返回
比如我监控以下接口:/cloud/v2/deviceManaged/bypassV2,修改某些响应返回数据(需要根据请求和参数进行脚本的调整),例子脚本如下:
# coding =utf-8
import os
from mitmproxy import http
import json
def request(flow: http.HTTPFlow):
pass
def response(flow: http.HTTPFlow):
print(flow.request.pretty_url)
if flow.request.path == "/cloud/v2/deviceManaged/bypassV2":
res_data = json.loads(flow.response.get_text())
res_data["result"]["result"]["air_quality_value"] = 60
flow.response.set_text(json.dumps(res_data))
if __name__ == "__main__":
file_path = __file__ #取当前文件路径
cmd = "mitmweb -s" + file_path #cmd窗口命令:mitmweb -s 脚本路径
os.system(cmd) #运行cmd命令
通过运行脚本后,以后app每次访问该接口时,都会返回被修改接口的数据。
通过脚本运行,我们可以拦截任何的http请求,然后监控对应接口,并且修改返回的数据,这样子可以完成某些边界值的测试等,同时也可以模拟一些第三方的接口数据返回。
本文分享自 暴走的软件测试Tester 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!