Jmeter-从数据库中获取数据并作为变量传输

Posted kitty_wu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jmeter-从数据库中获取数据并作为变量传输相关的知识,希望对你有一定的参考价值。

 

再今天重新学习,从数据库中取数据,并作为变量传到下一个请求中。

首先第一步要导入mysql驱动包

 

 

一、添加JDBC Connection Configuration

设置链接

Database URL: jdbc:mysql:// 数据库地址 /库名

JDBC Driver class:com.mysql.jdbc.Driver

Username:账号

Password:密码

二、添加JDBC Request

ariable Name: 数据库连接池的名字,需要与上面配置的JDBC Connection Configuration中Variable Name Bound Pool的Variable Name相同 

Query:填写的sql语句未尾不要加“;” 

Parameter valus:参数值 

Parameter types:参数类型,可参考:Javadoc for java.sql.Types 

Variable names:保存sql语句返回结果的变量名 

Result variable name:创建一个对象变量,保存所有返回的结果 

Query timeout:查询超时时间 

Handle result set:定义如何处理由callable statements语句返回的结果

 

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}...来获取相应的值

 

 

三、在http请求中加入变量

username_id_N:N为数字,指取第几个数

四:添加察看结果树

 

结束。。。。。。

 

-------------这里是分界线-------------

 

其实并没有。。。。

 

实际中,我们是取出多个值,循环传入数据库

五:添加循环控制器:

 

 

 六:目标接口放入到循环控制器下,另外添加一个计数器,因为我们取的值是根据${username_N}来取的,那么这个N可以通过计数器递增的方式获得

 

七:计数器:

 

八:通过函数助手获取嵌套函数

函数__V可以用于执行变量名表达式,并返回执行结果。它可以被用于执行嵌套函数引用(目前JMeter不支持)。

例如,如果存在变量A1、A2和N=1,则:

${A1}:能正常工作。

${A${N}}:无法正常工作(嵌套变量引用)。

${__V(A${N})}:可以正常工作。A${N}变为A1,函数 __V返回变量值A1。

 

九:运用在目标接口中

 

 运行就OK啦

 

 

排错记录

1. 报“Cannot load JDBC driver class \'com.MySQL.jdbc.Driver ”    -----   表示没有JDBC连接mysql的驱动包,添加mysql的驱动包

 2.不同的数据库有不同链接方式

 

注:原创,转载请说明出处!

 

以上是关于Jmeter-从数据库中获取数据并作为变量传输的主要内容,如果未能解决你的问题,请参考以下文章

Jmeter_从jdbc请求的响应中获取参数做关联

Jmeter变量嵌套的方法

jmeter负载测试从数组变量中获取动态值

从数据库查询多个字段,依次传给登录接口怎么实现?

jmeter sql返回值随机获取进行参数化

shell 从文件获取数据并赋值给变量