Jmeter对数据库做压力测试,完整过程
Jmeter对数据库做压力测试 一、环境:apache-jmeter-5.0,Oracle11g、windows7、jdk1.8、ojdbc14-10.2.0.2.0.jar
二、操作配置: 2.1、启动Jmeter Jmeter初始化界面.png
2.2、界面切换到中文界面 切换语言.png 中文界面.png
2.3、在项目上添加一个线程组 线程组.png
2.4、在线程组上添加JDBC连接配置 JDBC连接配置.png
2.5、在Jmeter工具根目录的lib目录下添加一个Ojdbc驱动
2.6、在线程组上添加JDBC请求 注意:sql语句后面不要加分号,不然会报符号异常的错误
2.7、在线程组上添加观察结果树
2.8、在线程组上添加汇总报告
2.9、在线程组上添加聚合报告 聚合报告.png
2.10、在线程组上配置测试次数 如上图表示模拟10000次的操作,10000次操作在5秒内请求完成,循环两次,即总共模拟了20000次操作
三、测试及结果分析 3.1、点击菜单栏的“运行”图标,等待运行完成 3.2、点击“观察结果树”,点击任何一个请求,可以在右边看到“取样结果”、“请求”、“响应数据”,这个可以看到这个请求的一些数据(请求为绿色表示正常请求,红色表示请求失败)
3.3、点击“汇总报告”,可以看到“JDBC请求”执行了20000次,平均响应时间约等于7057ms,最小响应时间约为0ms,最大响应时间约为23851ms,标准差(Standard Deviation)为7871.05ms,响应错误率为3.28%,吞吐量:throughput为835.8/秒,接受数据量为162.84KB/秒,发送数据量162.84KB/秒,平均字节数为199.5字节。 科普:标准差(Standard Deviation),在概率统计中最常使用作为统计分布程度(statistical dispersion)上的测量。标准差定义为方差的算术平方根,反映组内个体间的离散程度。测量到分布程度的结果,原则上具有两种性质:1.为非负数值;2.与测量资料具有相同单位。
3.4、点击“聚合报告”,可以看到JDBC请求执行了20000次,平均响应时间约等于7057ms,中位数,也就是50%用户的响应时间为3171ms,90%用户的响应时间为19652ms,95%用户的响应时间为22025ms,99%用户的响应时间为23364ms,最小响应时间约为0ms,最大响应时间约为23851ms,响应错误率为3.28%,吞吐量:throughput为835.8/秒,接受数据量为162.84KB/秒,发送数据量162.84KB/秒,发送数据量0KB/秒 科普:为什么要有*%用户响应时间?因为在评估一次测试的结果时,仅仅有平均事物响应时间是不够的。假如有一次测试,总共有10000个请求被响应,其中最小响应时间为0.01秒,最大响应时间为10秒,平均事务响应时间为3秒,这时最小和最大响应时间如此大的偏差会导致平均值本身并不可信。