在 http Load Testing 中,json 数据的提交是个让人头疼的问题。本文详细介绍如何进行 JMeter 的 json 测试提交,以及如何将其参数化。
Step 1 http json 请求采样器的录制
 这个工具很多,可以使用 JMeter 代理录制,也可以使用 Badboy。

Step 2 为该采样器添加 HTTP 信息管理器
鼠标右击该采样器,右键菜单选择 "添加" -> 配置元件 -> HTTP 信息头管理器,然后信息头添加一条名称为 Content-Type,值为 application/json 即可:

添加好 HTTP 信息管理器之后,选中该采样器,编辑其 Content encoding 为 UTF-8:

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 内容如下图所示:

最后编辑 Body Data 里的 json 串里需要参数化的地方,使用 ${cityCode} 等参数覆盖需要参数化的部分:

这时候你就可以使用参数化的 json 串进行压力测试啦:

from:http://blog.csdn.net/defonds/article/details/40824011

jmeter之json数据参数化 断言等的更多相关文章

  1. Jmeter 提取http请求返回值里json数据参数化方法

    第三方插件下载地址:http://jmeter-plugins.org/downloads/all/ 插件下载后解压:找到JMeterPlugins-Extras.jar,把JMeterPlugins ...

  2. jmeter对响应数据做断言

    单独校验某个接口中的某个字段时,断言就相当于检查点 添加http请求,输入路径url

  3. JMeter 返回Json数据提取方法

    JMeter中,对response返回JSON格式的数据进行处理,格式如下: { "code":2000, "message":"success&qu ...

  4. JMeter传递JSON数据

    步骤: 1.添加线程组.HTTP请求默认值.察看结果树等参考<JMeter实现bugfree登录接口测试>.这里不再赘述. 2.添加HTTP请求 在Body Data中写上输入的参数.参数 ...

  5. jmeter发送json数据,报405、400错误解决方案

    1.405错误解决方案:添加HTTP信息头管理器(错误因数:发送格式未设置) 2.400错误解决方案:json文本格式有误(注意:换行.空格等)解决方案:对照json文本数据(错误因数:发送的json ...

  6. jmeter-JSON Path Assertion(对响应的json数据进行断言)

    1,通过plugin manager 安装json  pllugins

  7. loadrunner请求json数据参数化问题

    http://blog.sina.com.cn/s/blog_62079f620102vvx3.html

  8. Jmeter 发送json{Jfinal 接口req rsp均为json}

    链接地址:http://yangyoupeng-cn-fujitsu-com.iteye.com/blog/2013649 使用jmeter发送json数据.方法有三种 原创,转载请注明出处 1.利用 ...

  9. Jmeter 发送json

    阅读更多 使用jmeter发送json数据.方法有三种 原创,转载请注明出处 1.利用CSV Data set Config. 参考: http://demi-panda.com/2013/01/08 ...

随机推荐

  1. Js获取当前日期时间及格式化操作

    var myDate = new Date();myDate.getYear();        //获取当前年份(2位)myDate.getFullYear();    //获取完整的年份(4位,1 ...

  2. android模拟器中文乱码

    问题:在xml文件中设置的中文能正确输出,但是在java文件中设置的中文会在模拟器上呈现乱码 解决方案:在build.gradle文件中添加一行代码 android {compileOptions.e ...

  3. iOS开发之 在release版本禁止输出NSLog内容

    因为NSLog的输出还是比较消耗系统资源的,而且输出的数据也可能会暴露出App里的保密数据,所以发布正式版时需要把这些输出全部屏蔽掉. 我们可以在发布版本前先把所有NSLog语句注释掉,等以后要调试时 ...

  4. [css] 垂直居中方法

    原文链接:http://www.cnblogs.com/2050/p/3392803.html 一.text-algin:center; 适用于行内元素水平居中,如图片.按钮.文字, 但是在IE67下 ...

  5. Bootstrap强调内容

    在实际项目中,对于一些重要的文本,希望突出强调的部分都会做另外的样式处理.Bootstrap同样对这部分做了一些轻量级的处理. 如果想让一个段落p突出显示,可以通过添加类名“.lead”实现,其作用就 ...

  6. drupal配置的命名

    简单好记关键字堆砌方便以后查阅不然真的很容易忘了--关键词可以堆砌,比如是block还是page,是什么content type, 内容关键词等等.

  7. python自定义函数大全

    写的零碎的python脚本太多了,到一定阶段就会出现一个问题,即以前写过的脚本找不到了,现在临时要用,还得再重写一遍,这就非常难受了,代码不能复用. 还好我有一个比较好的习惯,我喜欢把python脚本 ...

  8. Java客户端通过Http发送POST请求上传文件到web服务器

    http://www.cnblogs.com/WilliamJiang/archive/2012/04/29/2475883.html 1.朋友的一个需求,让我给他实现,需求是这样的,需要用ASP.n ...

  9. linux笔记:linux软件包管理,软件安装位置

    linux软件包简介 软件包分类:1.源码包(用C语言等编写的源代码,没有进行编译):脚本安装包(对源码包进行了安装优化的源码包)优点:开源,可修改可以自由选择所需的功能编译安装,更适合自己的系统,稳 ...

  10. Date的那一大堆事儿--1

    String perfTimeStr = "";// 统一设置日历格式 Calendar calendar = Calendar.getInstance(); calendar.s ...