Jmeter连接数据库并使用数据表数据作为接口所需参数

jmeter连接数据库,并且使用数据库的用户名密码进行登录操作,具体步骤如下:

1、参考博客<Jmeter连接SqlServer数据库并操作>进行相关内容的补充,修改JDBC Request查询sql语句,并定义变量名为username,如下图: 

【参数说明】

  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语句返回的结果

2、设置http请求的参数,若JDBC Request中Variable name设置了多个参数,如A,B,C,那么HTTP中参数的设置就是${参数AorBorC_N},及表示参数AorBorC列的第N行数据值,如下图: 

3、运行脚本,查看运行结果,如下图:

以上完成了运用数据库中数据作为接口参数的单个使用,如何进行批量使用,即如何做到运用数据库数据做接口参数做压力测试呢,下面做一个简要说明:

【说明】

  JDBC Request中Variables name:

  variables names设置为A,B,C那么如下变量会被设置为:

    A_#=2 (总行数)

    A_1=第1列, 第1行

    A_2=第1列, 第2行

    C_#=2 (总行数)

    C_1=第3列, 第1行

    C_2=第3列, 第2行

  可以使用${A_#}、${A_1}...来获取相应的值

4、 添加循环控制器,设置循环次数为总行数,如下图:

5、因为我们取的值是根据${username_N}来取的,那么这个N可以通过计数器递增的方式获得,我们需要添加一个计数器,如下图:

 

6、 使用函数助手,获取嵌套函数,如下图:

 

【说明】

  ${A1}:能正常工作。

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

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

7、 替换掉http请求中的参数,如下图:

 

8、运行脚本,查看结果,如下图:

 

posted @ 2018-02-01 16:25  零一二  阅读(2060)  评论(0编辑  收藏  举报