1. 概述
1.1. 测试目的
CRM系统性能测试是针对系统并发处理能力、交易响应时间等性能指标所进行的验证性测试。目的是尽可能地模拟生产环境的前提下,实现以下目标:
- 获取上线版本测试需求在当前生产环境下的单交易负载指标;
- 获取系统在当前测试环境下可支撑多少并发用户的数量;
- 获取系统在峰值的80%压力下稳定运行时系统的表现,重点关注JVM使用表现;
1.2. 测试地点
本次CRM非功能测试是在江苏兴化农商行CRM项目组执行测试。
2. 测试范围及方法
2.1测试性能指标范围概述
CRM的性能测试在多用户登录并发下的性能指标,主要包括:
1. 事务(测试对象的)的平均响应时间;
2. 各服务器(应用、数据库)的CPU利用率,内存、磁盘I/O使用情况;
3. TPS:反映CRM系统处理能力;(服务器对当前录制的事务的处理速度快慢 Transactions Per Second也就是事务数/ 秒,一个事务指一个客户机向服务器发送请求,然后服务器做出反应的过程。)
4. 交易成功率。
2.2 非功能测试指标标准
指标项 |
指标值 |
备注 |
系统并发用户数 |
>=100 |
混合场景并发 |
交易成功率 |
>=98% |
|
TPS处理能力 |
>=2/秒 |
|
平均响应时间 |
<=10s |
|
服务器资源利用率 |
CPU利用率不超过75%,内存利用率不超过80%、磁盘I/O、Network正常。 |
|
WAS服务器线程数 |
不存在排队与等待现象。 |
|
JVM |
没有泄露现象能正常回收内存 |
2.3非功能测试场景设计
2.3.1单交易测试业务场景确定
简单解释:单个交易场景压力测试,并发50个用户,执行10分钟的交易操作,获得交易的响应时间和交易成功率数据是否符合性能指标要求。
测试目的:这种测试是为了检查应用程序是否存在代码上的性能问题(包括内存泄漏、连接池不足等问题)。
交易名称 |
交易路径 |
CRM系统并发多用户登录 |
登录至用户首页 |
客户管理 |
对公客户视图 |
客户管理 |
对私客户视图 |
客户资源管理 |
客户分配 |
客户管理 |
客户群管理-点击客户群管理 |
客户管理 |
集团客户管理-客户管理集团视图 |
客户管理 |
点击集团客户管理 |
客户管理 |
重点客户管理 |
客户经理管理 |
客户经理业务全景视图 |
首页 |
客户名称查询 |
首页 |
证件号码查询 |
首页 |
产品名称查询 |
2.4测试方法简要描述
在CRM系统应用端采用LoadRunner HTTP协议模拟真实的多用户操作,发起登录交易,模拟真实压力。
本次测试采用HP公司的LoadRunner作为压力发起的工具。版本为LR9.5。
LoadRunner是一种预测系统行为和性能的工业标准级负载测试工具。通过模拟虚拟用户实施并发负载及实时性能监测的方式来确认和查找问题。LoadRunner通过模拟实际用户的操作行为和实行实时性能监测,来帮助用户更快的查找和发现问题。
3. 测试环境
3.1. 测试环境介绍
- 压力发起机:(IP:66.235.97.85)
- DB2和WAS安装在同一台应用服务器:(IP:66.235.97.52)
3.2. 测试环境机器配置表
主 机 |
数量 |
型号 |
资 源 |
操作系统 |
CRM应用服务器(WAS) |
1 |
IBM X3850 |
8C8G |
LINUX |
CRM数据库服务器(DB2) |
1 |
IBM X3850 |
8C8G |
LINUX |
Loadrunner 控制器 |
1 |
PC |
2C4G |
WindowsXP |
磁盘 |
1 |
|
|
未用磁盘空间 |
4. 项目时间表
任务 |
负责人 |
工期(天) |
开始时间 |
结束时间 |
5. 压力测试通过标准
系统平均响应时间通过标准如下:
- 单个用户迭代运行100次,平均响应时间小于2秒
- 10个并发 平均响应时间小于3秒
- 20个并发 平均响应时间小于5秒
- 50个并发 平均响应时间小于8秒
- 100个并发 平均响应时间小于10秒
系统资源占用情况通过标准:
- CPU占用<=75%,内存占用<=80%,
- 交易成功率>=99%
- TPS>=2笔/秒
5.1. 单个场景测试
5.1.1. 单交易负载测试结果(50用户并发)
交易场景名称 |
交易步骤 |
平均响应时间 |
CPU占用 |
内存占用 |
交易成功率 |
CRM系统多用户并发登录 |
登录至用户首页 |
6.667 |
10% |
33% |
100% |
客户管理 |
对公客户视图 |
1.912 |
9% |
32% |
100% |
客户管理 |
对私客户视图 |
4.056 |
11% |
32% |
100% |
客户资源管理 |
客户分配 |
7.541 |
28% |
33% |
100% |
客户管理 |
客户群管理-点击客户群管理 |
6.459 |
28% |
32% |
100% |
客户管理 |
点击集团客户管理 |
5.605 |
4% |
35 |
100% |
客户管理 |
点击普通客户群视图 |
7.347 |
22% |
34% |
100% |
客户管理 |
点击重点客户管理 |
7.980 |
13% |
34% |
100% |
客户管理 |
点击客户视图 |
5.456 |
13% |
34% |
100% |
客户管理 |
点击客户概览信息 |
4.457 |
13% |
34% |
100% |
客户经理管理 |
客户经理业务全景视图(包含3个页面场景,每个场景平均7S) |
22.115 |
15% |
33% |
100% |
首页 |
客户名称查询 |
6.887 |
8% |
33% |
100% |
首页 |
证件号码查询 |
3.668 |
15% |
33% |
100% |
首页 |
产品名称查询 |
7.298 |
7% |
33% |
100% |
测试结果分析:
经过50个用户并发测试,CRM系统的主要场景平均响应时间完全满足当初系统设计的要求(50个用户并发,平均响应时间小于8S)。
5.2. 混合场景负载测试
混合场景策略:将所有的模块场景组合一起同时运行,完全模拟用户的真实情况进行压力测试,看看系统最大支持多少用户的并发,达到多少用户并发服务器性能开始下降。
5.2.1. 混合场景测试结果
交易场景平均响应时间如下:
1个用户,10个用户,20个用户,50个用户,100个用户并发运行12小时,各场景平均响应时间的测试结果如下:
交易场景名称 |
1个用户平均响应时间(S) |
10个用户平均响应时间(S) |
20个用户平均响应时间(S) |
50个用户平均响应时间(S) |
100个用户平均响应时间(S) |
首页 |
0.367 |
1.38 |
3.369 |
6.532 |
11.083 |
客户概览信息 |
1 |
1.978 |
3.856 |
5.432 |
10.532 |
客户群管理 |
0.541 |
1.093 |
3.857 |
8.523 |
10.038 |
营销团队维护 |
0.193 |
0.699 |
1.291 |
4.821 |
9.762 |
客户群管理 |
0.183 |
0.628 |
1.188 |
4.58 |
9.744 |
客户基础信息 |
0.246 |
0.796 |
1.906 |
4.193 |
9.675 |
用户管理 |
0.181 |
0.619 |
1.101 |
4.535 |
9.489 |
客户价值管理 |
0.954 |
1.778 |
4.024 |
7.798 |
9.452 |
对私客户视图 |
1.561 |
1.986 |
4.08 |
7.682 |
9.375 |
客户经理全景视图 |
0.691 |
1.869 |
4.534 |
6.76 |
9.358 |
我的营销活动 |
0.97 |
1.959 |
3.789 |
6.786 |
9.232 |
客户概览 |
0.239 |
0.789 |
1.858 |
4.879 |
9.164 |
营销商机创建 |
0.253 |
0.838 |
1.907 |
5.012 |
9.082 |
外部数据导入 |
0.199 |
0.701 |
1.38 |
5.395 |
9.028 |
客户查询 |
0.539 |
1.485 |
3.749 |
7.998 |
8.998 |
登录 |
1.328 |
1.532 |
4.034 |
7.238 |
8.954 |
营销活动创建 |
0.181 |
0.609 |
1.094 |
4.433 |
8.835 |
客户名称查询 |
0.531 |
1.485 |
4.987 |
6.768 |
8.642 |
客户资源管理 |
0.841 |
1.123 |
3.135 |
7.63 |
8.64 |
重点客户管理 |
0.222 |
0.753 |
1.58 |
4.982 |
8.623 |
日志管理 |
0.877 |
1.523 |
3.084 |
6.762 |
8.541 |
营销产品设置 |
0.285 |
1.004 |
2.051 |
5.672 |
8.532 |
客户流失预警 |
0.276 |
0.936 |
2.022 |
5.176 |
8.532 |
营销活动审批 |
0.185 |
0.647 |
1.232 |
4.768 |
8.532 |
商机销售漏斗 |
0.18 |
0.609 |
1.084 |
4.362 |
8.394 |
重点客户管理 |
0.203 |
0.728 |
1.391 |
4.272 |
8.186 |
我的营销商机 |
0.267 |
0.914 |
1.922 |
5.493 |
8.129 |
客户综合评级 |
0.315 |
1.147 |
2.35 |
5.078 |
8.091 |
快速查询 |
0.221 |
0.751 |
1.428 |
4.621 |
8.072 |
客户分配 |
0.753 |
1.986 |
4.987 |
6.989 |
7.987 |
客户忠诚度 |
0.35 |
1.343 |
3.048 |
7.038 |
7.98 |
集团客户管理 |
0.234 |
0.759 |
1.62 |
4.325 |
7.867 |
客户主观评级 |
0.327 |
1.251 |
2.447 |
4.526 |
7.452 |
客户风险评估 |
0.18 |
0.6 |
0.984 |
3.327 |
7.389 |
客户积分管理 |
0.168 |
0.589 |
0.87 |
3.845 |
7.02 |
客户移交 |
0.311 |
1.105 |
2.121 |
4.98 |
6.769 |
营销商机审批 |
0.163 |
0.584 |
0.85 |
3.59 |
6.759 |
菜单项管理 |
0.346 |
1.298 |
2.685 |
5.436 |
6.598 |
布局设定 |
0.234 |
0.77 |
1.841 |
4.574 |
6.538 |
客户贡献度 |
0.159 |
0.582 |
0.838 |
3.519 |
6.439 |
客户经理信息查询 |
0.157 |
0.577 |
0.822 |
3.514 |
6.135 |
客户关联信息 |
0.154 |
0.562 |
0.814 |
3.444 |
5.995 |
客户经理业绩分析 |
0.15 |
0.558 |
0.797 |
3.435 |
5.685 |
客户视图 |
0.145 |
0.544 |
0.745 |
3.316 |
5.651 |
报表授权 |
0.143 |
0.518 |
0.743 |
3.298 |
5.453 |
客户生命周期 |
0.141 |
0.508 |
0.705 |
3.05 |
5.413 |
客户关怀管理 |
0.133 |
0.506 |
0.678 |
2.987 |
5.404 |
角色功能授权 |
0.133 |
0.5 |
0.669 |
2.879 |
5.342 |
客户概览信息 |
0.13 |
0.482 |
0.661 |
2.876 |
4.893 |
客户财务信息 |
0.129 |
0.479 |
0.655 |
2.687 |
4.836 |
信息提醒管理 |
0.123 |
0.423 |
0.629 |
2.427 |
4.191 |
客户退回 |
0.12 |
0.42 |
0.625 |
2.412 |
4.147 |
公告信息 |
0.12 |
0.418 |
0.606 |
2.365 |
4.145 |
工作日历 |
0.118 |
0.418 |
0.597 |
2.327 |
4.132 |
营销任务制定 |
0.114 |
0.404 |
0.586 |
2.284 |
4.06 |
数据字典管理 |
0.112 |
0.401 |
0.574 |
2.268 |
3.965 |
客户合并 |
0.107 |
0.399 |
0.571 |
2.258 |
3.794 |
通讯推送管理 |
0.105 |
0.386 |
0.547 |
2.244 |
3.501 |
报表查询 |
0.104 |
0.381 |
0.538 |
2.149 |
3.234 |
客户事件提醒 |
0.103 |
0.368 |
0.53 |
2.05 |
3.231 |
客户投诉管理 |
0.103 |
0.363 |
0.515 |
2.05 |
2.985 |
营销综合统计 |
0.101 |
0.353 |
0.507 |
2.005 |
2.876 |
客户管理菜单 |
0.1 |
0.353 |
0.506 |
2.004 |
2.861 |
营销产品管理查询 |
0.099 |
0.351 |
0.505 |
1.981 |
2.858 |
角色管理 |
0.097 |
0.347 |
0.497 |
1.922 |
2.838 |
指标管理 |
0.096 |
0.345 |
0.484 |
1.898 |
2.814 |
客户认领 |
0.089 |
0.341 |
0.484 |
1.828 |
2.807 |
客户管理 |
0.089 |
0.34 |
0.475 |
1.786 |
2.778 |
营销计划管理 |
0.089 |
0.33 |
0.437 |
1.777 |
2.297 |
风险客户管理 |
0.088 |
0.33 |
0.435 |
1.708 |
2.257 |
阳光信贷客户管理 |
0.086 |
0.33 |
0.433 |
1.7 |
2.22 |
客户关系图 |
0.084 |
0.328 |
0.416 |
1.653 |
2.197 |
任务管理 |
0.084 |
0.325 |
0.4 |
1.587 |
2.172 |
产品助手查询 |
0.08 |
0.315 |
0.383 |
1.551 |
2.044 |
片区管理 |
0.08 |
0.299 |
0.382 |
1.54 |
2.04 |
机构汇总 |
0.079 |
0.296 |
0.379 |
1.538 |
1.953 |
营销活动统计 |
0.077 |
0.293 |
0.378 |
1.457 |
1.7 |
部门管理 |
0.072 |
0.287 |
0.372 |
1.349 |
1.485 |
个人汇总 |
0.071 |
0.287 |
0.353 |
1.327 |
1.441 |
渠道信息管理 |
0.071 |
0.286 |
0.348 |
1.295 |
1.346 |
知识库 |
0.071 |
0.276 |
0.345 |
1.268 |
1.136 |
客户产品导入 |
0.07 |
0.27 |
0.343 |
1.243 |
1.134 |
税务数据导入 |
0.069 |
0.238 |
0.331 |
1.177 |
0.705 |
营销活动跟踪 |
0.069 |
0.237 |
0.329 |
1.16 |
0.615 |
报表配置 |
0.067 |
0.221 |
0.322 |
1.084 |
0.555 |
电费数据导入 |
0.067 |
0.217 |
0.322 |
0.927 |
0.547 |
营销模板管理 |
0.066 |
0.21 |
0.319 |
0.908 |
0.518 |
在线用户监控 |
0.063 |
0.208 |
0.299 |
0.873 |
0.484 |
水费数据导入 |
0.063 |
0.196 |
0.295 |
0.749 |
0.467 |
潜在客户管理 |
0.054 |
0.158 |
0.292 |
0.692 |
0.415 |
操作日志 |
0.05 |
0.157 |
0.28 |
0.669 |
0.404 |
机构管理 |
0.049 |
0.155 |
0.241 |
0.505 |
0.389 |
系统管理 |
0.044 |
0.124 |
0.233 |
0.413 |
0.349 |
金融工具箱 |
0.038 |
0.113 |
0.14 |
0.36 |
0.348 |
客户视图展示 |
0.016 |
0.032 |
0.028 |
0.099 |
0.121 |
结果分析:
1个用户,10个用户,20个用户,50个用户,100个用户并发下,大部分事务的响应时间都在性能测试标准之内,并且压力过程中没有失败的事务,也未发现JVM泄漏、连接池不足等问题,基本上达到了需求要求的性能指标。
交易场景资源使用情况如下:
1个用户,10个用户,20个用户,50个用户,100个用户并发运行12小时,各场景资源使用情况和TPS,交易成功率的测试结果如下:
并发用户数量 |
TPS |
交易成功率 |
CPU占用 |
MEM占用 |
1 |
1.2 |
100% |
2% |
18% |
10 |
2.8 |
100% |
5% |
22% |
20 |
3.1 |
100% |
6% |
25% |
50 |
3.85 |
100% |
6% |
30% |
100 |
4.6 |
99.9% |
15% |
33% |
结果分析:
通过以上数据分析,TPS,交易成功率,资源使用情况都符合性能指标要求。基本上达到了需求要求的性能指标。运行过程中没有发现内存泄漏、连建池不足等问题。
5.3. 稳定性测试
主要考察系统在一定的负载情况下,系统是否一直正常运行(24小时),系统是否中途会宕机或者内存泄漏的现象。
并发100个用户CRM所有主要场景混合压力测试,运行24小时,最终结果正常,没有发现内存泄漏和服务器死机现象,CPU使用,内存占用使用都在正常范围内。
6. 优化过程描述
经过3轮的稳定性测试,通过稳定性测试发现并解决问题如下:
1、 问题描述:部分场景响应时间慢
解决方案:通过增加数据库索引、重写部分前台SQL;
2、 问题描述:并发10个用户运行5分钟就连建池不足
解决方案:调整WAS相关参数,解决代码中连建池未释放缺陷;
3、 问题描述:并发50个用户运行20分钟就内存泄漏
解决方案:分析HEAPDUMP文件,找出问题代码并解决;
4、 问题描述:系统日志中的错误信息
解决方案:分析系统日志的错误信息,并解决代码问题;
5、 问题描述:并发100个用户运行12个小时,日志存在有PAGESIZE不足
解决方案:调整DB2的PAGESIZE设置;
7. 测试结论和建议
通过本次性能测试,在测试环境下,WAS单节点能稳定支持100个并发用户使用系统。按照经验,100个并发用户约等于800~1000个用户使用,按照目前兴化农商行的用户数600多人,已经完全满足,后续省联社版本,可以采取4台PC-SERVER(16C32G),做WAS集群,每台部署6个节点,按照单节点支持800~1000用户使用,预计可以支持19200~24000人同时使用系统,基本满足当时的系统设计,后续随着用户量增加还可以通过增加PC-SERVER集群,来支持系统的灵活扩容。