Jmeter使用csv参数化Json数据

参考:JMeter 压力测试使用函数和 CSV 文件参数化 json 数据http://blog.csdn.net/defonds/article/details/40824011json


结合本身的实践经验从新整理以下:服务器

说明:笔者使用的是Jmeter 3.0,本文主要是介绍如何使用JMeter的提交 json,以及将其参数化。示例的http请求只是用于验证提交json是否成功,是否成功参数化,并非真实有效的请求。并发

一、先准备一个csv文件,我这里只是简单地写了一个,两列数据,并将文件放到E盘的根目录中,app

而后在Jmeter中添加一个CSV Data Set Config (在配置元件中),将文件的绝对路径+文件名称+后缀填入,因此我填入E:\1233.csv到“Filename”中,并为csv文件的列定义一个变量名,我这里定义为Num、Letter,注意变量名之间使用英文状态下的逗号进行隔开。ide

wKioL1f9D6eAdhyKAAHby2_DGAE600.png


二、函数

(1)添加http sampler,并设置为post请求,post

(2)打开Body Data页,设置Json格式,并参数化,使用 ${变量名}。测试

(3)参数化时,能够直接设置spa

{.net

"number":"${Num}",

"letter":"${Letter}"

}

也能够加上一些常量进行组合,如

{

"number":"我是数字${Num}",

"letter":"我是字母${Letter}"

}

wKiom1f9D3bRz6_xAAEa4L8Bdaw512.png


三、设置线程组的并发数量等参数,

(1)我刚刚准备的文件一共14条数据,我这里设置一共发送16次请求,

(2)添加“察看结果树”(在监听器里),而后点击运行按钮,查看请求信息,

wKiom1f9D1HjLMfyAAEGR4fV2n0381.png


四、经过结果树,咱们发现Jmeter发送的postData已经成功读取csv文件的数据,并成功参数化。


五、在本次测试中发现,当请求数大于数据源数量时,Jmeter会自动循环读取数据,本次测试的第15请求就是读取的第一行的数据。

wKioL1f9DuHibPvcAACJLP3vnng606.png


这是由于在csv配置中,设置了 recycle on EOF 为true;stop thread on EOF为false,

当Jmeter读完了一轮数据时,还有线程待运行,那么线程会循环读取csv的数据。

EOF:end of file;

wKiom1gC9E_ASW_-AACC2ja8428200.png


其余问题

一、步骤中还可“为该采样器添加 HTTP 信息管理器”,此功能是为了经过服务器的Json类型合法性校验。
        操做步骤以下:鼠标右击该采样器,右键菜单选择 "添加" -> 配置元件 -> HTTP 信息头管理器,而后信息头添加一条名称为Content-Type,值为 application/json便可:

wKioL1f9DrqxuLFnAADOGRiK_Ng436.png