在界面上操作 抓住相关的接口,有点类似于loadrunner的录制
安装:
pip install mitmproxy
mitmproxy分为三个组件:
mitmproxy
mitmweb 可视化的web界面
mitmdump 命令行格式,可用于对接python脚本
前置步骤:
1.如果是https,需要安装证书
2.开启代理:127.0.0.1:8080
脚本:
#!/usr/bin/env/ python3
# -*- coding:utf-8 -*-
from mitmproxy import http
import mitmproxy
import json
import xlwt
class Proxy:
def __init__(self, filter_url: str='http://192.168.**.***/',filename: str = "./data/case_data1.xls"):
"""
基于mitmproxy抓包生成用例数据
:param filter_url: 需要过滤的url
"""
self.url = filter_url
self.excel_row = [
#'编号',
'请求方法',
#'请求类型',
'请求url',
'域名',
'请求路径',
#'url的键值参数',
'在url外的请求参数get_text',
'请求头',
'cookies',
]
self.cases = [self.excel_row]
self.counter = 1
self.file = filename
def request(self,flow:mitmproxy.http.HTTPFlow):
# 对url 过滤,仅抓取我的地址
if "http://192.168.**.***/" in flow.request.url:
print('=' * 40)
print('=================要开始记录了==================')
print('=' * 40)
print('请求方法:%s' % (flow.request.method))
#print('请求类型:%s' % (flow.request.scheme))
print('请求url:%s' % (flow.request.url))
print('域名:%s' % (flow.request.host))
print('请求路径:%s' % (flow.request.path))
# 返回MultiDictView类型的数据,URL的键值参数
#print('url的键值参数:%s' % (flow.request.query))
#query=str(flow.request.query)
print('在url外的请求参数get_text:%s'%(flow.request.get_text()))
get_text=str(flow.request.get_text())
print('请求头:%s' % (flow.request.headers))
heasers=str(flow.request.headers)
print('cookies:%s' % (flow.request.cookies))
cookies=str(flow.request.cookies)
case1 = [flow.request.method, flow.request.url, flow.request.host, flow.request.path,get_text,heasers,cookies]
print('即将写入:')
print(case1)
self.cases.append(case1)
try:
self.counter += 1
# 文件末尾追加
self.excel_cases()
print('=' * 40)
print('=================已记录EXCEl==================')
print('=' * 40)
except:
print('=' * 40)
print('=================记录失败==================')
print('=' * 40)
else:
pass
def excel_cases(self):
"""
对二维列表cases进行循环并将内容写入单元格中
:return:
"""
workbook = xlwt.Workbook('encoding=uft-8')
worksheet = workbook.add_sheet('用例数据')
for x in range(len(self.cases)):
for y in range(len(self.cases[x])):
worksheet.write(x, y, self.cases[x][y])
try:
workbook.save(self.file)
except Exception as e:
print(e)
addons = [
Proxy("http://192.168.**.***")
]
'''cmd控制台 运行语句:mitmdump -s proxytest.py'''
控制台输出示例:
在界面操作。录制完后,excel数据写入示例:
标签:示例,url,request,self,flow,mitmdump,print,cases,写法 From: https://www.cnblogs.com/wx921308494/p/18047297