参数化之从数据库提取数据元件详细解析(十)

1)“配置元件”->“JDBC Connection Configuration”

参数化之从数据库提取数据元件详细解析(十)_第1张图片

精简版:

Variable Name:连接池名称

Database URL:jdbc:mysql://host:port/db(jdbc:mysql://ip地址:端口号/数据库名称)

JDBC Driver class:com.mysql.jdbc.Driver

username:连接数据库的用户名(如root)

password:连接数据库的密码

 

详细版:

1.Variable Name:数据库的类型;

2.MaxNumber of Connection: 数据库最大链接数;

3.Max Wait(ms):连接等待时长;

4.Time Between Eviction Runs(ms):连接时长;

5.Auto Commet:自动提交;

6.Transaction Isolation: 事务间隔级别设置;

    (1)TRANSACTION_NODE  事务节点 、

    (2)TRANSACTION_READ_UNCOMMITTED事务未提交读、

    (3)TRANSACTION_READ_COMMITTED事务已提交读 、

    (4)TRANSACTION_SERIALIZABLE事务序列化 、

    (5)DEFAULT默认、

    (6)TRANSACTION_REPEATABLE_READ事务重复读、

7.test while idle :连接空闲时是否从连接池中去除;

8.soft min Evictable idle time(ms):检验时间间隔;

9.Validation Query:验证查询,检验连接是否有效(不同数据库类型不同);

参数化之从数据库提取数据元件详细解析(十)_第2张图片

10.JDBCDriver Class: JDBC的类,如org.gjt.mm.mysql.Driver ;

参数化之从数据库提取数据元件详细解析(十)_第3张图片

11.Usename,password :用户名密码;

12.Database URL:数据库地址(格式:

jdbc:mysql://ipaddress:3306/dbname?characterEncoding=utf-8&autoReconnect=true&rewriteBatchedStatements=true&socketTimeout=30000&connectTimeout=3000)

 

2) “Sampler”->“JDBC Request”

参数化之从数据库提取数据元件详细解析(十)_第4张图片

1)Variable Name:连接池名称

注意:该值要和JDBC Connection Configuration中配置的Variable Name值对应,否则会提示:No pool found named: 'pool12', ensure Variable Name matches Variable Name of JDBC Connection Configuration;

 

2)Query Type:默认为Select Statement

含变量的sql查询,选择Prepared Select Statement

      a)传递的参数值是常量,如图传递2个变量多个变量使用分隔这里假如你有数据是int类型的,也要在Parameter types 那里标示为varchar类型,否则无法运行。

参数化之从数据库提取数据元件详细解析(十)_第5张图片

     b)传递的参数值是变量,使用${变量名}的方式

参数化之从数据库提取数据元件详细解析(十)_第6张图片

    C) sql语句是insert 语句,用Callabs Statement

参数化之从数据库提取数据元件详细解析(十)_第7张图片

3)Query:输入sql语句,注意不要加分号

4)Parameter types:变量的类型varchar,如果是int类型,也要写成varchar

5)Variable names:保存查询结果,供后续接口调用,注意调用时加“_1”

 jmeter官网给的解释是:如果给这个参数设置了值,它会保存sql语句返回的数据返回数据的总行数。假如,sql语句返回2行,3列,且variables names设置为A,,C,那么如下变量会被设置为:

  A_#=2 (总行数)
  A_1=1, 1
  A_2=1, 2 
  C_#=2 (总行数
  C_1=3, 1
  C_2=3, 2

  • 如果返回结果为0,那么A_#C_#会被设置为0,其它变量不会设置值。
  • 如果第一次返回6行数据,第二次只返回3行数据,那么第一次那多的3行数据变量会被清除。
  • 可以使用${A_#}${A_1}...来获取相应的值

参数化之从数据库提取数据元件详细解析(十)_第8张图片

解析:

  column1代表第一列所有的数据,column1_#可以获取到第一列的行数

  column1_n:获得第一列第n行的数据。

  column2column3的功能类似, 假如我们只需要第一列和第三列的数据,可以写成column1,,column3,中间的","不可以省略

 

6)Result Varialbe name:

如果给这个参数设置值,它会创建一个对象变量,保存所有返回的结果,获取具体值的方法:columnValue = vars.getObject("resultObject").get(0).get("Column Name")

参数化之从数据库提取数据元件详细解析(十)_第9张图片

参数化之从数据库提取数据元件详细解析(十)_第10张图片

你可能感兴趣的:(JMeter,JMeter)