解决脚本录制问题,可以将Fiddler或Charles转换成对应的Jmeter脚本,实现部分内容的参数化配置,通过修改部分参数或参数化可以对http协议的接口进行自动化测试或简单的压力测试
一、GitHub地址
https://github.com/dperfly/fiddler2jmeter
二、运行步骤
- GUI 模式
1.1 打开Fiddler/Charles录制请求
1.1.1 Fiddler录制
1.1.2 Charles录制
1.2 将需要的HTTP请求导出
1.2.1 Fiddler导出为saz格式
1.2.2 Charles导出为chlsj格式
1.3 执行脚本
1.3.1 参数说明
1.3.1.1 需要导入的文件:saz文件(Fiddler文件),chlsj(Charles文件)
1.3.1.2 需要到处的文件:jmx文件(生成的jmeter脚本文件)
1.3.1.3 过滤Http请求:不满足host则过滤,为正则匹配方式
1.3.1.4 过滤Http请求,通过/path部分,满足则过滤,为正则匹配方式
1.3.2 页面效果
1.3.3 结果展示
1.4 jmeter运行结果
- NO-GUI 模式运行
F:\>python FiddlerCharles2Jmeter.py -h
或
F:\> FiddlerCharles2Jmeter.exe -h
Usage: Generate JMeter script command example:
FiddlerCharles2Jmeter.py -n -i fiddler/charles_file_path -o jmeter_script_file_path --filter-host-name='' --filter_url='' --distinct
Options:
-h, --help show this help message and exit
-n, --no_gui no gui model
-i INPUT_FILE_PATH, --input_file_path=INPUT_FILE_PATH
fiddler/charles_file_path
-o OUTPUT_JMXSCRIPT, --output_file_path=OUTPUT_JMXSCRIPT
jmeter_script_file_path
-u FILTER_URL, --filter_url=FILTER_URL
filter_url regex default=
/(.*)\.(css|ico|jpg|png|gif|bmp|wav|js|jpe)(\?.*)?$%
-f HOST_NAME, --filter-host-name=HOST_NAME
filter-host-name regex default=^.*$
-d, --distinct distinct: Filter duplicate requests , default=False
-s, --is-fiddler-script-model
fiddler script model :default=False
- FiddlerScript 模式运行
3.1 打开Fiddler,替换FiddlerScript脚本(将FiddlerScript.js内容复制到FiddlerScript中)
3.2 修改脚本中的脚本路径以及jmx文件生成路径及名称
/ FiddlerCharles2Jmeter.py / FiddlerCharles2Jmeter.exe PATH
// 这里也可以使用FiddlerCharles2Jmeter.py,需要具有python环境,且需要适当修改fiddler2jmeter_cmd 参数;<br>var py_script_path = "C:/Users/Administrator/Desktop/FiddlerCharles2Jmeter.exe"<br><br>// output jmx fileName ;每次生成新的jmx时命名<br>var jmx_output_file = "C:/Users/Administrator/Desktop/demo.jmx"
3.3 选择需要转换的请求,右键选择fiddler2jmeter按钮,进行转换
来源:https://www.cnblogs.com/fbyyx/p/12827415.html