1.pytest 的运行 (command)--> # pytest 2.mitmweb 的运行 (command)--># mitmweb -s xxx.py 【请问】上述两点怎么联合使用(即基于 pytest 做 mitmweb 的 mock)
mitmproxy 本质就是做代理的,如果想使用,就是连接到代理的端口就行了,说下你想要实现的场景吧。
你好,请教一个问题--->我现在【终端 1】运行 mitmweb(mitm2.py);【终端 2】运行 pytest(requests.get--->test_m1.py) 【问题】打印:pytest(test_m1.py) 的请求 headers 中没有找到 mitm2.py 中新增(headers)设置的【myHeaders 参数】
【源码】如下所示:
你这个肯定不会显示啊,测试代码中,打印的是原始 request 对象的 header,后面经过代理才加上 myHeaders 参数的。
打印被篡改的 headers,可以通过 response 来打印
import requests r = resquests.get('132132131') print(r.request.hreaders)
大哥,我试了你的方法,不得行
请问,怎么才能让他显示出来
不好意思,前面误导了,回想了下代理原理,客户端这边是拿不到代理篡改的 request;硬要拿的话可以在 mitmproxy 这边把修改后的 request 写到本地文件里,然后 requests 这边发送完请求之后,读本地文件
没关系,谢谢您
有点没看懂你的问题。这两个工具一个是测试工具,一个是网络代理工具,本身就可以相互独立使用。
你说要联合,是要做到什么效果?自动化测试的时候,自动配置代理,并且自动改代理里的 mock 配置,返回你想返回的 response ?
在 Python 程序中启动 mitmproxy 并控制 addon