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、运行脚本,查看结果,如下图: