说明:以Oracle为例,模拟一个用户访问数据库,执行select查询语句
1.1配置Jmeter环境
在本例中,使用到了ojdbc6.jar,因此将该jar包拷贝放在安装Jmeter文件夹中的lib目录中,路径示例:
E:\jemeter\apache-jmeter-5.1.1\bin |
1.2创建Thread Group(线程组)
1.2.1打开Jemter,如下所示,有一个Test Plan(测试计划),选中Test Plan(测试计划),右键【Add>Threads(Users)>Thread Group】,添加一个Thread Group(线程组);
1.2.2Thread Group(线程组)面板显示如下,可对下列参数进行设置修改:
Name |
名称 |
Number of Threads(users) |
用户数 |
Ramp-up Period(in seconds) |
加速时间。 该属性告诉JMeter启动每个用户之间要延迟多长时间, 如果用户数设置为2,加速时间设置为10,JMeter将在10秒结束时完成所有用户的启动,则启动用户之间的延迟为(10/2)5秒,如果设置为0,那么JMeter将立即启动所有用户。 |
Loop Count |
循环计数。 该属性告诉JMeter重复测试的次数 |
1.3设置JDBC Connection Configuration(JDBC连接配置)
1.3.1选中Thread Group(线程组),右键【Add > Config Element> JDBC Connection Configuration】,在Thread Group(线程组)下添加一个JDBC Connection Configuration(JDBC 连接配置)
1.3.2配置JDBC Connection Configuration(JDBC 连接配置)参数
截图中设置了以下参数:
Variable Name |
绑定到池的变量名称 |
Validation Query |
验证查询 Oracle:SELECT 1 FROM DUAL Mysql : SELECT 1 (不同的数据库设置的值不同,可去官网查看) |
Database URL |
数据库URL |
JDBC Driver class |
JDBC驱动程序类 Oracle:oracle.jdbc.driver.OracleDriver Mysql:com.mysql.jdbc.Driver |
Username |
数据库的用户名 |
Password |
用户名的密码 |
1.4设置JDBC Request(JDBC 请求)
1.4.1选中Thread Group(线程组),右键【Add > Sampler > JDBC Request】
1.4.2在JDBC Request面板上进行如下设置:
Variable Name of Pool declared in JDBC Connection Configuration |
该设置与JDBC Connection Configuration(JDBC连接配置)中的Variable Name for created pool设置的内容一致,可以指定连接池 |
Query Type |
Select Statement |
在Query中可以输入执行查询的sql语句,示例: select code, name from goods where code = '09101' |
1.5添加View Results Tree(察看结果树)
1.5.1 选中Thread Group(线程组)或者Test Plan(测试计划),此处以Thread Group(线程组)为例,右键【Add > Listener > View Results Tree】
1.6运行测试计划
选中Test Plan(测试计划),点击绿色图标,或者快捷键Ctrl+R
1.7察看执行结果
点击View Results Tree (察看结果树),选择Response data >Response Body可查看到执行查询语句的结果;
1.8异常分析:
1.8.1ORA-00911: invalid character
分析:出现此种异常,应到JDBC Request(JDBC请求)中查看sql语句是否正确,比如添加了分号(;)结尾,去掉分号即可;
select code, name from goods where code = '09101'; |
1.8.2Cannot create PoolableConnectionFactory (ORA-00923: FROM keyword not found where expected)
分析:出现此种异常,需要查看JDBC Connection Configuration(JDBC 连接配置)中的Validate Query的值是否匹配当前的数据库:
参考:
Oracle |
Select 1 from dual |
Mysql |
Select 1 |
更多数据库设置参考官网信息: http://jmeter.apache.org/usermanual/component_reference.html#JDBC_Request |