一、配置jmeter

jmeter安装包:

链接:https://pan.baidu.com/s/1yEjfAfYE8dAPmaiAMJSsIw 
提取码:mlbv 

1、配置jdk

2、解压apache-jmeter-5.1.1.rar

3、打开jmeter

该版本jmeter为免安装版,在bin下双击jmeter.bat即可。

 

达梦数据库有空间索引吗_测试计划

二、配置测试计划

2.1导入已存在测试计划

如果已存在配置好的配置计划,直接打开测试计划即可。

 

达梦数据库有空间索引吗_测试计划_02

如果打开了多个线程组,又只需要执行其中一个,建议把其他的线程组禁用,不然所有线程组都会执行。

2.2手动创建测试计划

2.2.1配置jdbc驱动

驱动建议用安装达梦数据库自带的驱动,位置一般为xx/dmdbms/driver

 

达梦数据库有空间索引吗_线程组_03

2.2.2新建线程组

 

达梦数据库有空间索引吗_达梦数据库有空间索引吗_04

 

达梦数据库有空间索引吗_线程组_05

当前配置是创建10个线程,每个线程执行1次。

实际测试要300个线程组,update50W,所以可以设置Number of Threads=300,Loop Connt=500000/300 。

如果打开了多个线程组,又只需要执行其中一个,建议把其他的线程组禁用,不然所有线程组都会执行。

2.2.3新建连接配置

配置达梦url串、驱动类、数据库账号、密码

 

达梦数据库有空间索引吗_线程组_06

 

达梦数据库有空间索引吗_测试计划_07

2.2.4添加jdbc请求

 

达梦数据库有空间索引吗_达梦数据库有空间索引吗_08

 

达梦数据库有空间索引吗_线程组_09

本例测试的是数据库的更新操作,直接压数据库,一般压测,其实是压应用,这样才能真实地反应出应用实际耐压状况,毕竟站在用户的角度,用户是直接操作应用,而不是直接操作数据库。

2.2.5新建监听

 

达梦数据库有空间索引吗_数据_10

直接保存即可,可以监控执行情况。

2.2.6执行

 

达梦数据库有空间索引吗_数据_11

可根据startTime判断起止时间。

下次执行记得clear

达梦数据库有空间索引吗_数据_12

2.2.7另存

创建好后,可以把测试计划保存出来,以便以后使用。

 

达梦数据库有空间索引吗_达梦数据库有空间索引吗_13

 

达梦数据库有空间索引吗_测试计划_14

三、动态参数

有时候测试不想把参数都设置为常量,想测试动态参数性能,可以通过读取csv文件试下,也可以通过随机数实现。

3.1jmeter读取csv参数化文件

3.1.1准备参数

说明:参数可以直接在csv中设置,也可以先在excel中配置,再另存为csv文件,这样不容易出错。

第一组数据要重写一遍,为了解决CSV参数化读取第一个数据有错的问题。

 

达梦数据库有空间索引吗_数据_15

3.1.2添加HTTP信息头管理器

注意:非http请求可以省略这一步。本例中是直接在sql中动态调用参数,可以不设置http信息头管理器

 

达梦数据库有空间索引吗_线程组_16

 

达梦数据库有空间索引吗_线程组_17

此功能是为了通过服务器的Json类型合法性校验。

3.1.3添加和配置CSV Data Set Config

 

达梦数据库有空间索引吗_线程组_18

 

达梦数据库有空间索引吗_测试计划_19

Filename:参数化要引用的文件名

Variable Names(comma-delimited):变量名(用逗号分隔)

Ignore first line:忽略首行(只在设置了变量名称后才生效),设置为false的话取第一个值可能会报错

Delimiter(use’\t’ for tab):参数文件中多个变量值的分隔符,\t表示用tab键分隔,默认是逗号;

3.1.4调用参数

 

达梦数据库有空间索引吗_线程组_20

插入和查询都支持

3.1.5执行

效果如下:

 

达梦数据库有空间索引吗_线程组_21

3.1.6补充

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

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

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

3.1.7字母和中文类型

达梦数据库有空间索引吗_数据_22

 

达梦数据库有空间索引吗_测试计划_23

 

达梦数据库有空间索引吗_达梦数据库有空间索引吗_24

注意:b.csv不要用中文逗号隔开,不然会把逗号前后的内容当作一个整体。

达梦数据库有空间索引吗_线程组_25

utf-8  字母的话设置为gb2312也行,中文要设置为utf-8

b1,b2,b3,b4,b5

insert into "BCIP_REPORT_TRANTOTAL_DAY" ("ID","DEV_ID","ORG_ID","ORG_NAME","TRAN_TYPE") values

(${b1}, ${b2}, ${b3}, ?, ?)   需要特殊处理的字符或者中文类型,用问号代替,然后在parameter values和parameter types里处理一下。

${b4},${b5}

varchar,varchar

达梦数据库有空间索引吗_测试计划_26

如果想设置多行values,有几个问号也设置几次parameter

3.2随机数

3.2.1使用jmeter自带的函数生成

打开jmeter右上角的函数助手,找到_RandomString函数。

3.2.1.1随机字符串

将随机生成的字符串存储在 str 变量中,可通过 ${str} 引用。

 

达梦数据库有空间索引吗_达梦数据库有空间索引吗_27

Length   生成字符串的长度       必填

Characters to use  用于生成字符串的字符       非必填

Variable Name      引用变量名    非必填

随机会生成任意字符,什么乱七八糟的字符都会生成;包括特殊字符、中文、特殊汉字等。

3.2.1.2随机数字

 

达梦数据库有空间索引吗_达梦数据库有空间索引吗_28

复制生成的参数

${__Random(9,9999,random9)}

粘贴到需要的设置参数的位置

3.2.2随机变量

允许用户创建一个在线程组范围之内都可以被引用的随机变量

右键线程组->添加->配置元件->Random Variable

达梦数据库有空间索引吗_达梦数据库有空间索引吗_29

创建随机变量,最小值1,最大值99999999

达梦数据库有空间索引吗_线程组_30

调用随机变量:

 

达梦数据库有空间索引吗_数据_31