- 测试范围
1.1 测试内容
本次性能测试包括以下3个场景,4个接口:
- 场景1:客户端接种率统计
- 场景2:客户端上传免疫史
- 场景3:客户端提交数字化门诊接口、客户端确认接种接口
通过对接口设置不同的并发数,观察其响应时间、TPS、出错率等指标是否符合预期。
1.2 名词术语约定
1.2.1 常用名词释义
- 负载:模拟业务操作对服务器造成压力的过程,比如模拟100个用户进行接口调用。
- 性能测试:模拟用户负载来测试系统在负载情况下,系统的响应时间、吞吐量等指标是否满足性能要求。
- 压力测试:在一定的压力环境下,通过高负载的手段来使服务器资源处于极限状况,测试系统在极限状态下长时间运行是否稳定。
- 并发数: 同一时间同时向服务器提交请求的数量。
- TPS:服务器每秒处理事务数。
1.2.2 测试报告中参数释义
名词 | 解释 |
Label | 各个模拟测试的名称 |
#Samples | 各个测试的样本总数 |
Average | 每个请求的平均响应时间 |
Median | 中值,即50%请求的平均响应时间 |
90%Line | 90%请求的响应时间 |
Min | 最小响应时间 |
Max | 最大的响应时间 |
Error% | 错误响应的概率。即无法响应和响应结果不符合预期的概率 |
表格 1-2-2-1 测试报告参数释义
1.3 测试工具及环境
1.3.1测试环境软硬件配置
服务器硬件配置按照南京资源配置文件原始配置执行。
服务器软件配置按照儿童预防接种最小化安装配置执行。
1.3.2 测试工具
测试工具:JMeter
服务器性能数据监控工具:Zabbix
- 测试数据
2.1 业务性能指标
性能指标基准来源于我司业务部门提出的儿童预防接种集成项目性能需求基准。
业务名称 | Average | Error% |
接种率统计 | <1000ms | 0.05% |
客户端打针 | <500ms | 0.05% |
客户端数字化门诊上传、确认接种 | <800ms | 0.05% |
表格 2-1-1 性能指标
2.2 场景设计
场景设计是组织虚拟用户、组合业务种类到一个测试单元,根据测试模型和测试目标,整理出如表所示测试场景;分析性能变化趋势、分析性能问题、帮助定容定量。
测试内容 | 业务名称 | 场景编号 | 请求数据量 | 请求间隔 |
压力测试 | 接种率统计 | S-101 | 1.5W | 10min |
S-102 | 15W | 10min | ||
S-103 | 150W | 10min |
表格 2-2-1 接种率统计业务场景设计
测试内容 | 业务名称 | 场景编号 | 并发数 | 请求间隔 |
负载测试 | 客户端打针 | S-201 | 100 | 15s |
S-202 | 200 | 15s | ||
S-203 | 300 | 15s | ||
S-204 | 400 | 15s | ||
S-205 | 500 | 15s | ||
数字化门诊接种、确认接种 | S-301 | 100 | 15s | |
S-302 | 200 | 15s | ||
S-303 | 300 | 15s | ||
S-304 | 400 | 15s | ||
S-305 | 500 | 15s |
表格 1-2-2 日常应用接口业务场景设计
- 测试结果
3.1接种率统计
(1)聚合报告
场景编号 | # Samples | Average | Median | 90% Line | 95% Line | 99% Line | Min | Max | Error % |
S-101 | 200 | 55.303 | 67.086 | 72.094 | 91.765 | 600.01 | 21.042 | 600.015 | 50.30% |
S-102 | 200 | 74.09 | 509.00 | 477.037 | 600.045 | 600.08 | 0.348 | 600.078 | 60.65% |
S-103 | 200 | 102.00 | 110.00 | 299.155 | 420.156 | 600.08 | 0.058 | 600.005 | 65.55% |
表格 3-1-1 接种率统计聚合报告
(蓝色字体达标,红色字体不达标,超过600S为超时数据)
(2)平均响应时间对比
图表 3-1-2 接种率统计平均响应时间对比
(3)响应错误率对比
图表 3-1-3 接种率统计响应错误率对比
(4)TPS趋势图
从S-101 TPS趋势图可以看出(S102,S103与S101趋势一致,),在执行2小时,服务之后后台大数据统计任务因资源不足关闭。
图表 3-1-4 接种率统计TPS趋势图
3.2客户端打针
(1)聚合报告
场景编号 | # Samples | Average | Median | 90% Line | 95% Line | 99% Line | Min | Max | Error % |
S-201 | 500000 | 0.284 | 0.251 | 0.282 | 0.292 | 0.338 | 0.038 | 22.396 | 0.03% |
S-202 | 500000 | 0.484 | 0.485 | 0.54 | 0.556 | 0.648 | 0.042 | 30.39 | 0.05% |
S-203 | 500000 | 1.52 | 0.711 | 0.823 | 2.559 | 21.521 | 0.043 | 30.775 | 4.41% |
S-204 | 500000 | 1.555 | 1.955 | 1.082 | 2 | 21.702 | 0.038 | 30.777 | 3.50% |
S-205 | 500000 | 1.658 | 1.199 | 2.239 | 4.178 | 9.174 | 0.043 | 30.991 | 5.13% |
表格3-2-1 客户端打针聚合报告
(蓝色字体达标,红色字体不达标)
(2)平均响应时间对比
图表 3-2-2 客户端打针平均响应时间对比
(3)错误率对比
图表 3-2-3 客户端打针错误率对比
3.3数字化门诊接种、确认接种
(1)聚合报告
场景编号 | # Samples | Average | Median | 90% Line | 95% Line | 99% Line | Min | Max | Error % |
S-301 | 500000 | 0.401 | 0.346 | 0.394 | 0.417 | 3.296 | 0.067 | 9.39 | 0.02% |
S-302 | 500000 | 0.664 | 0.652 | 0.718 | 0.739 | 1.52 | 0.062 | 58.466 | 0.02% |
S-303 | 500000 | 2.114 | 0.961 | 1.752 | 3.145 | 21.554 | 0.067 | 58.937 | 5.61% |
S-304 | 500000 | 2.306 | 1.258 | 1.873 | 3.121 | 21.683 | 0.063 | 47.06 | 5.92% |
S-305 | 500000 | 2.45 | 1.603 | 4.27 | 8.252 | 25.443 | 0.061 | 59.548 | 6.55% |
表格 3-3-1数字化门诊接种、确认接种聚合报告
(2)平均响应速度对比
图表 3-3-2数字化门诊接种及确认接种平均响应速度对比
- 错误率对比
图表 3-3-3数字化门诊接种及确认接种错误率对比
- 系统风险
当前环境硬件配置较低,服务器数量少,分布式系统及数据库资源配置吃紧,软件应用服务每组仅允许配置1-2个,会导致以下的问题:
- 受制于分布式系统集群资源,并行计算能力低,大数据计算无法完成。如接种率统计。
hadoop集群服务时的内存占用如下:
目前三台集群无法支撑实际工作中频繁的统计任务。
- 受制于数据库及应用服务的资源数,超过200并发调用接口后,无法达到基本的响应要求,且错误率高,影响用户体验。
当前2台应用服务器的内存占用情况如下。
- 系统容灾能力差。
- 应用服务每组部署1-2个,当其中一个服务发生异常,就会导致系统无法正常使用。
- Haddop集群只有3台,要求只有3台,当一台服务器发生异常,会导致整个集群无法使用。
- MYSQL仅有一台备份,日常工作采用读写分离,主读从写。当一台服务器发生异常,就会导致系统无法正常使用。
Redis 服务器内存量资源小(主30G备20G),在已还原当前南京儿童数据(2012年至今)的情况下,内存已占用80%以上,无法支持后续增加的数据。
备注:性能测试在局域网进行,不与省数据进行交换,与生产环境存在差异,据我司以往测试结果,省市交换服务受内存库性能、交换服务器性能及网络情况影响较大。
- 资源配置完善建议
- 应用服务器追加4台,部署2套应用,增加服务集群,提高服务群的速度和健壮性,增强容灾能力。
- Redis内存库内存增加到50G以上,支持高速度数据交换,增加1台备用服务器,增强容灾能力。
- Hadoop增加2-3台从服务器,支持并行大数据计算,增强容灾能力。
- MYSQL增加2台从服务器,增强容灾能力。
- 省市交换数据服务器未参与测试,但是参考内部测试情况,建议增加2台服务器。
以上资源增加建议参考无锡市资源配置。