性能常识 我眼中的性能测试

imath60 · 2022年04月11日 · 最后由 imath60 回复于 2022年04月21日 · 2959 次阅读

一、 什么是性能测试

作为测试同学,日常工作中我们接触最多的是业务功能测试,功能测试顾名思义即验证某个需求功能是否符合预期,而性能测试不同于功能测试的点在于,它验证的的是某个或某些性能指标是否达成预期。如果把业务的功能测试定义为全集 U 的话,那么业务的性能测试就是全集 U 的子集【不需要性能测试,或者某些需求需要做性能测试,或者全部功能都需要做性能测试】

做验证【度量】需要指标,如度量 CPU 性能:通过 CPU 使用率 - 均值,CPU 使用率 - 最高值等;度量内存性能:通过内存使用率等;度量网络性能:通过网卡入出口流量,网卡入出口错误等;度量磁盘性能:通过磁盘利用率,磁盘读写等。

上面说的都是在服务器硬件指标维度进行的度量与验证,如果某块做的不好,直接提交缺陷给相关的同学去优化,而用户实际感知的是真实的业务场景,比如打开页面卡不卡,使用操作是否流畅等。通过实际的场景压测,来验证当前服务端性能的优劣,通过做好性能测试,才能建立信心,做好性能分析,才能知道哪里薄弱,做好性能调优,才能确保业务无忧!

二、 如何做性能测试

性能测试不只是测试执行,实际上还需要考虑很多,比如:
1)用什么工具验证?测试的完备性如何保证;
2)性能测试如何设计?如何有针对性的设计,以符合预期;
3)压测过程中收集到的数据如何分析,重点关注什么;
4)执行结果会不会有差异?为什么有差异?是什么原因导致的;
5)如何去分析异常的性能数据?如何定位导致数据异常的原因?如何进行调优来解决问题。

三、 问题与挑战

比如在接口功能测试时候,我们只需要关注响应时间的最大值、最小值、平均值即可。但在性能测试过程中,我们更应关注的是 99 分位及波动率。这些与功能测试的差异,是每个立志做好性能测试测试,前期需要准备的基础知识。

在性能测试流程上,测试仅仅是一个环节,前置的需求分析与测试设计,后置的性能分析与性能调优都是不可或缺的关键。

综上所述,性能测试,是测试工程师的锐变之路,对个人的能力要求远远高于业务测试,是测试架构师的看家本领。正如优秀的射手是用子弹喂出来的一样,好的测试架构师是历经各种性能问题,一个个案例锻炼出来的~

PS:对服务端性能测试感兴趣的小伙伴,可以关注下 MTSC7 月 22 日下午服务端专场的议题分享~

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 2 条回复 时间 点赞
lcw 回复

是的 测试执行所选用的工具/平台 是为了满足前面的测试设计与后面的测试分析的一种技术手段 否则就变成了为了测试而测试 跑出一堆指标数据 无分析无结论

前置的需求分析与测试设计,后置的性能分析与性能调优都是不可或缺的关键。

认同,测试只是种手段,如何分析需求,分析架构链路,设计性能测试场景,将业务模型转为脚本模型才是比较重要的,不然做出来的结果也没意义,指标数据只是执行后的死数字罢了。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册