jmeter对乱码如何处理_使用Fiddler录制Jmeter性能测试脚本

本文介绍了如何利用Fiddler扩展功能录制JMeter性能测试脚本,并详细讲解了在JMeter中遇到Http响应中文乱码的问题,包括修改jmeter.properties文件和添加BeanShell PostProcessor的解决步骤。
摘要由CSDN通过智能技术生成

ed97a88c9e929d1f03f65d0d216882ee.gif

松勤软件测试

坚持教育初心

既问收获也问耕耘

目录
  • 1. Fiddler扩展
  • 2. Fidder录制脚本
  • 3. JMeter使用Fiddler录制脚本
  • 4. 常见问题
  • 5. 脚本下载
今天给大家带来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(这2个文件是为了扩展Fiddler的导出功能,支持导出JMeter使用的.jmx格式文件),拷贝至Fiddler\ImportExport目录下: da8b87e25540ad9eee8b7f4c3d2443db.png下载链接: 找小编

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过滤  dd88caac754fe7884a6b850b2f3937c0.png 

2.2 脚本录制

1) 打开Chrome浏览器,录制我们的操作:先打开百度首页www.baidu.com,后进行一次搜索,如搜索lovesoo,可以看到Fiddler经过过滤之后,只抓取了我们对Hosts: baidu.com的操作 f0ecc8b1899dc77e6e9925b513a3bdf3.png2) 对于请求,我们可以添加相关注释:选中Http请求 ->右键选中并点击Comment... e4d957c0b30c89ca377e6727d6beddc1.png 我们找到访问首页及搜索的Http请求,分别添加注释如下: b4a74c9debe321a5bd5db5d02ac3f0b3.png 3) 在Fiddler中删除非必须的Http请求,只保留访问百度首页及搜索的请求:右键选择Remove -> Selected Sessions  624a0407bd2b92852433fdb13ddf4856.png最终结果如下: 8def8da225f446f1f6b5f8dac5b35a90.png 

2.3 导出脚本

1) 在Fiddler中选择File -> Export Sessions -> All Sessions 9b1b038b9576f6d03398b8a22cf41ea6.png2) 选择导出类型为JMeter,点击Next按钮保存即可 3ad10af27bcf91111c52c521abb66551.png 

3. JMeter使用Fiddler录制脚本

1) 运行Jmeter,打开我们刚才保存的jmx文件,可以看到这里只有2个Http请求,分别是打开百度首页及搜索 55d540aabd377f7a8a5842c943369701.png 2) 新建线程组(点击测试计划,右键选择Threads(users) -> 线程组),并将这2个Http请求拖到线程组下 f1f8dba2536a1fdf83df78e5aef3149b.png 结果如下: 8c7b9a9aa12d53ded0b68ef7412cf2b4.png  3) 添加查看结果树及概要报告Summary Report:点击线程组,右键选择添加 -> 监听器 -> 查看结果树/Summary Report df78eec55ac1d4cfaacb42a5845f2b22.png 4) 在JMeter中启动测试即可,结果如下: 16dd88b957b7de327b52434b1e2cc409.png

4. 常见问题

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

4.1 JMeter Http响应中文乱码

在上面的2个接口中,打开百度首页的Http请求在查看响应的时候出现中文乱码的情况,这时由于JMeter默认使用的编码格式为ISO-8859-1,非UTF-8。 6ac8bf59f63a766dea892bfa3d9ebf15.png 有如下两种方法可以,解决Http响应中文乱码问题:

4.1.1 修改jmeter.properties

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

4.1.2 添加BeanShell PostProcessor

选择Http请求,右键选择:添加 -> 后置处理器 -> BeanShell PostProcessor,在下方的Script中填入:prev.setDataEncoding("UTF-8"); 35dd9b7d97fe539e0436783a049cfc8f.png 再运行一次JMeter,可以看到中文已经可以正常显示了: 34b0310cbcde9d31822b31bef11ecaaa.png

4.2 Http接口报错

在点击查看结构树,查看上述搜索请求结果时,发现返回结果不是我们期望的搜索结果: 19b46dae76741a0be1eefcbf01ad9955.png可以看到响应中有“location.replace(location.href.replace("https://","http://"));”,这个js语句意思是替换链接中的https://为http://,我们按此操作,修改搜索请求中的请求协议:从https改为http 1850c8c2caff1a369e2d0a2560482165.png 再运行一次JMeter,可以看到此时接口响应已经是正确的搜索结果了: c65c8d4ecb062b973abfcaac61945d40.png回到目录

5. 脚本下载

最后,我把本次录制及处理后的Jmeter脚本上传到了百度网盘,供大家参考。下载链接,哈哈哈,找小编

 ღ The End ღ

我们一起去松勤学测试

3167bed685a83d79c847c0b51818e7f9.png

在右下角戳一个小花花039ab77342041eb23b757d81b0408394.png

你是最好看

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值