性能测试的定义
性能测试就是在确保功能实现正确的情况下,通过能够发送高并发请求的工具,按照不同的策略对系统施加压力,从而得到系统不同压力情况下的各种性能指标,以保证在生产环境中,系统的性能能满足用户的需求
性能测试的意义
1.性能测试的意义在于提前发现系统的性能瓶颈,从而对其作出合理的应对措施(大部分为调优),避免生产环境出现问题,造成损失
2.还可以通过性能测试得到的结果,提前评估生产环境所需要的服务器等资源的配置。(不过如果用的云计算平台,硬件资源可以根据资源消耗情况来弹性调节,所以这个意义受到了一定的冲击,感兴趣可自行了解K8S)
性能测试所模拟的场景(简化版)
一般的使用场景:用户在系统 C 端界面进行操作,C 端发送请求给后端(位于服务器),后端对该请求进行处理,然后返回响应信息给 C 端显示。
而性能测试,就是模拟多个用户,向系统发出不同的或相同的请求(视测试场景而定),来使系统承受压力,从而得到系统的性能指标。
性能测试的基本流程
使用性能测试工具,模拟多个用户,向系统发出不同的或相同的请求(视测试场景而定),来使系统承受压力,从而得到系统的性能指标。
-
后端/服务器端性能测试关注的指标
性能测试可以大致分为前端、后端,两者的区别是测试关注点和指标是不一样的(后面讲)。除此之外,实施过程基本一致。 -
图示
性能测试实施的基本流程
性能测试分析调优
设计性能测试方案、执行性能测试这些可以说只是“开胃菜”,性能测试真正具备技术含量的步骤,在于根据“开胃菜”所得到的性能测试报告来对系统进行分析和调优。
说实话,测试在这步骤的作用无限缩小,大部分情况是开发主导,其它角色视情况参与进来,比如说架构师、DBA等。
-
图示!
测试调优过程
性能测试流程步骤

测试人员在性能测试中的作用
在整个性能测试流程中,测试人员的大部分作用是在前半部分:制定测试方案、准备脚本、执行过程进行数据的监控和采集。
这三个步骤中,制定测试方案最重要,需要对业务场景、测试指标、测试模型、测试类型、系统环境等都有所了解,然后对这些进行分析思考,才能制定出可行的测试方案;准备脚本,采用录制和编写都可以,如果针对后端,基本都是编写;数据的监控和采集,可以利用工具来进行,如果是在云计算平台上进行,平台会自行进行采集和汇总。
综上所述,测试人员如果不具备制定测试方案的能力,在性能测试过程中,可能只是脚本编写和执行人员。
想走性能这条路的各位,可以走性能专家这条路,如果在公司有这种大佬,抓住机会参与性能相关的工作,向他学习,讨教,这是很难得的机会。
各位,共勉。
个人观点,如有误,望指正。
网友评论