测试对象
FineReport V7.0
RAQV4.5
系统结构
测试指标
1、响应能力:
典型应用的响应时间
服务器的CPU、Memory使用情况
2、负载能力:
系统支持的最佳并发数
系统支持的最大并发数
系统环境
测试应用服务器配置:
应用服务器类型 |
IP |
CPU |
OS |
Memory |
Storage |
Tomcat5.0 |
192.168.100.96 |
Intel(R) Core(TM) i7-2600 CPU @3.4GHz 3.39GHz |
Windows Server 2003 |
8G |
1TB |
测试数据库服务器配置:
数据库类型 |
IP |
CPU |
OS |
Memory |
Storage |
Oracle10g |
192.168.100.97 |
ntel(R) Core(TM) i7-2600 CPU @3.4GHz 3.39GHz |
Windows Server 2003 |
8G |
1TB |
测试工具
Mercury LoadRunner 8.1+jprofiler
Loadrunner是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业框架进行测试。通过使用LoadRunner,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。LoadRunner是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。
Jprofiler工具主要用于检查和跟踪系统(仅限JAVA开发)的性能。Jprofiler可以通过时时的监控系统的内存使用情况,随时监控垃圾回收,线程运行状态等手段,从而很好的监视JVM运行情况及性能。Jprofiler直觉式的GUI让你可以找到性能瓶颈、抓出内存漏失
模拟图如下:
测试基础数据说明
为了能够测试在并发及大数据量下的性能表现,准备了如下测试数据:
表名称:CROSS1M (数据记录数:1万条) |
|||
名称 |
类型 |
是否可空 |
是否主键 |
NUM |
NUMBER |
NO |
YES |
ID |
VARCHAR2(10) |
NO |
NO |
NAME |
VARCHAR2(20) |
NO |
NO |
SEX |
NUMBER |
NO |
NO |
SALARY |
NUMBER |
NO |
NO |
测试指标
1、响应时间
2、负载
以下测试过程都分为四个环节分析指标的数值,第一:总体性能概要;第二:报表展示时间;第三:CPU利用率;第四:事务处理(针对并发)。
测试计划及方案
测试场景设计
在企业的实际生产环境中,大数据量非常常见。数据量过大,往往导致运算速度非常慢,客户端等待时间过长,甚至导致服务器内存溢出等等现象。比如在银行、税务、商业等领域都有包含大数据量的报表。在木桶原理的作用下,这些大数据量的报表通常都是业务系统的瓶颈,决定着一个业务系统的成功与失败。通过测试大数据量的报表,可以在更早的评估出一个报表工具是否适合将来实际的生产环境。
那么,从性能方面,要解决的问题包括以下两个层面场景,行式引擎使用可以很大程度上加快报表访问速率,使得在报表展现更加人性化。
单个用户,运算一张报表的性能
4.1 普通列表展示结果
4.1.1 1万行数据展示结果
4.1.1.1 未使用行式引擎前
1)总体性能测试情况概要
2)报表展现时间
1w行数据列表展示未使用行式引擎的响应时间是2.379s
3)系统资源消耗
内存消耗为41.01M
4.1.1.2 采用行式引擎后
1)总体性能测试情况概要
2)报表展现时间
报表展示时间为2.327s
3)内存消耗
内存消耗为45.15M
4.1.2 5万行数据展示结果
未使用行式引擎 |
引用行式引擎 |
||
响应时间 |
内存消耗 |
响应时间 |
内存消耗 |
5.303S |
107.8M |
2.416S |
42.76M |
4.1.3 10万行数据展示结果
未使用行式引擎 |
引用行式引擎 |
||
响应时间 |
内存消耗 |
响应时间 |
内存消耗 |
8.98S |
156.1M |
2.344S |
41.80M |
通过数据量对比,列表展示引用行式引擎后性能大幅度提高,数据量越大,性能对比更明显。
4.1.4 RQ测试结果
数据量 |
普通报表 |
行式报表 |
||
响应时间 |
内存消耗 |
响应时间 |
内存消耗 |
|
1w |
2.615S |
32.89M |
2.418S |
18.3M |
5w |
7.775S |
168.6M |
7.186S |
61.5M |
10w |
14.675S |
327.9M |
13.413S |
101.7M |
4.1.5 对比报告
经对比,
普通列表情况下,在同等数据量时,当FineReport报表未启用行式引擎时,报表展示的响应速度比润乾报表快30%,数据量越大对比越明显。
当FineReport报表启用行式引擎时,10w数据量的情况下,FineReport报表的响应速度比润乾报表快80%,性能大大优于润乾报表。
总体而言,普通列表展示的性能,FineReport报表大大优于润乾报表。
了解Java报表工具就从这里开始