1、性能测试——分析结果是怎么做的?
以下相关指标分析时需注意:
1.响应时间不要光看平均值,平均值不靠谱。要求最好定成:99.9%请求必须<1s ,所有的平均响应时间必须<1s,这两个条件限制;
2.响应时间要和吞吐量TPS/QPS挂钩;
系统的性能如果只看吞吐量,不看响应时间是没有意义的。我的系统可以顶10万请求,但是响应时间已经到了5秒钟,这样的系统已经不可用了,这样的吞吐量也是没有意义的。 我们知道,当并发量(吞吐量)上涨的时候,系统会变得越来越不稳定,响应时间的波动也会越来越大,响应时间也会变得越来越慢,而吞吐率也越来越上不去(如上图所示),包括CPU的使用率情况也会如此。所以,当系统变得不稳定的时候,吞吐量已经没有意义了。吞吐是有意义的时候仅当系统稳定的时候。 所以,吞吐量的值必须有响应时间来卡。比如:TP99小于100ms的时候,系统可以承载的最大并发数是1000qps。这意味着,我们要不断的在不同的并发数上测试,以找到软件的最稳定时的最大吞吐量。
3.响应时间吞吐量要和成功率挂钩; 不难理解,如果请求可以并发10w,但是成功率只有40%,那也没什么用。性能测试的失败率的容忍应该是非常低的。对于一些关键系统,成功请求数必须在100%,一点都不能含糊。 4.CPU、内存等硬件资源占比持续超过90%,说明性能存在瓶颈; 5.带宽波动起伏很大,说明带宽受限;
2、性能测试做过吗?你们公司的性能测试流程是怎样的?
性能测试我们是在XX项目里面做的性能,主要通过Jmeter对XX功能做的并发测试,并发了XX个用户。我们是这样来做的:
1、首先就是分析并确定性能需求:包括性能指标的确定:并发数的评估,响应时间,cpu和内存,事务成功率,TPS,吞吐量等。)
2、然后就是搭建性能测试环境,环境必须要纯净。
3、然后就是录制脚本以及调试脚本(包括:插入事务、检查点、关联、参数化、集合点等)
4、然后使用控制器对脚本增压、持续以及减压并执行脚本。增加对服务器的监控。
5、最后通过分析器分析性能测试结果。
3、完成一个性能测试项目,请阐述你的实施流程
测试设计阶段:
1)了解被测系统的性能需求,定义测试目标和范围;
2)了解系统的技术信息,如系统架构等;
3)确定测试方案、进度安排,并制定测试计划,场景设置方案,及需要收集的测试数据;
4)同相关人员协商讨论测试方案;
5)准备数据收集模板;不同项目的性能测试,需要收集的数据不同;针对性的制定一个模板,更符合需要;
(1)测试环境准备
1)技术准备;选择性能测试工具;测试方案中涉及到的技术问题;测试数据的收集。方案实现;如:如何监控系统资源等;
2)搭建测试环境;
3)创建初始数据;如虚拟用户使用的账号等;
(2)测试执行阶段:
1)录制脚本;
2)调试脚本;
3)执行场景;
4)收集测试数据,并简单整理;
(3)测试分析阶段:
1)分析测试数据,报告整理