jmeter 数据库测试

时间:2022-11-08 09:03:40
1. 引入数据库驱动包     创建一个数据库测试计划,在测试计划中引入数据库驱动包,这里以oracle为例,驱动包网上有很多下载的地方,下载后放在什么地方都行,然后引入,如图 jmeter 数据库测试 2. 添加数据库配置元件    2.1 创建线程组,在线程组下添加配置元件JDBC Connection Configuration, jmeter 数据库测试 配置解析:
  • Variable Name:配置元件的的所有配置所保存的变量,自定义变量名称,多个jdbc配置元件可以使用相同的变量,但是只有一个会被jdbc请求使用,这里定义的变量名称会被之后的jdbc请求引用,以此来判断请求使用的是哪个配置元件所定义的数据库配置,必填项,如果不填运行后会报错 Variable Name must not be empty for element:JDBC Connection Configuration
  • Connection Pool Configuration 和Connection Validation by Pool 分别是设置数据库连接池配置和针对活动连接的生命周期的设置
  • Database URL:数据连接的访问地址
  • JDBC Driver class:数据库连接的驱动类
  • Username:访问数据库的用户名
  • Password:访问数据的密码
  • 对于Database URL和JDBC Driver class 不同的数据的链接和驱动类是不同的,可以参照下图
  • jmeter 数据库测试
2.2 添加数据库请求,选中线程组右键添加-->Sampler-->JDBC Request,如图
jmeter 数据库测试 配置解析:
  • Variable Name: 选用的配置元件变量,前面已经设置了jdbc配置元件的同名字段,这里需要与配置元件的同名字段相同才能引用配置元件的配置,如果你有多个jdbc配置元件,那么根据不同的sampler选择不同的配置元件,这里填入相对应的jdbc配置元件Variable Name 值即可。
  • SQL Query--- Query Type:sql语句类型,下拉框有8个选项,查询语句的话就选Select Statement,更新语句的话就选Update Statement,但是其实不按照这个规则进行的话jmeter这边会报错,但是其实数据库里的值已经操作成功了;如果你要使用图片下方的Parameter values这一块的设置的话,Query Type就需要选择对应的Prepared Select Statement 或者Prepared Update Statement;输入框里输入sql语句
  • Parameter values: 参数值,在sql语句里对于参数使用?代替,那么这里的输入框就输入?号所代表的的具体值,如图,多个时使用逗号分隔,比如

jmeter 数据库测试jmeter 数据库测试

  • Variable names:sql语句中?所代表的参数变量名称,非必填项,填上有助于与脚本的可读性
  • Result Variable name:运行结果保存的变量名称,非必填项,如果设置了以后,运行结果将会以多个map形式的list保存在所设置的变量中,结果中的列名作为map的key值,列的值作为map的value;使用方法columnValue = vars.getObject("resultObject").get(0).get("Column Name");在jdbc请求之后添加BeanShell PostProcessor后置处理器,脚本区域输入脚本内容,如图:
jdbc请求设置:
jmeter 数据库测试 BeanShell后置处理器请求设置:
jmeter 数据库测试还有一种方式使用jdbc请求的结果保存变量Result values,将BeanShell脚本:
columnValue = vars.getObject("res").get(0).get("USERNAME"); return columnValue; 把上面两行内容保存文件为bs.bsh,放在jmeter的bin目录下,使用jmeter自带的__BeanShell函数接收返回值,如${__BeanShell(source("bs.bsh"))}