性能测试思路
性能测试核心步骤-性能问题分析
核心步骤
确定关键业务、关键路径
我们做负载测试的时候,通常会寻找关键任务,也就是找到用户最常用的功能模块进行负载测试。
比如,一个在线教育项目:首页、登录、注册、购买教育产品、vip会员购买、在线播放、提交试题就是关键任务,我们只需要对这些接口进行负载测试就可以。
确定测试的关键数据
对于并发用户数,也就是压测设置的并发量,我们需要根据项目的实际情况进行设置。
另外就是循环次数和压测的持续时间,我们通常会在并发测试的时候,设置他的持续时间,比如两个小时,这样更容易压测出服务器的问题。
准备测试环境,完成脚本调试
如果在测试环境下测试,我们会搭建测试环境。基本的linux操作和配置环境这些都很熟悉。我们会按照搭建文档来搭建各种环境,当然通常情况下运维会提前帮我们搭建好。当然有的时候我们会在线上环境进行压测,这样数据会准确一些。
再就是调试脚本,使用JMeter这样的工具,调试通脚本,就可以压测了。
分析结果
当测试完成之后,最重要的一点就是分析测试结果。
我们通常从这么几个角度去分析问题:
从网络角度分析,看带宽、网络品质是否影响到了我们的测试。
分析硬件,比如:CPU、内存、磁盘I/O方面的问题。加入我们的CPU很容易占到80%,内存的占用率也很高,或者虚拟内存的交换率很高,磁盘I/O繁忙率过高,那么这些很有可能是服务器硬件的问题,当然这些也很好分析。
也可能是服务器中间件的问题,如果中间件出现问题,往往是参数配置不合理。
还有就是SQL配置或者是慢SQL,我们可以登录服务器打开慢查询开关,记录慢查询语句,使用monyog进行分析SQL问题。
如果是Java开发,也可能是JVM配置不合理。因为JVM中有垃圾回收机制,逻辑不好,有可能导致回收不及时。
最后还会有开发逻辑问题,比如逻辑过于复杂,算法没有优化,都有可能导致性能瓶颈。