jmeter参数化和压力测试

2022-07-21 14:49:53 浏览数 (1)

接着上一篇,这次说一下jmeter如何参数化传递参数和做简单的压力测试,不过这次我以最近我做的项目为例子。

要求是:100台终端设备上传抓拍记录给服务器,查看服务器的资源消耗。

但是怎么来模拟呢?

1、先找到上传抓拍记录的接口http://xxx.xxx.xxxx:xxxx/api/xxx,以及需要传递的参数,看下图:

参数总共有time,deviceId,customerId,confidence,fileName,还有1文件上传参数file。

其中除了confidence/file是可以不变,其他参数都是需要变化的。那么怎么做才能发100个请求,但是传递不同的参数呢?这个就需要将需要参数化了。但是首先我们需要设置下线程组,如下图:

我们设置线程数100个,到达线程最大线程数(100个)需要的时间是2s,到达最大线程数后,再设置永远循环每2s发100个请求。

2、那么设置好线程组后,接着怎么设置要传递的参数呢?

我们需要把要传递的参数保存在txt文件,格式如下:

第1列是deviceId,第2列是fileName,第3列是customerId,列与列之间用“|”分隔

我们需要在线程组下新建1个配置元件-csv数据文件配置,如下:

取名参数即可,新建好之后,对csv数据文件进行设置,如下:

设置的参数如下:

文件名:选择刚才的txt文件的目录

文件编码:可以不选

变量名称:自定义取名,不过还是可以通过名字就知道是什么变量,我取的是txt_deviceid,txt_filename,txt_customerid,变量之间用逗号分开.

分隔符:填写"|",和txt文件里面分隔符保持一致

其他参数保持默认值即可。

3、设置好参数之后,怎么进行引用呢?

在jmeter里面是通过${变量名}的方式进行引用的,如图为例子:

对应参数的变量引用{txt_deviceid},{txt_filename},{txt_customerid},但是time这个时间戳可以通过jemter的内助函数{__time(,)}获取。

到此为止,需要设置的东西,全部弄好,我们运行下就可以,运行结果查看如下:

通过上面这样子做就可完成,100个请求传递不同的参数,并且可以让100个请求同时发出,这属于并发压力测试了吧。不知道我理解对不对呢?

jmeter参数化的传递参数操作大概就是这样子的了。听首歌吧,最近有点丧!!!!

0 人点赞