测试结果分析完成后,即可进行性能问题确定与优化操作。通常情况下,系统出现性能问题的表象特征有以下几种:

1.响应时间平稳但较长

测试一开始,响应时间就很长,即使减少线程数量,减少负载,场景快执行结束,响应时间仍然很长。

2.响应时间逐步变长

测试过程中,负载不变,但运行时间越长,响应时间越长,直至出现很多错误。

3.响应时间随着负载变化而变化

负载增加,响应时间变长,负载减少,响应时间下降,资源使用率也下降。

4.数据积累导致锁定

起初运行正常,但数据量积攒到一定量,立刻出现错误,无法消除,只能重启系统。

5.稳定性差

特定场景或运行周期很长以后,突然出现错误,系统运行缓慢。
 

Jmeter性能测试系列

以上几种是笔者在性能测试过程中碰到的几种性能有问题的特征。一旦出现上述几种情况,基本可以判定系统存在性能问题。接下来即是针对具体问题具体分析,从而发现问题并提出解决办法。

响应时间长,系统越来越慢,出现业务错误,通常由以下几种情况造成:

(1)物理内存资源不足

(2)内存泄漏

(3)资源争用

(4)外部系统交互

(5)业务失败时频繁重试,无终止状态

(6)中间件配置不合理

(7)数据库连接设置不合理

(8)进程/线程设计错误

分析过程中,假设每一个猜想是正确的,然后逐一排除。

结合上述问题,本次性能测试过程中随机浏览购买商品时,出现了填写收货地址时间变长、数据库错误等问题,某些指标未能满足预先设定,故本次性能测试不通过。

性能测试是个严谨的推理过程,一切以数据说话,在没有明确证据证明系统存在性能问题的时候,千万不可随意调整代码、配置、甚至是架构。因为一旦调整了,就必须重新开展功能及性能回归测试,而且可能影响现网业务。

性能调优后,需做功能及性能的回归测试,从而保证调优活动正确完成,且未造成额外的影响。