性能测试:通过一个案例(等待锁超时)告诉你,性能到底要不要熟悉业务逻辑?
前几天,分享了《一篇文章告诉你怎么做性能测试》一文,收到一些朋友的反馈;
有些朋友说,做性能,不需要了解业务逻辑,直接按接口文档,或者抓包写压测接口的脚本,然后压测、监控、分析、调优、回归;
我觉得这样的回答,可能是他们没吃过不熟悉业务逻辑的亏;
最近压测的时候,遇到一个等待锁超时的问题,就是因为不熟悉业务逻辑造成设计的脚本不合理,下面和大家分享一下:
由于是临时任务、时间紧迫、对应的开发又出差了,他远程信誓旦旦给我说直接压,根本不给我熟悉业务逻辑的机会,赶鸭子上架一样;
请求参数用户名是变化的,做了参数化,由于各种客观因素,参数数据只准备了100个,参数取值策略是唯一、用完后循环;
当压一会儿后,就会出现下面的错:等待锁超时
经过分析定位(过程暂时略过,本文重点是说明熟悉业务逻辑的重要性),问题的原因是如果相同用户反复请求,会出现等待锁超时,因为相同用户从第二次请求开始,都是update操作,会锁行数据,其余更新相同数据的请求就等待,最终出现超时,经和开发沟通,确实如此,且这种场景的概率是很低的,随后协调资源,重新调整了压测脚本的参数数据量,相同用户只发送一次请求,重新压测,未出现此问题;
所以,压测前熟悉业务逻辑是非常有必要的,除了可以设计合理的性能脚本,还可以在分析定位的时候,方便我们定位代码逻辑问题。
__EOF__
本文作者:持之以恒(韧)
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等
面试必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等
面试必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!