翻手为云覆手雨,天地由我一手掌。逍遥不认仙与魔,总归由我性张扬。
TPS从300笔/S到5500笔/S的测试分析优化之路
上一篇 /
下一篇 2017-12-12 10:30:11
/ 个人分类:性能测试技术
TPS从300笔/S到5500笔/S的测试分析优化之路 郭柏雅51Testing软件测试网
{0a;r2Y1x%rD?
问题总结回顾51Testing软件测试网H5Ia9p%FZ
1. 每一次攻坚性能故障问题都是一次精喜的探险,需要清醒头脑、大局观的分析意识、扎实的专业基础等更要凝结你的意志和自信心,因为这是一个艰苦而有趣的过程。本文案例由发生至解决,通过业务逻辑的认知、测试测试环境的了解、测试脚本的准确开发、各个环境的监控分析与优化,操作系统与基础硬件设备知识的认知与优化、测试报告的编写等,从基础软件优化到架构代码优化以及测试脚本的改良,终于柳暗花明,这种喜悦是难以言表的。51Testing软件测试网:^6B5A.W%C.sw?p x
2. 纸上得来终觉浅,绝知此事要躬行,一切性能测试与问题的分析优化,不是看完一篇文章做完几个项目就能提升,需要持续兴趣吃苦的煎熬来不断提炼优化自己的知识与技能才能慢慢的在博大精深的性能世界里认知了解游趟。51Testing软件测试网Z(x4tF8If)rw
故事案例介绍
9i:w/x;]3M VOXzDl0 故事原因:某知名城商行代支付管理系统,因上线一段时间后客户量剧增,在生产运行过程中偶尔会出现资源争用现象,客户领导担心目前环境无法满足业务量日益增长发展趋势,得此机会我过去支持测试。
#S9gE5x-\;D_-~0测试实施场景
Z\P`Tl0@+u0过去后,客户开发人员很耐心的帮我讲解了业务逻辑、技术框架等以及环境情况,也介绍了目前情况,在高并发下TPS大概在300笔/S,而且上下波动很大,目前尚未查出具体问题原因,希望能在最短时间内帮忙定位出来,不然已经临近上线,还好长期在金融行业做性能测试,能短时间内理清问题的来龙去脉,也最快的时间内切入到团队中。因每个人写脚本、参数化方式风格不一样,我也看了之前脚本编写很规范,但是每个人对脚本的使用方式有点差异性,我花了点时间重新修改编写LR脚本、shell脚本,估计是运气好或者有相关项目经验,在压力测试过程中,就发现问题并提供解决方案,通过描述问题原理以及操作系统工作原理、交易脚本使用原理等跟客户开发人员交流后,就这样客户也在最短时间内从陌生到认可,并得到大力支持,运气来了,做事就是给力。51Testing软件测试网2j+T8B:WV+FS Oy$S
这次接口实时交易测试数据准备相对比较简单,不用准备存量的业务数据,只需把对应的业务脚本T0交易的脚本参数化好,确保高并发下不出现业务数据重复即可,而针对T0插入到过程表的数据,通过使用verify交易进行时时查询处理到目标表,具体脚本如下:
A$]Ho7Cx Iif01、 实时交易都是接口报文,分为socket协议脚本T0交易和http协议脚本verify交易,其中HTTP协议脚本是对T0的socket脚本插入到过程表数据进行查询后更新然后插入到目标表。51Testing软件测试网W:m-QI)TMW$PF*f+{
2、 批量脚本,需要每秒钟传输一个文本文件1.5M的txt文件到应用服务器指定目录下,让后台去处理。
+R*@)Hg
V2AHRU0 Socket协议脚本相对比较简单,类似如下:51Testing软件测试网F@,T ]
bP*Li
V {7t@*CG(S)ri X0 测试过程问题分析51Testing软件测试网X3q w3B
R)r3f"x
B-C
优化前:TPS只有304笔/秒,而且不稳定,在并发到一定时间后,TPS就掉下去,而且交易成功率80%不到,随时间推移交易成功率也会持续降低,没办法满足预期指标要求550笔/S,交易成功率99%,优化前测试结果如下图:
2X(|n%l1uw(vQz0