文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

我们聊聊性能测试的理解误区

2024-11-30 12:00

关注

在一些技术交流群,同样遇到过很多同学由于对性能测试理解上的误区导致的各种问题,比如:

当然,这些都是比较基础的问题,刚入门的同学可能会犯这种错。如果有一定的项目实践经验,就会了解性能测试比我们想象的要复杂得多。除了对技术的广度和深度有一定要求之外,对业务的熟悉程度,对需求和场景的分析理解能力,甚至在压测实施过程中的沟通和协调能力,也有一定要的要求。

这篇文章,聊聊和性能测试相关的话题,它的实施目的、在不同场景下的侧重点以及一些被大家忽视的点。

性能测试的目的

首先要认识到一点,抛开性能测试涉及到的技术栈,其实性能测试的本质和功能测试没什么区别。同样需要需求分析、场景设计、准备测试用例和测试数据。功能测试是手动执行用例,观察结果,性能测试则大多是借助工具或者脚本来执行测试用例观察结果。

功能测试的目的是验证产品设计的功能正确性,找到功能上和设计不符的bug;性能测试则是找到应用服务处理能力存在的瓶颈,然后针对性的优化,为线上的容量规划和服务稳定性提供支撑。那么问题来了:如何定义所谓的处理能力瓶颈?这就需要锚定业务价值了。

性能测试的需求基本来自业务,比如用户反馈APP响应太慢、财务或成本部门反映IT的硬件成本太高,或者运营活动由于系统挂了导致业务目标未达成。这些问题归类来说,都是用户和业务的痛点诉求:

总结一下就是:降低成本、提升用户体验、保障业务目标达成,这就是所谓的业务价值!

性能测试的最终目的和功能测试本质上没区别,就是为用户提供正确稳定的服务和良好的用户体验,保障业务目标达成。为了满足用户和业务的诉求而采用的一系列技术方案,都是为了达成这个目的的手段而已。

不同项目侧重点

聊完了性能测试的目的,接着回到具体的项目实践中。日常工作中最常见的项目类型,大概可以分为如下几种:

版本迭代

版本迭代算是软件工程师的工作日常了,这种类型的项目中,性能测试主要的侧重点聚焦在系统的处理能力方面。即验证系统是否由于需求迭代&新的代码引入而导致了系统处理能力下降,主要关注的指标是TPS&99RT&请求成功率等方面。从体系建设的角度来说,可以通过建立性能基线来评估系统长期的性能质量。

配置变更

我们都知道很多的线上故障是变更引起的,但其实很多时候性能的变化,可能就是一个小小的参数变更导致的。细分的话性能测试场景中有一项叫做配置测试,就是为了验证由于系统各项参数或者服务配置的变化而带来的性能变化。常见的有下面两种:

这种配置变更带来的性能变化,更关注的是中间件和基础服务层面,因为这种变更往往容易被忽略,但这种变更又会对线上服务的性能和稳定性带来很大的影响。

新服务上线

在日常的版本迭代之外,还比较常见的是新服务上线这种项目。比如技术改造、服务拆分、引入新的服务供应商等,一般都需要进行性能测试来验证是否会对已有系统造成影响。

新服务上线进行性能测试的主要目的是验证系统的健壮性,即发现一些较为明显的性能问题,比如:内存泄漏、业务超卖、死锁、慢SQL等情况。

稳定性保障

大部分的性能测试都是在线下环境开展的,但性能测试的结果一定要对线上的容量规划和稳定性保障提供支撑,否则性能测试没有太多价值。

虽然已经2023年了,生产全链路压测提出到现在也快11年了,但截至目前大多数公司还是不具备在生产环境进行性能测试的能力,其中原因很多。比如生产环境开展压测成本高风险大,比如大部分公司并没有很高的并发访问量,比如技术建设和储备不够深,究其根本原因,其实就是投入和产出的平衡问题。

当然,技术如何创造业务价值是一个很复杂的问题,但有一个关于全链路压测的误区,也是很多人忽视的。

生产全链路压测只适合某一部分具有特定业务需求的公司,能否实施取决于是否有合适的组织管理能力和对应的技术架构。生产全链路压测并不是银弹,也不单单只是一种测试的技术手段,如果将生产全链路压测看作一种促进生产服务稳定性的技术实践,那它有很多可以挖掘的价值点。但在实际落地过程中,只能说对技术的理解和对业务价值的认知,大家都好像走入了误区。

场景建模的误区

经常有同学问:我能不能一个用户的数据拿来重复压测,反正也是并发请求的。

在功能测试中,我们会根据要测试的场景和测试用例,准备对应的符合场景的测试数据,为什么性能测试的时候反而忽视了呢?这其实也是一个认知误区:性能测试就是模拟高并发给系统发请求。

正确的做法是和功能测试类似的,建立业务模型&流量模型&数据模型之间的映射关系,准备对应的符合测试场景的测试数据,并且要保证数据量足够测试使用。

来源:老张的求知思考世界内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯