案例①:
项目:电商系统
需求:支付确认接口的性能测试
工具:loadrunner11
方案:多个订单号(参数化),200并发30分钟
生成结果:成功事务200,失败事务5W+
结果分析:与开发沟通,实时查看日志发现问题方向是转义问题,但是我单独执行脚本返回结果为成功,连续跑几次结果也为成功,所以排除转义问题以及参数化问题;接着查看controller生成的日志,报-26612:500错误,从服务器中查找问题,让开发重启数据库服务器,问题就解决了。问题就是压性能时,CALL数据库,数据还没关闭完成,接着继续压性能导致的问题,应该是操作时压了几次,间隔时间短导致的。
虽然解决了问题,但还是延伸出一个问题一直困惑着我,为什么数据库数据没及时关闭,形成的结果是这样;导致第一轮200个事务都成功,接着的事务全都失败,压了几次都是第一轮第一轮成功,我加大并发数500以及800进行尝试,也是第一轮500个以及800个事务成功,其余事务全部失败。
我思考的方向有四个:
①脚本问题(只是简单的接口请求以及参数化,可能性非常小)
②LR跑性能的规则问题(可能性会有)
③项目本身的逻辑问题(也会有一定的可能性)
④服务器问题(本人对服务器这块不怎么了解)
这个只是我的个人见解,欢迎大家一起讨论