jdbc: java语言驱动数据库
数据库: 存放数据
性能测试,需要用多用户并发,那么我们做测试时候,就要用很多数据
- 性能测试造数据:
- 1、调接口
- 这个数据,会入我们项目的数据库中,
- 但是,我们要第二次来用,这个时候,我本地没有,只能从数据库中拿
- 问题解决:
- 拿数据?
- 在本地存一份,那我就不用从项目数据库中拿
- 2、文本
- 3、jdbc:
- 1、从数据库中获取
- 2、把数据写到数据库中
JDBC
- 数据库是什么类型======mysql、postgresql、oracle…等等
- 只有,知道了具体是什么数据库,我们才知道,选择用 什么样的jdbc驱动
- https://mvnrepository.com/ 确认你用的数据库,及数据库的版本 mysql
- mysql数据库,如果版本是8.x版本,那么驱动jar包,要与数据库的版本一致;如果是5.7.x版本,你选择的驱动jar包可以大于等于mysql的版本。
- 下载jar包,放到jmeter的lib/ext文件夹中,重启jmeter
- 启动jmeter,那么,jmeter就可以来调用 mysql
- jmeter的配置元件中找到 JDBC Connection Configuration
- create pool : 填写一个池子的名称(自定义)
- database Connection Configuration
- database url: jdbc:mysql://数据库的ip:port/数据库的库名
jdbc:mysql://192.168.23.133:3337/kyj
- jdbc driver class: 选择对应数据库驱动
com.mysql.jdbc.driver
;最好是编辑为:com.mysql.cj.jdbc.Driver
- username: root
- password: 123456
- 写数据库jdbc协议请求
- jdbcrequest
- bound pool: 填写上面配置的池子的名称
- sql query: 执行的脚本
- query type: 执行类型
- 如果写的脚本 select * from cb_account 请求 加上 limit 限制数量
- 注意事项:
- 1、sql语句要分号吗? 平时sql语句加分号是个好习惯,但是,jmeter中,默认是不支持多sql,所以可以不写分号,官方也建议不写分号
- 2、 现在mysql的驱动类型 已经更新为 com.mysql.cj.jdbc.Driver
- 修改 JDBC Connection Configuration配置元件中 jdbc driver class 进行【编辑】com.mysql.cj.jdbc.Driver
- 3、sql语句后面加 limit 是限制返回数量
- 如果不加,那么所有的数据,都返回给jmeter,jmeter的查看结果树要渲染这些数据,
- 会占用非常大的jmeter内存,从而可能出现jmeter无响应
数据库 | DatabaseURL | Driverclass |
---|---|---|
MySQL | jdbc:mysql://host[:port]/dbname | com.mysql.jdbc.Driver PostgreSQL |
V函数中,用的递增数字:
- 方法1: 使用count函数 --------这个函数,会一直加1,就有可能超过边界------这种方法不好用
- 方法2: 用random函数 -------随机函数中最大值的用法
- 方法3: 使用计数器元件 ----配置元件 ------推荐使用
- maxvalue 当计数器计算数值等于我们最大值时,下一次执行,又从起始值开始循环sql语句中,如果要使用变量,不推荐使用 ${} 这种变量引用方式 ------这种方式存在安全问题
推荐方法: 使用 ? 作为站位符
- 1、parameter value 要填写 引用变量,数量一一对应
- 2、 parameter type填写类型 varchar
- 3、query type 选择 prepared 开头