在 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. hdu3264Open-air shopping malls(二分)

    链接 枚举伞的圆心,最多只有20个,因为必须与某个现有的圆心重合. 然后再二分半径就可以了. #include <iostream> #include<cstdio> #inc ...

  2. activity去标题栏操作&保留高版本主题

    方式一:每个类都需要去添加此代码 在setContentView(R.layout.activity_splash); 前设置以下代码 requestWindowFeature(Window.FEAT ...

  3. strcpy, memcpy, memset函数

    一. strcpy函数 原型声明:char *strcpy(char* dest, const char *src);   头文件:#include <string.h> 和 #inclu ...

  4. UIImageView 的contentMode属性

    UIViewContentModeScaleToFill UIViewContentModeScaleAspectFit UIViewContentModeScaleAspectFill UIView ...

  5. iOS项目中的version和build

    Version在plist文件中的key是“CFBundleShortVersionString”,标识应用程序的发布版本号,和AppStore上的版本号保持一致.该版本的版本号是三个分隔的整数组成的 ...

  6. 【摘抄】meta系列用法总结【持续更新中】

    meta标签分两大部分:HTTP标题信息(HTTP-EQUIV)和页面描述信息(NAME). ★页面描述信息NAME变量  name是描述网页的,对应于Content(网页内容),以便于搜索引擎机器人 ...

  7. Bootstrap的粗体和斜体

    一.粗体 粗体就是给文本加粗,在普通的元素中我们一般通过font-weight设置为bold关键词给文本加粗. 在Bootstrap中,可以使用<b>和<strong>标签让文 ...

  8. 删除github账号的方法

    如果你不想使用自己的github账号了,github官网允许你删除账号,具体操作步骤为: 1.登录github网站,网站右上角的头像,在下拉菜单中选择"Settings"(设置): ...

  9. 实现 像网易云音乐 播放列表那样的弹出型Dialog

    如图 所示是点击Test之后的 弹出的Dialog (请无视我工程的命名) 20161017/**加入点击回调,假设dialog里放了一个TextView*/ 得先写一个点击回调 public int ...

  10. AOP 之 6.1 AOP基础(拾陆)

    6.1.1  AOP是什么 考虑这样一个问题:需要对系统中的某些业务做日志记录,比如支付系统中的支付业务需要记录支付相关日志,对于支付系统可能相当复杂,比如可能有自己的支付系统,也可能引入第三方支付平 ...