天天看点

Jmeter参数化实现永久递增

介绍一下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.INSERT INTO sequence(NAME,current_value,increment) VALUES ('innerSeq', 0, 1);----添加一个sequence名称和初始值,以及自增幅度

2.SELECT SETVAL('innerSeq', 0);---设置指定sequence的初始值

3.SELECT CURRVAL('innerSeq');--查询指定sequence的当前值

4.SELECT NEXTVAL('innerSeq');--查询指定sequence的下一个值

(1)  Jmeter引用

第一步:添加JDBCConnection Configuration原件,配置信息如下

Jmeter参数化实现永久递增

第二步:自定义变量

Jmeter参数化实现永久递增

第三步:添加JDBCRequest

Jmeter参数化实现永久递增

第四步:创建JDBC后置处理器BeanShell PostProcessor

BeanShell脚本

innerNmuTemp=vars.getObject("innum").get(0).get("num");

String innerName="autoIn"+innerNmuTemp;

System.out.println(innerName);

vars.put("innername",innerName);

Jmeter参数化实现永久递增

第五步:引用

Jmeter参数化实现永久递增

酱紫~就可以完美实现永久递增啦~

继续阅读