这个例子要:创建50个用户发送2个sql请求到数据库服务器,
也可设置用户重复执行100次,这样总的请求数=50*2*100
用到以下元素:thread group / jdbc request / summary report
这个例子使用sqlserver数据库驱动,需要将驱动 .jar文件放于jmeterlib下
下载地址:http://www.microsoft.com/zh-CN/download/details.aspx?id=11774
需要有一个有效的数据库,数据表,用户级别的访问数据表的权限,这里用 XSData 数据库 表:tbInfoClient
1 每个jmeter测试计划-首先要添加一个thread group 元素,thread group 元素告诉jmeter要模拟的用户数,多长时间发送一次请求,发送请求次数
设置属性:
name:jdbc users
users:50
Ramp-up period=10 (延迟多长时间启动线程,50/10=5秒启动一个线程)
loops=100(重复执行100次)
jmeter面板自动接受修改数据,如果改变了一个元素的名称,在焦点离开文本框时树列表名称改变
2 添加jdbc request
选择jdbc users结点-右键-Add-Config Element-JDBC conection configuration
属性:veriable name bound to pool:唯一标识这个配置,被jdbc sampler使用指定使用的配置
database url: jdbc:jdbc:sqlserver://127.0.0.1:1433;databasename=XSData 如果是mysql(mysql://ipOfTheServer:3306/xsdata)
JDBC driver class:选择sqlserver.jdbc 如果是mysql(com.mysql.jdbc.Driver)
username:sa
password:123
其他属性可以使用默认值
jmeter根据配置创建一个数据库池,这个池根据variable name 关系到jdbc request
可以使用多个不同的jdbc configration元素,但是必须有唯一的名称
每个jdbc request 必须关系到一个数据库配置池,多个jdbc request 可以关系到同一个数据库配置池
3 添加jdbc request
选择jmeter users (thread group)-右键-Add-Sampler-JDBC Request
在这里我们添加2个jdbc request 第1个用来选择所有状态字段不为空的记录,第2个用来选择所有记录状态为空的记录
修改属性:Name :JDBC Request Running
输入variable name bound to pool:mydatabase (与配置一致)
输入sql qurey: select * from tbInfoClient where isnull(MemberLevelID,0)<>? 使用占位符出错 使用语句:select * from tbInfoClient where isnull(MemberLevelID,0)<>0
输入字段值
输入字段类型
(可在test plan 添加变量:o_value)
添加第2个jdbc request:设置属性如图:
4 添加 listener
选择jmeter users(thread group)-右键-Add-Listener-summary report
Label:取样器/监听器名称
Samples :事务数量
Average:平均一个完成一个事务消耗的时间(平均响应时间)
Median:所有响应时间的中间值,也就是 50% 用户的响应时间,大概是这个意思
Min:最小响应时间
Max:最大响应时间
以上单位都是ms
Std.Dev:偏离量,越小表示越稳定
Error %:错误事务率
Throughtput:每秒事务数,即tps
KB/sec:网络吞吐量
Datebase |
Driver class |
Database URL |
MySQL |
com.mysql.jdbc.Driver |
jdbc:mysql://host:port/{dbname} |
PostgreSQL |
org.postgresql.Driver |
jdbc:postgresql:{dbname} |
Oracle |
oracle.jdbc.driver.OracleDriver |
jdbc:oracle:thin:user/pass@//host:port/service |
Ingres (2006) |
ingres.jdbc.IngresDriver |
jdbc:ingres://host:port/db[;attr=value] |
MSSQL |
com.microsoft.sqlserver.jdbc.SQLServerDriver 或者 net.sourceforge.jtds.jdbc.Driver |
jdbc:sqlserver://IP:1433;databaseName=DBname 或者 jdbc:jtds:sqlserver://localhost:1433/"+"library" |