在使用jmeter操作mysql的实际工作中,sql的参数不一定就是确定的,就像有时我们需要动态从数据库获取某一个或某几个值,这个时候就需要动态的设置sql语句,那么我们应该怎么搞呢?这就用到了CSV数据文件配置这个插件。下面开始上场景。
-
首先我们的vault_user表有这些数据
1.png - 假设我们的一个接口参数是需要namg和age,那么我们就需要依次获取每行的name和age的值,有两个问题需要解决,第一个是动态设置sql语句,第二个是提取返回的值;在jmeter如何实现呢
-
打开jmeter,在jmeter新建一个线程组,起名数据库
image.png -
新建一个配置元件JDBC Connection Configuration
image.png - 配置好你的mysql数据库,并新建一个 JDBC Request的Sampler,具体的配置可以参考上篇文章,传送门
- 假设你已经连接上了数据库,我们在JDBC Request写入如下的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}...来获取相应的值
image.png
-
为了方便观察,新建一个查看结果树和Debug sampler
image.png -
执行查看结果
image.png -
已经解决了第二个问题,提取sql查询的返回值,那么现在解决第一个sql动态参数
image.png
image.png
image.png -
在JDBC Request 引入你增加的参数名称
image.png -
为了看出效果,更改数据库线程组为6(和文件里一样),并运行脚本
image.png
image.png
------------------------------------------------------------------------------------------------------ over
网友评论