今天继续给大家带来Fiddler工具的教程3:使用Fiddler录制Jmter性能测试脚本。
我们知道Jmeter本身可以录制脚本,也可以通过BadBoy,BlazeMeter等工具进行录制,其实Fiddler也可以录制Jmter脚本(而且有些页面,由于安全设置等原因,使用Jmeter直接无法打开录制时,这时就需要用到Fiddler这个专业的抓包工具了)。
运行环境为Windows10系统,JMeter版本号3.3,Fiddler版本号4.6,均为当前最新版本。

1. Fiddler扩展

首先需要下载2个dll扩展文件:FiddlerExtensions.dll及FiddlerExtensions.pdb,拷贝至Fiddler\ImportExport目录下:
其中,这2个文件是为了扩展Fiddler的导出功能,支持导出JMeter使用的.jmx格式文件。
下载链接: https://pan.baidu.com/s/1jIL3WPo 密码: fmcc

2. Fidder录制脚本

我们以打开百度首页,并进行一次搜索为例,介绍如果使用Fiddler录制脚本。

2.1 Filters配置

运行Fiddler,点击右侧Filters进行过滤器的配置:
1) 选择“UseFilters”
2) 在下面的下拉框中选择“Show only the following Hosts”,并在输入框中填入Hosts名称,如*.baidu.com;
3) 在Requests Headers中勾选“Hide if URL contains”,填入.css .js .gif .png .jpg .swf 用以过滤css/js/图片等类型请求
4) 根据需要,可在下面“Respons Status Code”中勾选“Hide non-2xx”用以过滤非2xx返回码(即失败)的请求
5) 最后点击右上角Actions -> Run Filterset Now,开始运行Filer过滤
 

2.2 脚本录制

1) 打开Chrome浏览器,录制我们的操作:先打开百度首页www.baidu.com,后进行一次搜索,如搜索lovesoo,可以看到Fiddler经过过滤之后,只抓取了我们对Hosts: baidu.com的操作

2) 对于请求,我们可以添加相关注释:选中Http请求 ->右键选中并点击Comment...

我们找到访问首页及搜索的Http请求,分别添加注释如下:

3) 在Fiddler中删除非必须的Http请求,只保留访问百度首页及搜索的请求:
 
最终结果如下:

2.3 导出脚本

1) 在Fiddler中选择File -> Export Sessions -> All Sessions

2) 选择导出类型为JMeter,点击Next按钮保存即可

3. JMeter使用Fiddler录制脚本

1) 运行Jmeter,打开我们刚才保存的jmx文件,可以看到这里只有2个Http请求,分别是打开百度首页及搜索

2) 新建线程组(点击测试计划,右键选择Threads(users) -> 线程组),并将这2个Http请求拖到线程组下

结果如下:

 
3) 添加查看结果树及概要报告Summary Report:点击线程组,右键选择添加 -> 监听器 -> 查看结果树/Summary Report

4) 在JMeter中启动测试即可,结果如下:

4. 常见问题

下面介绍实际使用过程中可能遇到的问题及解决方法。

4.1 JMeter Http响应中文乱码

在上面的2个接口中,打开百度首页的Http请求在查看响应的时候出现中文乱码的情况,这时由于JMeter默认使用的编码格式为ISO-8859-1,非UTF-8。

有如下两种方法可以,解决Http响应中文乱码问题:

4.1.1 修改jmeter.properties

打开Jmeter安装目录/bin/jmeter.properties文件,修改#sampleresult.default.encoding=ISO-8859-1为 sampleresult.default.encoding=utf-8 (注意去掉开头的#注释),重启JMeter即可

4.1.2 添加BeanShell PostProcessor

选择Http请求,右键选择:添加 -> 后置处理器 -> BeanShell PostProcessor,在下方的Script中填入:prev.setDataEncoding("UTF-8");

再运行一次JMeter,可以看到中文已经可以正常显示了:

4.2 Http接口报错

在点击查看结构树,查看上述搜索请求结果时,发现返回结果不是我们期望的搜索结果:
可以看到响应中有“location.replace(location.href.replace("https://","http://"));”,这个js语句意思是替换链接中的https://为http://,我们按此操作,修改搜索请求中的请求协议:从https改为http

再运行一次JMeter,可以看到此时接口响应已经是正确的搜索结果了:

5. 脚本下载

最后,我把本次录制及处理后的Jmeter脚本上传到了百度网盘,供大家参考。
下载链接: https://pan.baidu.com/s/1skHBDTj 密码: 3sqt

Fiddler系列教程3:使用Fiddler录制Jmeter性能测试脚本的更多相关文章

  1. Fiddler系列教程1:初识Http协议抓包工具

    1. Fiddler简介 Fiddler是用一款使用C#编写的http协议调试代理工具.它支持众多的http调试任务,能够记录并检查所有你的电脑和互联网之间的http通讯,可以设置断点,查看所有的“进 ...

  2. 《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(2)-初识Fiddler让你理性认识一下

    1.前言 今天的理性认识主要就是讲解和分享Fiddler的一些理论基础知识.其实这部分也没有什么,主要是给小伙伴或者童鞋们讲一些实际工作中的场景,然后隆重推出我们的猪脚(主角)-Fiddler. 1. ...

  3. 《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(7)-Fiddler状态面板-QuickExec命令行

    1.简介 Fiddler成了网页调试必备的工具,抓包看数据.Fiddler自带命令行控制,并提供以下用法.Fiddler的快捷命令框让你快速的输入脚本命令. 除了输入默认命令,也可以自定义命令,你可以 ...

  4. 《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(5)-Fiddler监控面板详解

    1.简介 按照从上往下,从左往右的计划,今天就轮到介绍和分享Fiddler的监控面板了.监控面板主要是一些辅助标签工具栏.有了这些就会让你的会话请求和响应时刻处监控中毫无隐私可言.监控面板是fiddl ...

  5. 《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(9)-Fiddler如何设置捕获Https会话

    1.简介 由于近几年来各大网站越来越注重安全性都改成了https协议,不像前十几年前直接是http协议直接裸奔在互联网.还有的小伙伴或者童鞋们按照上一篇宏哥的配置都配置好了,想大展身手抓一下百度的包, ...

  6. 菜鸟教程之工具使用(十)——用BlazeMeter录制JMeter测试脚本

    工具: 1,JMeter 2,Chrome 3,BlazeMeter 4,SwitchyOmega(如果需要代理) 步骤: 以上工具准备好以后就可以录制JMeter的测试脚本了, 在Chrome中点击 ...

  7. 用BlazeMeter录制JMeter测试脚本

    工具: 1,JMeter 2,Chrome 3,BlazeMeter 4,SwitchyOmega(如果需要代理) 步骤: 以上工具准备好以后就可以录制JMeter的测试脚本了, 在Chrome中点击 ...

  8. Fiddler系列教程2:手机抓包图文教程

    上篇Fiddler教程,我们教了大家Fiddler安装配置及如何使用Fiddler进行基本的Http抓包及模拟请求,今天给大家介绍下如何使用Fiddler进行手机抓包. 运行环境为Windows 10 ...

  9. 《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(15)-Fiddler弱网测试,知否知否,应是必知必会

    1.简介 现在这个时代已经属于流量时代,用户对于App或者小程序之类的操作界面的数据和交互的要求也越来越高.对于测试人员弱网测试也是需要考验自己专业技术能力的一种技能.一个合格的测试人员,需要额外关注 ...

随机推荐

  1. Java伪代码描述《大道至简》第一章

    第一节 Begin //原始需求 惩山北之塞,出入之迂 //项目沟通的基本方式 聚室而谋曰 //项目目标 毕力平险,指通豫南,达于汉阴 //技术方案 扣石垦壤,箕畚运于渤海之尾 //技术人员和工程管理 ...

  2. java人员正确使用IDEA 的方式

    博主是Java开发人员,以前一直都用myeclipse来开发的,说实话感觉myeclipse毫无美感可言,后来经过同事介绍,认识了IDEA,一眼就相中了IDEA黑色的主题风格,自此就抛弃了旧爱myec ...

  3. eNSP关闭保存文件的提示信息

    总是提示如下信息: Oct 12 2017 23:49:24-08:00 Huawei DS/4/DATASYNC_CFGCHANGE:OID 1.3.6.1.4.1.2011.5.25.191.3. ...

  4. 【学习】js学习笔记:对象的遍历和封装特性

    1.对象的属性访问: 对象.属性 对象[属性],但中括号中必须是字符串 2.属性的遍历: for in方法举例: var ren={}; ren.name="名字"; ren.ea ...

  5. vim中SnipMate 和 YouCompleteMe 插件触发键 tab 冲突

    花了好几天废了九牛二虎之力终于在win下把ycm插件装上了 然而在配置插件的时候发现snipmate插件与youcompleteme插件会发生tab键冲突 而ycm比较调,直接使snipmate插件完 ...

  6. (10.23)Java小知识!

    ---恢复内容开始--- 方法的定义: 一般情况下,定义一个方法包含以下语法: 修饰符 返回值类型 方法名 (参数类型 参数名 , ...){ ... 方法体 ... return 返回值; } 修饰 ...

  7. Cosmos OpenSSD--greedy_ftl1.2.0(三)

    我们来假设模拟一个小型的模型来分析写和垃圾回收的过程 假设只有一个die,4个block,每个block4个page,每个page8KB 那么PageMap就是Page[0][0]到Page[0][1 ...

  8. linux 投影仪

    注:文章转自http://goo.gl/aI9Ycd如果侵权,请原作者留言,立即删除 之前在 R219 做 C++ 演講的時候,發現 Ubuntu 沒有辦法使用 VGA 輸出,臨時改用 Windows ...

  9. MySQL技术内幕汇总

    MySql技术内幕之MySQL入门(1) MySql技术内幕之MySQL入门(1) 检查系统中是否已经安装了MySQL sudo netstat -tap | grep mysql 若没有显示已安装结 ...

  10. vue数据请求

    我是vue菜鸟,第一次用vue做项目,写一些自己的理解,可能有些不正确,欢迎纠正. vue开发环境要配置本地代理服务.把config文件加下的index.js里的dev添加一些内容, dev: { e ...