接口测试 【请教】pytest+mitmproxy 怎么联合使用?

cooling · 2021年06月18日 · 最后由 黑水 回复于 2021年06月23日 · 2662 次阅读

1.pytest 的运行 (command)--> # pytest
2.mitmweb 的运行 (command)--># mitmweb -s xxx.py
【请问】上述两点怎么联合使用(即基于 pytest 做 mitmweb 的 mock)

共收到 10 条回复 时间 点赞

mitmproxy 本质就是做代理的,如果想使用,就是连接到代理的端口就行了,说下你想要实现的场景吧。

aabbcc 回复

你好,请教一个问题--->我现在【终端 1】运行 mitmweb(mitm2.py);【终端 2】运行 pytest(requests.get--->test_m1.py)
【问题】打印:pytest(test_m1.py) 的请求 headers 中没有找到 mitm2.py 中新增(headers)设置的【myHeaders 参数】

【源码】如下所示:

10楼 已删除

你这个肯定不会显示啊,测试代码中,打印的是原始 request 对象的 header,后面经过代理才加上 myHeaders 参数的。

cooling 回复

打印被篡改的 headers,可以通过 response 来打印

import requests
r = resquests.get('132132131')
print(r.request.hreaders)
幺叁叁 回复

大哥,我试了你的方法,不得行

aabbcc 回复

请问,怎么才能让他显示出来

cooling 回复

不好意思,前面误导了,回想了下代理原理,客户端这边是拿不到代理篡改的 request;硬要拿的话可以在 mitmproxy 这边把修改后的 request 写到本地文件里,然后 requests 这边发送完请求之后,读本地文件

幺叁叁 回复

没关系,谢谢您

有点没看懂你的问题。这两个工具一个是测试工具,一个是网络代理工具,本身就可以相互独立使用。

你说要联合,是要做到什么效果?自动化测试的时候,自动配置代理,并且自动改代理里的 mock 配置,返回你想返回的 response ?

cooling 关闭了讨论 06月23日 19:38
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册