jmeter-sql执行之动态参数和提取返回值

  在使用jmeter操作mysql的实际工作中,sql的参数不一定就是确定的,就像有时我们需要动态从数据库获取某一个或某几个值,这个时候就需要动态的设置sql语句,那么我们应该怎么搞呢?这就用到了CSV数据文件配置这个插件。下面开始上场景。

  • 首先我们的vault_user表有这些数据

    《jmeter-sql执行之动态参数和提取返回值》 1.png

  • 假设我们的一个接口参数是需要namg和age,那么我们就需要依次获取每行的name和age的值,有两个问题需要解决,第一个是动态设置sql语句,第二个是提取返回的值;在jmeter如何实现呢
  1. 打开jmeter,在jmeter新建一个线程组,起名数据库

    《jmeter-sql执行之动态参数和提取返回值》 image.png

  2. 新建一个配置元件JDBC Connection Configuration

    《jmeter-sql执行之动态参数和提取返回值》 image.png

  3. 配置好你的mysql数据库,并新建一个 JDBC Request的Sampler,具体的配置可以参考上篇文章,传送门
  4. 假设你已经连接上了数据库,我们在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}...来获取相应的值

《jmeter-sql执行之动态参数和提取返回值》 image.png

  1. 为了方便观察,新建一个查看结果树和Debug sampler

    《jmeter-sql执行之动态参数和提取返回值》 image.png

  2. 执行查看结果

    《jmeter-sql执行之动态参数和提取返回值》 image.png

  3. 已经解决了第二个问题,提取sql查询的返回值,那么现在解决第一个sql动态参数

    《jmeter-sql执行之动态参数和提取返回值》 image.png
    《jmeter-sql执行之动态参数和提取返回值》 image.png
    《jmeter-sql执行之动态参数和提取返回值》 image.png

  4. 在JDBC Request 引入你增加的参数名称

    《jmeter-sql执行之动态参数和提取返回值》 image.png

  5. 为了看出效果,更改数据库线程组为6(和文件里一样),并运行脚本

    《jmeter-sql执行之动态参数和提取返回值》 image.png
    《jmeter-sql执行之动态参数和提取返回值》 image.png

—————————————————————————————————— over

    原文作者:井湾村夫
    原文地址: https://www.jianshu.com/p/1d372ec9e259
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞