在 http Load Testing 中。json 数据的提交是个让人头疼的问题。本文具体介绍怎样进行 JMeter 的 json 測试提交,以及怎样将其參数化。
        Step 1 http json 请求採样器的录制
        这个工具非常多,能够使用 JMeter 代理录制。也能够使用 Badboy。

该採样器录制好以后例如以下图所看到的:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGVmb25kcw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="录制好採样器" />
        Step 2 为该採样器加入 HTTP 信息管理器
        鼠标右击该採样器。右键菜单选择 "加入" -> 配置元件 -> HTTP 信息头管理器,然后信息头加入一条名称为 Content-Type。值为 application/json 就可以:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGVmb25kcw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="HTTP信息头管理器" />
        加入好 HTTP 信息管理器之后,选中该採样器,编辑其 Content encoding 为 UTF-8:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGVmb25kcw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="HTTP请求的content encoding设置" />
        Step 3 为该採样器加入响应断言
        比方请求返还的 json 串里,"status":0 代表处理成功,status 值为其它表示各种处理失败。那么鼠标右击该採样器,右键菜单选择 "加入" -> 断言 -> 响应断言。要測试的响应字段选中 "响应文本",模式匹配规则选中 "Substring",要測试的模式加入并编辑其内容为 "status":0。

        Step 4 编辑採样器的 json 格式
        选中该採样器,Parameters 叶项里复制该 json 串,然后点击 Body Data 叶项,粘贴该 json 串于当中的输入域中(关于 json 串的提取,能够使用 Badboy 自己录制的,也能够使用 Chrome 浏览器自带工具 "JavaScript 控制台 - Network" 进行捕捉)。最后调整 json 数据的展现格式例如以下图所看到的:

        这时能够进行 http json 提交了,可是数据还都是写死的。那么怎么样把这些 json 数据參数化呢,就像其它非 json 提交的採样器一样?
        Step 5 使用函数将 http json 数据參数化
        像其它採样器一样使用函数助手生成一个引用字符串,比方 ${__Random(0,9,random_num_0_9)},它的作用是随机生成 0 - 9 之间的一个数字。
        然后编辑 Body Data 里的 json 串里须要參数化的地方。使用 ${__Random(0,9,random_num_0_9)} 覆盖须要參数化的部分:

        Step 6 使用 CSV Data Set Config 将 json 数据參数化
        右键单击 Thread Group,右键菜单选择 "加入" -> 配置元件 -> CSV Data Set Config。Filename 输入 e:/defonds/work/20141105/json.txt(要使用绝对路径),Variable Names 输入 cityCode,cityName,subCategoryCode,subCategoryName。编辑 e:/defonds/work/20141105/json.txt 内容例如以下图所看到的:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGVmb25kcw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="json.txt内容" />
        最后编辑 Body Data 里的 json 串里须要參数化的地方。使用 ${cityCode} 等參数覆盖须要參数化的部分:

        这时候你就能够使用參数化的 json 串进行压力測试啦:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGVmb25kcw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="能够进行压力測试了" />
        參考资料

JMeter 压力測试使用函数和 CSV 文件參数化 json 数据的更多相关文章

  1. 站点系统压力測试Jmeter+Badboy

    近期项目须要压力測试,因此搜了几款试用,首选的是LoadRunner这款大名鼎鼎的測试软件: LoadRunner11 下载请猛戳这里 传送门LoadRunner破解文件 下载请猛戳这里 传送门Loa ...

  2. 学习使用Jmeter做压力測试(一)--压力測试基本概念

    一.性能測试的概念         性能測试是通过自己主动化的測试工具模拟多种正常峰值及异常负载条件来对系统的各项性能指标进行測试.负载測试和压力測试都属于性能測试,两者能够结合进行. 通过负载測试, ...

  3. 怎样使用 Apache ab 以及 OneAPM 进行压力測试?

    下一个 release 准备小长假后就要 go-live .全部的測试 case 都 cover 过了.但还未进行过压力測试,有点不放心,刚好过节期间家人都回家去了,假期最终能够抽点时间压測一把. A ...

  4. MySQL Study之--MySQL压力測试工具mysqlslap

    MySQL Study之--MySQL压力測试工具mysqlslap 一.Mysqlslap介绍     mysqlslap是MySQL5.1之后自带的benchmark基准測试工具,类似Apache ...

  5. Android开发之按键、触摸屏和手势输入专业压力測试方法

    按键输入.触摸屏输入和手势笔画输入等功能是Android开发的基本功能.其稳定性和健壮性对移动应用系统开发很重要.按键.触摸屏和手势输入专业压力測试方法能够使用Monkey,相应用程序进行压力測试,检 ...

  6. php性能优化(一)压力測试工具篇

    ab使用 Apache附带的压力測试工具ab,很easy使用,而且全然能够摸你各种条件对Webserver发起測试请求.ab能够直接在Webserver本地发起測试请求.这对于须要了解server的处 ...

  7. .Net之路(十五)图解LoadRunner压力測试

    在项目编码阶段结束后,就须要进行软件測试. 成为软件开发过程中一个不可缺少的环节.而自己主动化測试也是将逐步取代人工繁杂的測试.压力測试就是软件測试对软件性能评估的一个方面,以下就简介我在使用load ...

  8. ubuntu 14.04 LTS 安装webbentch压力測试工具

    近期在做 压力測试工具,除了apache的ab測试工具外,发现webbentch工具也不错,这里简介下这两个工具. 一.webbentch安装: wget http://blog.s135.com/s ...

  9. CentOS6.5 64位站点压力測试工具webbench

    在Apache中有自带的ab命令能够測试服务的压力,而nginx没有自带的命令,必需要採用第三方软件来測试.今天就简介一下webbench对nginx的压力測试,压力測试是对系统管理员和运维人员必须的 ...

随机推荐

  1. socketcluster 客户端请求

    <html> <head> <title>test</title> <script src="https://cdn.bootcss.c ...

  2. 教你玩App怎么赚钱(一)

    在看这篇文章之前,你一定要接受一下谋哥的观点:金钱就是价值流通的手段,不要高看了钱. 玩App怎么赚钱?貌似谋哥写的文章超级多,把这个最重要的忘记了.说实在的,我为啥要写“玩App"呢?其实 ...

  3. 静态方法中不能使用 $this

    忽略了一个问题,$this 代表当前对象!! 静态方法中应该使用 类名 . self 或者 static 关键字来代替! static public function get_info($id) { ...

  4. LaTeX新人教程,30分钟从完全陌生到基本入门[转载]

    LaTeX新人教程,30分钟从完全陌生到基本入门[转载] 2017-02-05 分类:TeX讲义 阅读(32514) 评论(0)  这是一篇老文了,前几天看微博的时候看到的,文中的很多表达比较过激,思 ...

  5. 5款工具助你写出更好的Java代码

    1.FindBugs 顾名思义,FindBugs是一款帮助开发者发现bug的工具,它是一个开源项目,遵循GNU公共许可协议,运行的是Java字节码而不是源码. 它是一款静态分析工具,它检查类或者JAR ...

  6. 测试openssl_encrypt

    <?php //$string = 'It works ? Or not it works ?'; //$pass = '1234'; //$method = 'aes128'; // // / ...

  7. HashSet源码分析 jdk1.6

    Set的特点:Set元素无顺序,且元素不可以重复. 1.定义 public class HashSet<E> extends AbstractSet<E> implements ...

  8. flex宽度总结

    flex宽度相关的属性有三个 flex-grow,flex-shrink,flex-basis.下面分别介绍其相关特点: flex-grow 扩大因子,主轴有剩余空间时,元素分配到剩余空间的比率 fl ...

  9. P1875 佳佳的魔法药水 (最短路,DP)

    题目链接 Solution 好题. 一开始一直在想怎么蛇皮建图,但是发现一直蛇不出来... 正解是用类似于 dijkstra 的算法对所有点进行松弛. 对于每个元素记录两个值: \(cost\) 代表 ...

  10. docker学习路线

    http://www.simapple.com/320.html DOCKER 官网 :https://docs.docker.com/docker-for-mac/