Part1实验
很多测试工程师甚至包括研发人员,面对性能测试时,都会感觉无从下手。对于测试新人,面对性能测试,总有一种神秘感、高级感。通往高阶测试的路上,性能测试确实是成长的快车道。
三点君有幸参与过秒杀、活动、容量、保障等多个项目中的性能测试。用一句话来说,性能测试是一个测试专项,在一套完整的性能测试方案指导下,开展代码、系统、资源、用户的平衡实验。
U == C S R
Part2场景
性能测试开场篇,通过性能场景Q&A的过程来揭开性能测试神秘的面纱。
Q1
研发为了应对用户增长时,利用机器
资源性能的瓶颈在哪里?
当研发利用现有的资源提高系统服务的性能,从而应对未来可能的用户流量增长时。我们先看不变量,资源R不变,那么不变量就是R。变量呢?很明显用户U可能会变高,所以我们要通过性能测试,找到代码C和系统S的瓶颈,提升C或S,从而让U提高。
Q2
研发修改了某个php代码模块的高流
量接口代码,性能是否有损失?
很明显,此时只有代码C发生了变化,而代码C的变化,很可能会引起性能的变化。所以通过性能测试,我们要保证代码的变动不会引起性能的损失。
Q3
研发将某代码模块从php语言重构成了
go语言,性能是否有提升?
同理,代码C和系统S的重构变化。能否达到在R资源不变的原则下,有效提高U,这个校验的过程就是性能测试。
Q4
当前服务系统的性能容量如何?
性能容量:特定性能指标,设定一个边界或者极
限,用来优化资源(缩容)。
代码C和系统S没有发生变化,当前的业务流量用户U也没有发生变化,性能容量评估来判定资源R是否被充分利用,能否合理的进行资源分配部署。
Q5
产品小王告知电商秒杀活动需求预计
用户量,性能是否满足?
当系统负责人或者产品需求方得知活动的预估流量,但是右侧的CSR并不清楚时,通过性能测试,来评判CSR能否满足U。
Q6
重大节日为了满足服务性能,合同里
要求第三方服务供应商提供一定的qps
甲方知晓用户需求,所以甲方要根据U给出具体性能需求,让乙方通过优化代码、系统、资源等途径,来满足甲方的合同需求。
Q7
某用户反馈某个页面打开很慢,需要
测试评估前后端性能,来判断是bug
还是性能问题。
这个通常先判断是否是功能问题,然后再分别评估是前端的性能不足还是后端服务的性能遇到问题。
Q8
某用户反馈升级app后,页面加载很
慢,手机网络设备在都正常下,像
是app出问题了。
需要判断页面和端框架是否有代码bug,然后分析端框架渲染是否有性能故障。
Q9
多用户反馈在整点登录打开,页面
loading时长过久,不知道哪里的问题
整点登录很明显瓶颈在于同时登录很多用户,有性能瓶颈,需要测试技术分析来修复问题,提升用户体验。
Part3接活
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件对系统的各项性能指标进行测试。
这里面需要主要的一点,系统特指软件层面,而非硬件层面,硬件也会有性能测试,常听到手机跑分或计算机电脑跑分,算是性能评测。这里我们度量的是软件系统的一种特性,硬件的性能不再讨论的范围之内。
我们接到一个性能测试的任务时,参考上述的场景,结合性能实验模型,快速了解性能需求背景,为后续性能测试做良好的开端。