用Jmeter+Badboy+Fiddler做接口测试

2016-12-05

目录

1 简介
2 Badboy录制
3 Jmeter打开Badboy脚本
4 用Fiddler抓请求,补充完善脚本
5 测试中遇到问题
  5.1 博客园登录名和密码加密
  5.2 Jmeter请求消息体中中文问题
  5.3 Jmeter响应正文中中文问题

1 简介


返回

在接口测试的时候,会出现没有文档或文档不全的情况,可结合Badboy和Fiddler的进行接口测试

其中,

  • Badboy:录制并导出成jmeter脚本。

    •   缺点:

      •     有时录制很慢,特别是当有弹出框时,
      •     Badboy转化为jmeter脚本时,会有遗漏,或转化错误
  • Fiddler:Fiddler没有Badboy录制问题慢的缺点,且可以根据Fiddler记录的信息进行修正和完善。

下面用一个示例进行说明,步骤如下:

  1. 登录博客园
  2. 发布信息

2 Badboy录制


返回

Step1:登录博客园

  Step1.1 在badboy地址栏输入http://www.cnblogs.com,回车开始录制

  Step1.2点击登录链接,进入登录页面,如图1所示:

图1 登录页面

  Step1.3 输入用户名、密码,点击登录,结果如图2所示:

图2 登录请求

Step 2:发布信息

在发布信息前,切换到发布页面(闪存),这一步不录制。

  Step2.1 输入发布信息“Hello!”,点击“发布”按钮

图3 发布请求

录制结束,点击File->Export to JMeter...

3 Jmeter打开Badboy脚本


返回

打开Jmeter,打开刚才保存的脚本,如图4所示,可以发现刚才录制的http请求。其中,有些请求可以忽视。

图4 Jmeter用badboy录制的脚本

我们首先看下信息头,如图5所示:

  • Http Cookie Manager:添加这个管理器会让Jmeter保存登录信息,不用修改,不要删除
  • User Defined Variables:若没有自定义变量,可删除
  • Http Header Manager:该管理器记录了信息头数据,Badboy只记录了其中的三项,我们参考Fiddler的抓取信息,补充完善

图5 Http信息头管理

4 用Fiddler抓请求,补充完善脚本


返回

如图6所示,Fiddler抓取的http信息头中,有两项badboy没有录制下来:

  • X-Requested-With: XMLHttpRequest
  • Content-Type: application/json; charset=utf-8

把它们添加到Jmeter的Http Cookie Manager中

图6 http信息头

由于Content-Type是json,如图7所示,所以http发送的参数体应该放在Jmeter的Body Data中,如图8所示,而不是Parameters中(发布信息请求也如此修改)。

图7 Cotenttype为Json

图8 Json类型参数放在Body Data中

5 测试中遇到问题


返回

5.1 博客园登录名和密码加密

从图2登录请求中,我们发现用户名和密码都已加密了。通过IE的F12调试功能,我们可以发现加密过程。测试得知:每次调用的加密结果都不一样,但同一个加密结果可以用多次。

var encrypted_input1 = encrypt.encrypt($('#input1').val());
var encrypted_input2 = encrypt.encrypt($('#input2').val());

5.2 Jmeter请求消息体中中文问题

若Jmeter信息头中不添加Content-Type: application/json; charset=utf-8,登录请求的响应结果就会失败。

5.3 Jmeter响应正文中中文问题

Jmeter响应数据中的中文显示乱码,修改apache-jmeter-3.0\bin\jmeter.properties,添加增加编码设置为:

sampleresult.default.encoding=utf-8

用Jmeter+Badboy+Fiddler做接口测试的更多相关文章

  1. Jmeter和Postman做接口测试的区别,孰优孰劣?

    区别1:用例组织方式 不同的目录结构与组织方式代表不同工具的测试思想,学习一个测试工具应该首先了解其组织方式. Jmeter的组织方式相对比较扁平,它首先没有WorkSpace(工作空间)的概念,直接 ...

  2. 使用fiddler进行接口测试

    我们来说说如何使用fiddler做接口测试? 测试准备,抓到相应的接口和入参或者找接口文档,我这里就用聚合数据里面的接口做样例, 接口如下: 测试接口:http://japi.juhe.cn/qqev ...

  3. 《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(18)-Fiddler如何接口测试,妈妈再也不担心我不会接口测试了

    1.简介 Fiddler最大的优势在于抓包,我们大部分使用的功能也在抓包的功能上,fiddler做接口测试也是非常方便的. 领导或者开发给你安排接口测试的工作任务,但是没有给你接口文档(由于开发周期没 ...

  4. jmeter做接口测试

    jmeter做接口测试有两种方式: 1. 2.

  5. 怎样用JMeter做接口测试?

    本文介绍JMeter如何做web service测试,一般来说web服务,一般指的是HTTP请求相关的内容.这里就介绍一下如何利用JMeter做基于HTTP的web接口测试.接口也叫API(Appli ...

  6. 如何用Jmeter做接口测试

    Jmeter介绍&测试准备: Jmeter介绍:Jmeter是软件行业里面比较常用的接口.性能测试工具,下面介绍下如何用Jmeter做接口测试以及如何用它连接MySQL数据库. 前期准备:测试 ...

  7. 使用jmeter做接口测试----柠檬不萌!

    一.乱码解决方案 1.jmeter查看结果树乱码 (1)在jmeter的bin目录下找到jmeter.properties这个文件,添加上 sampleresult.default.encoding= ...

  8. 使用Jmeter做接口测试(学生信息的6个接口)

    使用Jmeter做接口测试,案例中涉及到接口有:获取学生信息.登录.添加学生信息.学生金币充值.获取所有学生信息.文件上传. 一.获取学生信息(get请求) 服务器名称或IP:输入被请求服务器的名称或 ...

  9. Jmeter脚本录制方法(二)——手工编写脚本(jmeter与fiddler结合使用)

    jmeter脚本录制方法可以分三种,前几天写的一篇文章中,已介绍了前两种,今天来说下第三种,手工编写脚本,建议使用这一种方法,虽然写的过程有点繁琐,但调试脚本比前两者方式都要便捷. 首先来看下三种方式 ...

随机推荐

  1. hdu 4738 Caocao's Bridges 求无向图的桥【Tarjan】

    <题目链接> 题目大意: 曹操在长江上建立了一些点,点之间有一些边连着.如果这些点构成的无向图变成了连通图,那么曹操就无敌了.周瑜为了防止曹操变得无敌,就打算去摧毁连接曹操的点的桥.但是诸 ...

  2. 【jvm】来自于线上的fullGC分析

    系统最近老年代的内存上升的比较快,三到四天会发生一波fullGC.于是开始对GC的情况做一波分析. 线上老年代2.7G,年轻带1.3G老年代上升较快,3天一波fullGC,并且fullGC会把内存回收 ...

  3. 【*】Redis实战场景中相关问题

    一.Redis简介 redis主要解决的问题 分布式缓存是分布式系统中的重要组件,主要解决高并发.大数据场景下,热点数据访问的性能问题,提供高性能的数据快速访问. 使用缓存常见场景 项目中部分数据访问 ...

  4. SSID 已经一个路由器设多个SSID

    SSID(Service Set Identifier)   SSID,AP唯一的ID码,许多人认为可以将SSID写成ESSID,其实不然,SSID是个笼统的概念,包含了ESSID和BSSID,用来区 ...

  5. 10.24 正睿停课训练 Day8 AM

    目录 2018.10.24 正睿停课训练 Day8 AM A 棒棒糖(组合) B 彩虹糖(思路 博弈) C 泡泡糖(DP) 考试代码 A B C 2018.10.24 正睿停课训练 Day8 AM 期 ...

  6. AGC 016B.Colorful Hats(思路)

    题目链接 对于某个元素分类讨论一下,就可以知道n个元素的总颜色种数了. 比如对a[1]分类讨论: 若1的颜色和某个元素相同,则总颜色数为a[1].a[i]要么等于a[1](i与某个元素颜色相同,记个数 ...

  7. 洛谷.2042.[NOI2005]维护数列(Splay)

    题目链接 2017.12.24 第一次写: 时间: 2316ms (1268ms) 空间: 19.42MB (19.5MB)(O2) 注:洛谷测的时间浮动比较大 /* 插入一段数:将这些数先单独建一棵 ...

  8. Linux学习笔记15—RPM包的安装OR源码包的安装

    RPM安装命令1. 安装一个rpm包rpm –ivh 包名“-i” : 安装的意思“-v” : 可视化“-h” : 显示安装进度另外在安装一个rpm包时常用的附带参数有:--force : 强制安装, ...

  9. Java知识回顾 (6)正则表达式、方法、文件与异常

    一.正则表达式 正则表达式定义了字符串的模式. 正则表达式可以用来搜索.编辑或处理文本. 正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别. Java 正则表达式和 Perl 的是最为相似 ...

  10. Xshell配置ssh免密码登录-密钥公钥(Public key)与私钥(Private Key)登录【已成功实例】

    本文转自https://blog.csdn.net/qjc_501165091/article/details/51278696 ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式.其中口 ...