利用Jmeter-jdbc对项目数据库进行测试

性能测试报告

1.JDBC连接测试

性能测试工具:JMeter

环境搭建:到 http://jmeter.apache.org/ 下载JMeter压缩包,无需安装解压即可,点击Jmeter中bin目录下面的jmeter.bat文件即可打开Jmeter了。

1.1 JDBC连接测试用例

测试需求

测试过程说明

过程标引

查询

以200线程数查询表格所有信息记录,

Select 200

以400线程数查询表格所有信息记录

Select 400

以600线程数查询表格所有信息记录

Select 600

1.2测试场景与用例

1.2.1场景描述

200个用户同时对JDBC发出查询指令

在此情况下数据库管理系统服务器的平均值为204,中值为156,响应时间差异大。响应性能较不稳定。

 

Sample : 本次测试场景运行200线程;

Average : 平均响应时间 = 204 ms;

Median : 统计意义上的响应时间中值 = 156 ms;

90% line : 所有线程中90%的线程响应时间都小于500 ms ;

95% line : 所有线程中95%的线程响应时间都小于543 ms ;

99% line : 所有线程中99%的线程响应时间都小于625 ms ;

Min : 响应最小时间 = 0 ms;

Max : 响应最大时间 =655 ms ;

Error : 出错率 = 26.5%;

Throughput :吞吐量,每秒154.4个请求。

1.2.2场景描述

400个用户同时对JDBC发出查询指令

在此场景下,数据库管理系统服务器的平均值为127,中值为1,响应时间还是差异大,响应性能较不稳定。

 

Sample : 本次测试场景运行400线程;

Average : 平均响应时间 = 127 ms;

Median : 统计意义上的响应时间中值 = 1 ms;

90% line : 所有线程中90%的线程响应时间都小于428 ms ;

95% line : 所有线程中95%的线程响应时间都小于678 ms ;

99% line : 所有线程中99%的线程响应时间都小于772 ms ;

Min : 响应最小时间 = 0 ms;

Max : 响应最大时间 =908 ms ;

Error : 出错率 = 63%;

Throughput :吞吐量,每秒223.7个请求。

1.2.3场景描述

600个用户同时对JDBC发出查询指令

在此场景下,数据库管理系统服务器的平均值为116,中值为1。

 

Sample : 本次测试场景运行600线程;

Average : 平均响应时间 = 116 ms;

Median : 统计意义上的响应时间中值 = 1 ms;

90% line : 所有线程中90%的线程响应时间都小于574 ms ;

95% line : 所有线程中95%的线程响应时间都小于644 ms ;

99% line : 所有线程中99%的线程响应时间都小于859 ms ;

Min : 响应最小时间 = 0 ms;

Max : 响应最大时间 =938 ms ;

Error : 出错率 = 75.33;

Throughput :吞吐量,每秒217.2个请求。

<可能由于mysql官网下载的样例数据库数据过多导致响应时间不稳定>

环境配置

JDBC Connection Configuration,

JDBC Connection Configuration的配置,如下图:

 

重要参数说明:

Variable Name:数据库连接池的名称,可以有多个jdbc connection configuration,每个可以起个不同的名称,在jdbc request中可以通过这个名称选择合适的连接池进行使用。

Database URL:数据库url,jdbc:mysql://主机ip或机器名称:mysql监听的端口号/数据库名称

JDBC Driver class:Mysql JDBC驱动

username:数据库登陆的用户名

passwrod:数据库登陆的密码

JDBC request,操作语句:select * from city;

 

重要的参数说明:

Variable Name:数据库连接池的名字,需要与JDBC Connection Configuration的Variable Name Bound Pool名字保持一致

Query Type:SQL语句类型

Result variable name:创建一个对象变量,保存所有返回的结果

1.4.3 后期数据处理器BeanShell PostProcessor,​编写shell脚本,log.info()将查询结果显示到log上

 

1.4.4结果

(1)log查询结果

结果出错了,脚本应该编辑错了,但是不知道哪里有错误,改不出来

(2)结果树

 

总结

由于进行的是数据库性能测试,较难找到成熟的大型数据库系统,同时为了防止对大型数据库的测试可能会造成的潜在破坏,因此本测试是基于本地Mysql数据库里的数据进行的。通过编写SQL语句,查找数据库里表格的数据记录来进行性能测试。

由于对Mysql了解并不是很多,我们是在一边学习一边进行实验报告的完成,所以遇上了很多麻烦,例如驱动和mysql不匹配,数据库输入语句错误,还有脚本编写也遇到了问题,但是绝大多数问题都还是解决了。

 

猜你喜欢

转载自www.cnblogs.com/wddzess/p/10964989.html