在 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 串进行压力測试啦:

        參考资料

  • 一次 JMeter 脚本请求错误 HTTP Status 415 的解决笔记
  • 一次 JMeter 脚本请求错误 Could not read JSON: Unexpected character : expected a valid value 的解决笔记

转载于:https://www.cnblogs.com/cxchanpin/p/7227695.html

JMeter 压力測试使用函数和 CSV 文件參数化 json 数据相关推荐

  1. APP压力測试新手教程

    Daniel Knott 用过各种不同编程语言和软件质量保证工具.他在软件开发和測试方面干了七年,自2010年,他一直在德国汉堡的XING AG公司就职,几个项目里,比方XING调查和XING建议,他 ...

  2. 成功解决利用pandas的read_csv函数读取csv文件的时候出现中文乱码问题

    成功解决利用pandas的read_csv函数读取csv文件的时候出现中文乱码问题 目录 解决问题 解决思路 解决方法 解决问题 利用pandas的read_csv函数读取csv文件的时候出现中文乱码 ...

  3. c语言fscanf读取csv文件,使用fscanf函数从.csv文件中读取int

    我试图从.csv文件中读取一些整数.我不知道到底有多少整数是每行的文件中,我只知道,所有的csv文件是一样的东西:使用fscanf函数从.csv文件中读取int 1,2,3,9,6,3,4 4,5,6 ...

  4. pandas读取csv文件的前几行数据(nrows参数)、pandas读取csv文件的中间几行数据(skiprows=range(a,b))

    pandas读取csv文件的前几行数据(nrows参数).pandas读取csv文件的中间几行数据(skiprows=range(a,b)) 目录 pandas读取csv文件的前几行数据.pandas ...

  5. python csv文件参数化_Python 读取csv文件的某一列数据,并定义两个pattern,确定变化区间...

    Python 读取csv文件的某一列数据,并定义两个pattern,[-1, 1, 1] 和 [1, -1, -1]可以确定不同的变化区间 抓取股票数据,确定股票的变化区间. Date 3D10 20 ...

  6. Springboot读取.csv文件并转化为JSON对象

    有时候我们需要读取.csv文件并将其中的数据处理成json对象以便后续处理,在这里整理了简单的处理流程. 1. 代码实现 1)引入依赖 <dependency><groupId> ...

  7. C语言中函数和指针的參数传递

    C语言中函数和指针的參数传递 近期写二叉树的数据结构实验.想用一个没有返回值的函数来创建一个树,发现这个树就是建立不起来,那么我就用这个样例讨论一下c语言中指针作为形參的函数中传递中隐藏的东西. 大家 ...

  8. web压力測试-Web Bench

    1.web bench下载.地址:http://home.tiscali.cz/~cz210552/webbench.html 2.wen bench安装: [root@web111 tmp]#tar ...

  9. jmeter 循环使用csv数据_如何通过jmeter读取csv文件行数来设置循环控制器的总数...

    1.线程组里添加beanshell取样器 import java.io.BufferedReader; import java.io.FileReader; import java.io.IOExce ...

最新文章

  1. php.ini 中文英文对照详细配置手册
  2. python selenium --处理下拉框
  3. idea、eclipse常用快捷键
  4. JSON.stringify()和JSON.parse()分别是什么
  5. 关于宽字符(C++将中文文本文件的内容输出到控制台
  6. oracle orber by,Oracle ORDER BY子句
  7. ubantu 16.04 mysql_Ubuntu 16.04下安装MySQL
  8. 第三次学JAVA再学不好就吃翔(part81)--去除ArrayList中重复元素
  9. 2018-2019-2 20175223 实验三《敏捷开发与XP实践》实验报告
  10. 关于myeclipse输入法编程繁体的修正
  11. Ubuntu连网的问题
  12. KnockoutJS(4)-控制文本和外观绑定
  13. Matlab函数——wgn
  14. html在线播放mp4文件,使用HTML5视频在Firefox中播放MP4文件
  15. pytz 太平洋时区_使用pytz模块打印所有时区的Python程序
  16. Carsim工况设置:道路场景的构建
  17. 从新手到高手c++全方位学习 pdf + 视频教程 共18章
  18. 利用tensorflow构建LSTM预测单词
  19. c语言遍历文件内容_跨平台的C语言网络框架库acl
  20. bps、pps、fps

热门文章

  1. 【网址收藏】Linux 命令分类(debian Linux)
  2. linux awk列数据处理工具使用示例
  3. 深入理解java虚拟机(全章节完整)
  4. 架构设计:Vue+nginx+jwt+zuul+eureka+ribbon+hystrix+rabbitmq+mysql集群+redis集群+elsticsearch集群
  5. lambda中的钩子函数
  6. AngularJS基于MVC的复杂操作案例
  7. mysql修改索引对交易影响吗_MySQL中字符串索引对update的影响分析
  8. SQL 新加字段查询窗口报错
  9. 将String转换成Int数组-Java
  10. 机器人动力学(Basic Newton-Euler Mechanics)