介绍一下Jmeter永久递增的方法。相比Jmeter的函数_counter简直完美到哭
一、 本机安装mysql数据库,或者直接用测试环境的测试库
二、 创建自动化数据库
CREATE DATABASE autotest;
三、 创建自增序列
第一步:创建--Sequence 管理表
DROPTABLEIF EXISTSsequence;
CREATETABLEsequence(
nameVARCHAR(50) NOTNULL,
current_valueINTNOTNULL,
incrementINTNOTNULLDEFAULT1,
PRIMARYKEY(name)
) ENGINE=InnoDB;
第二步:创建--取当前值的函数
DROPFUNCTIONIFEXISTS currval;
DELIMITER $
CREATEFUNCTIONcurrval(seq_name VARCHAR(50))
RETURNSINTEGER
LANGUAGESQL
DETERMINISTIC
CONTAINSSQL
SQLSECURITY DEFINER
COMMENT ''
BEGIN
DECLAREvalue INTEGER;
SETvalue = 0;
SELECTcurrent_value INTOvalue
FROMsequence
WHEREname=seq_name;
RETURNvalue;
END
$
DELIMITER ;
第三步:创建--取下一个值的函数
DROPFUNCTIONIFEXISTS nextval;
DELIMITER $
CREATEFUNCTIONnextval(seq_name VARCHAR(50))
RETURNSINTEGER
LANGUAGESQL
DETERMINISTIC
CONTAINSSQL
SQLSECURITY DEFINER
COMMENT ''
BEGIN
UPDATEsequence
SETcurrent_value = current_value + increment
WHEREname=seq_name;
RETURNcurrval(seq_name);
END
$
DELIMITER ;
第四步:创建--更新当前值的函数
DROPFUNCTIONIFEXISTS setval;
DELIMITER $
CREATEFUNCTIONsetval(seq_name VARCHAR(50), value INTEGER)
RETURNSINTEGER
LANGUAGESQL
DETERMINISTIC
CONTAINSSQL
SQLSECURITY DEFINER
COMMENT ''
BEGIN
UPDATEsequence
SETcurrent_value = value
WHEREname=seq_name;
RETURNcurrval(seq_name);
END
$
DELIMITER ;
第五步:测试函数功能
1. INSERTINTO sequence VALUES (innerSeq, 0, 1);----添加一个sequence名称和初始值,以及自增幅度
2. SELECTSETVAL(innerSeq, 10);---设置指定sequence的初始值
3. SELECTCURRVAL(innerSeq);--查询指定sequence的当前值
4. SELECTNEXTVAL(innerSeq);--查询指定sequence的下一个值
(1) 本机安装mysql数据库,或者直接用测试环境的测试库
(2) 创建自动化数据库
CREATE DATABASE autotest1;
(3) 创建自增序列
第一步:创建--Sequence 管理表
DROPTABLEIF EXISTSsequence;
CREATETABLEsequence(
nameVARCHAR(50) NOTNULL,
current_valueINTNOTNULL,
incrementINTNOTNULLDEFAULT1,
PRIMARYKEY(name)
) ENGINE=InnoDB;
第二步:创建--取当前值的函数
DROPFUNCTIONIFEXISTS currval;
DELIMITER $
CREATEFUNCTIONcurrval(seq_name VARCHAR(50))
RETURNSINTEGER
LANGUAGESQL
DETERMINISTIC
CONTAINSSQL
SQLSECURITY DEFINER
COMMENT ''
BEGIN
DECLAREvalue INTEGER;
SETvalue = 0;
SELECTcurrent_value INTOvalue
FROMsequence
WHEREname=seq_name;
RETURNvalue;
END
$
DELIMITER ;
第三步:创建--取下一个值的函数
DROPFUNCTIONIFEXISTS nextval;
DELIMITER $
CREATEFUNCTIONnextval(seq_name VARCHAR(50))
RETURNSINTEGER
LANGUAGESQL
DETERMINISTIC
CONTAINSSQL
SQLSECURITY DEFINER
COMMENT ''
BEGIN
UPDATEsequence
SETcurrent_value = current_value + increment
WHEREname=seq_name;
RETURNcurrval(seq_name);
END
$
DELIMITER ;
第四步:创建--更新当前值的函数
DROPFUNCTIONIFEXISTS setval;
DELIMITER $
CREATEFUNCTIONsetval(seq_name VARCHAR(50), value INTEGER)
RETURNSINTEGER
LANGUAGESQL
DETERMINISTIC
CONTAINSSQL
SQLSECURITY DEFINER
COMMENT ''
BEGIN
UPDATEsequence
SETcurrent_value = value
WHEREname=seq_name;
RETURNcurrval(seq_name);
END
$
DELIMITER ;
第五步:测试函数功能
1. INSERTINTO sequence VALUES ('innerSeq', 0, 1);----添加一个sequence名称和初始值,以及自增幅度
2. SELECTSETVAL('innerSeq', 10);---设置指定sequence的初始值
3. SELECTCURRVAL('innerSeq');--查询指定sequence的当前值
4. SELECTNEXTVAL('innerSeq');--查询指定sequence的下一个值
(1) Jmeter引用
第一步:添加JDBCConnection Configuration原件,配置信息如下
第二步:自定义变量
第三步:添加JDBCRequest
第四步:创建JDBC后置处理器BeanShell PostProcessor
BeanShell脚本
innerNmuTemp=vars.getObject("innum").get(0).get("num");
String innerName="autoIn"+innerNmuTemp;
System.out.println(innerName);
vars.put("innername",innerName);
第五步:引用
酱紫~就可以完美实现永久递增啦~