最近在负责招聘面试,基本每个来面试的小伙伴,都会写到熟悉这样那样的测试工具,比如LoadRunner、QTP、Jmeter等等。
但当问起性能测试的相关概念时,却都答不出问题,在此闲暇时间,整理下自己的问题和解题思路。
问题1:在性能测试指标中,响应时间、吞吐量、在线用户数有什么关系?
答题思路:首先给出各个指标的概念,其次按性能拐点产生的时间讲,在线用户数不断增加时,吞吐量增加,响应时间也会有逐渐增加的趋势,但当响应时间急剧增加时,吞吐量却呈现出平行时间轴的直线或下降趋势;这个过程说明了系统开始出现性能降低的拐点,需要做记录和分析,此时系统的状态是什么,哪里报错了,这样思考就离找到系统性能瓶颈不远了。
问题2:性能测试的目的是什么?
答题思路:性能测试的概念,解释了性能测试的目的。但性能测试最终的目的不是出具测试报告,说系统性能一切正常,可以正常运行。而大部分时间做的性能测试,是为了对系统进行调优,才开展的性能测试。
问题3:实施性能测试的流程是什么?
答题思路:性能测试实施其实是一个标准的PDCA过程,计划-执行-评估-改进,先通过手动性能检查定出系统运行的性能基线,或使用单用户性能测试来确定系统正常运行的性能基线;再执行性能测试,获取10/50/100/200/500/1000/2000/5000/10000等各个在线用户数情况下系统的性能指标,以评判系统性能;最终通过定位性能瓶颈,进行系统调优,提升系统性能,再执行一次10/50/100/200/500/1000/2000/5000/10000等各个在线用户数情况下系统的性能测试,与未调优之前做对比,以得到性能提升的结论;否则继续进行测试和优化。
问题4:客户会出于哪些目的让你开展性能测试?
答题思路:一般客户会在系统上线前,提出生产环境下性能测试,以排除系统存在大并发访问时的性能问题;客户也会在系统已经发现运行性能问题时,找到性能测试人员,为其进行测试,找到性能瓶颈,并解决性能瓶颈,提升系统运行性能表现;客户也会在固定时间(半年/一年)间隔过后,要求测试人员进行性能测试,以评估系统数据库存储数据增加时,系统是否存在潜在的性能问题风险。
问题5:性能测试工具还有其他用途吗?
答题思路:性能测试工具是一种基于协议数据回放的思路,模拟真实用户操作系统的情形,对系统施压;在不同的场合,性能测试工具扮演了不同的角色。测试人员使用该工具是在做客户知情的压力测试,如果客户不知情的情况下,使用测试工具对某网站系统进行压力测试,那就与黑客发动Ddos攻击一样,变成破坏行为了;性能测试工具还可以用给做维护的人员,用于对系统的性能指标进行长期监测,得到系统业务访问的变化规律;
【未完待续】