接口性能测试报告(一)
第1章 概述
1.1 编写目的
编写该测试总结主要有以下几个目的:
1、 通过对性能的测试结果的分析,得到对网站性能的评估;
2、 分析测试的过程、为网站持续改进的质量过程提供参考。
1.2 项目背景
本项目是应开发中心的要求,对xx网站所涉及的关键/接口性能的情况进行压力测试与分析,以期辅助技术支持人员对服务器进行性能调优。
1.3测试对象
1.4测试范围
针对上述接口进行压力测试,本次测试仅对该地址访问产生的数据交互做为测试依据,并且由于时间紧,只测试以上每个接口在模拟真实用户情况下的并发数能力。
第2章 测试活动
2.1 测试目的
对上述接口进行压力测试,分析其真正的负载能力及并发能力,从而为技术人员对服务器性能调优提供参考。
2.2 测试组织架构
2.3 测试环境
2.4 测试工具
loadrunner
nmon
2.5 测试过程
从xxx至xxx展开对上述接口的并发数,事务响应时间等指标进行压力测试,性能分析与服务器调优,其间进行了多次测试,最终选取代表性的测试场景作为数据来原依据。
2.6 测试场景
场景一:城市字母列表接口并发能力测试
分别设置200,300个虚拟用户,每个虚拟用户里面设置集合点,每1秒增加2个用户,所有的虚拟用户和人加载完毕后,持续向服务器发起请求。稳定运行30分钟。(本次测试接近真实用户行为)结果图如下:
200并发用户,性能稳定,图略
300并发用户,事务平均响应时间为1.925,事务平均响应时间与每秒请求数合并图如下:
场景二:城市推荐景点接口测试
分别设置200,300个虚拟用户,每个虚拟用户里面设置集合点,每1秒增加2个用户,所有的虚拟用户和人加载完毕后,持续向服务器发起请求。稳定运行30分钟。(本次测试接近真实用户行为)结果图如下:
200并发用户,性能稳定,图略
300并发用户,事务平均响应时间为0.158,性能稳定,图略
此时服务器资源,如图:
内存资源使用图如下:
场景三:取varnish中图片接口测试
分别设置200,300,600,800,1000个虚拟用户,每个虚拟用户里面设置集合点,每1秒增加2个用户,所有的虚拟用户和人加载完毕后,持续向服务器发起请求。稳定运行30分钟。(本次测试接近真实用户行为)结果图如下:
200,300,600,800并发用户,性能稳定,图略
1000并发用户,运行稳定,平均事务响应时间为最大为1.664,此时平次事务请求数为108.325。参照下图:
对应的服务器资源使用情况监控图请参照下图:
内存使用情况,总体占用空间不大,如下图:
场景四:图吧转坐标接口测试
分别设置300,500个虚拟用户,每个虚拟用户里面设置集合点,每1秒增加2个用户,所有的虚拟用户和人加载完毕后,持续向服务器发起请求。稳定运行30分钟。(本次测试接近真实用户行为,由于会影响到线上服务器,所以没有继续加大用户并发量) 结果图如下:
300并发用户,性能稳定,图略
500并发用户,事务平均响应时间为0.678,性能稳定,平均事务响应时间与TPS合并图如下
此时服务器资源使用情况如下图:
内存使用情况如下图:
第3章 测试结果分析
3.1 测试结果分析
业务性能指标统计分析结果:
业务名称 |
并发数 |
业务平均响应时间(秒) |
业务成功 次数 |
业务失败次数 |
业务失败率(%) |
平均TPS(个) |
城市字母列表接口。 |
300 |
1.925 |
97736 |
192 |
0.19% |
23.102 |
城市推荐景点。 |
300 |
0.158 |
377,676 |
111 |
0.02% |
89.486 |
取varnish中图片(以反应最慢的图片值为参考) |
1000 |
1.644 |
310,244 |
0 |
0 |
54.189 |
图吧转坐标, |
500 |
0.678 |
136.222 |
0 |
0 |
58.92 |
从表中结果可以看出,城市字母列表接口与城市推荐景点两个接口的并发量在300的情况下错误率比较小,由于该业务与数据库有关系,性能比其它两个结果要低不少,经开发讨论此值也应该可以满足目前我们的业务需求。
资源监控
序号 |
接口名称 |
CPU使用率 |
内存 |
备注(参照文件) |
1 |
城市字母列表接口。 |
42.4% |
无溢出 |
leador241_131114_1505.xlsx |
2 |
城市推荐景点。 |
7.5% |
无溢出 |
leador241_131114_1421.xlsx |
3 |
取varnish中图片。 |
5.8% |
无溢出 |
leador-web-220-113-2-91_131115_1005.xlsx |
4 |
图吧转坐标, |
3.1% |
无溢出 |
leador241_131114_1651.xlsx |
第4章 测试结论与建议
经过反反复复多次测试,在先后调整测试服务器openfiles, Max user Process, Max user Thread, 以及sql连接数等服务器参数后,在服务器CPU占用合理,内存占用合理的情况下最终得出的上述结果,
城市字母列表接口与城市推荐景点两个接口的并发量在300的情况下错误率比较小,由于该业务与数据库有关系,所以经过计论认为可以满足目前的现实需求。
取varnish中图片和图吧转坐标这两个接口的并发能力较强,分别为1000与500,可以满足我们目前的业务需求。
由于我们测试环境主数据库是与tomcat安装在一台服务器上的,直接会影响到服务器I/O指标(上面服务器监控图中I/O峰值都比较高,当然与并发用户请求有关),所以建议我们对数据库再进行优化。其它方面的性能参数大家可以看附录文件。
另外我们还有几个接口与线上服务器有关,以后测试环境具备测试条件后再进行测试,如果有时间我们还可以从网站的其它TPS,HPS等指标,从数据库的性能角度做针对性的测试,这样就会得到一个比较全面的测试结果。