如果你在用python
的requests
库构建接口测试的GET
、POST
等请求,那么构造参数的headers和cookies的字典就要预备对应的数据文件;如果你通过Fiddler
去实现抓包,那么还要手动保存Inspectors
->Raw
中的信息,再读取它们构建字典。
这真是一个令人疲乏的操作。
使用mitmproxy
模块编写脚本就可以使得上述流程完全自动化,节省您的宝贵时间。
查看脚本文件 (修改脚本不需要暂停mitmdump,程序会自动重新加载)。
当然,mitmproxy
的 flow.request.query
(将url问号之后的query string整理为字典)和flow.request.path_components
(分解url中host之后到问号之前的路径到元组)也能完成。
-
设计目的
- 将请求和相应数据转化为json,便于导入
python requests
。 - TODO:由于
badboy
不再更新,尝试录制并输出jmx
。
- 将请求和相应数据转化为json,便于导入
-
当前实现功能
- 从ini文件中读取要监视的url和请求方法,分别保存请求和响应到json文件之中。
- 生成用于
JMeter
配置元件HTTP Header Manager
的导入文件。
待补充完全的excel表格,用于说明 flow.request
和 flow.response
的方法和属性
随着我进一步的扩充知识面,har
文件可能会更适合的拿来做数据源文件,原因如下:
- w3c标准。
- 本质是
json
,易于解析。 - 包含了全部HTTP会话。
- 相当多的浏览器、抓包工具(
Fiddler
,Charles
)、mitmproxy
支持 导出为 har 文件。 har
文件也可以通过 Blazemeter 提供的在线转换器 转为JMeter
支持的jmx
格式。
那么我只需要封装用于解析har
文件的脚本就可以方便的在接口自动化脚本中调用了。