在 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. 项目问题总结:Block内存泄露 以及NSTimer使用问题

    BLock的内存泄露 在我们代码中关于block的使用可以说随处可见,第一次接触block的时候是关于UIView的块动画,那时觉得block的使用好神奇,再后来分析总结为block其实就是一个c语言 ...

  2. mysql批量替换数据库某字段部分内容

    update 表名 set 字段名=replace(字段名,’要替换的内容’,’替换后的内容’) eg:修改scenario表中的picture字段中的ip地址. UPDATE scenario SE ...

  3. 利用ajax.dll类库文件实现无刷新

    使用这种方法前需要配置相应的环境 1.引用ajax.dll文件 2.在web.config添加如下: <httpHandlers>   <add path="ajax/*. ...

  4. css 常用样式命名规则

    大家在写css的时候,对一些html标签起一个合适的名字是个很头疼的事情,现在给大家分享项目中常用的名字供参考. 外套:wrap  ——用于最外层 头部:header  ——用于头部 主要内容:mai ...

  5. eclipse不能打断点的问题

    今天突然eclipse不能打断点了,按ctrl+左键也不能进行方法导向了.查了很多资料还是不清楚怎么回事. 我把原来的文件再重新复制下,这个副本竟然是正常的. 结论:把原来的文件重新编译生成class ...

  6. listview某一项不可点击

    listview 整个都不可操作 listview.setEnable(false); listview 某一项不可点击 重写 isEnable()方法,在方法内部判断position,不可点击的项 ...

  7. android 存储

    总共四种:SharedPreferences,文件存储,SQLite数据库,ContentProvider,网络存储 1.sharedPreferences:适合存储少量数据,而且存取的格式简单,采用 ...

  8. 什么是cname a记录

    https://support.dnsimple.com/articles/cname-record/ CNAME就是别名记录,就是负责跳转,比如你给某个地址设置了一个cname,那当访问那个cnam ...

  9. 有用的dede表单代码

    <form action="" class="demoform">                <table>             ...

  10. linux笔记:目录处理命令ls,mkdir,cd,pwd,rmdir,cp,mv,rm

    linux命令的格式:命令 [-选项] [参数]例:ls -la /etc 命令:ls命令所在路径:/bin/ls功能:显示目录文件用法:ls [-aldh] []参数:-a 查看所有文件,包括隐藏文 ...