zoukankan      html  css  js  c++  java
  • Fiddler系列教程3:使用Fiddler录制Jmeter性能测试脚本

    今天继续给大家带来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格式文件),拷贝至FiddlerImportExport目录下:
    下载链接: 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请求,只保留访问百度首页及搜索的请求:右键选择Remove -> Selected Sessions
     
    最终结果如下:

    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
  • 相关阅读:
    这个星期一好像有点无聊
    SQL、LINQ、Lambda三种方式比较
    [C#基础知识]Class和Struct的区别
    C#判断大批量的路径是否存在时,如何缩短判断时间
    批处理 for参数之token详解
    批处理Delims的基本知识
    读取txt文本中每一条路径(一行)并判断,路径不存在的保存在另一txt文本中
    批处理获取一些系统参数
    Cannot read configuration file due to insufficient permissions
    my97datepicker日期选择插件的用法
  • 原文地址:https://www.cnblogs.com/yimai-series/p/15180629.html
Copyright © 2011-2022 走看看