一、什么是性能测试?
使用自动化测试工具对产品按一定的性能指标进行测试,解决性能瓶颈,给用户最好的体验。
二、性能测试的目的?
目的是验证是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,,最后起到优化系统的目的。
包括以下几个方面:
1.评估系统的能力,测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的能力,并帮助作出决策。
2.识别体系中的弱点:受控的负荷可以被增加到一个极端的水平,并突破它,从而修复体系的瓶颈或薄弱的地方。
3.系统调优:重复运行测试,验证调整系统的活动得到了预期的结果,从而改进性能。
检测 中的问题:长时间的测试执行可导致 发生由于 引起的失败,揭示程序中的隐含的问题或冲突。
4.验证稳定性(resilience)可靠性(reliability):在一个生产负荷下执行测试一定的时间是评估系统稳定性和可靠性是否满足要求的唯一方法。
三、性能测试类型?
性能测试类型包括 , , 等。
(Load Testing):负载测试是一种主要为了测试软件系统是否达到需求文档设计的目标,譬如软件在一定时期内,最大支持多少并发用户数,软件请求出错率等,测试的主要是软件系统的性能。
压力 (Stress Testing):强度测试也就是压力测试,压力测试主要是为了测试硬件系统是否达到需求文档设计的性能目标,譬如在一定时期内,系统的cpu利用率,内存使用率,磁盘I/O吞吐率,网络吞吐量等,压力测试和负载测试最大的差别在于测试目的不同。
(Volume Testing):确定系统最大承受量,譬如系统最大用户数,最大存储量,最多处理的数据流量等。
性能测试中包含以下测试类型:
- 比较新的或未知测试 与已知参照标准(如现有 或评测标准)的性能。
争用测试:- 核实测试 对于多个主角对相同资源( 、内存等)的请求的处理是否可以接受。
性能配置 - 核实在操作条件保持不变的情况下,测试 在使用不同配置时其性能行为的可接受性。
- 核实在保持配置不变的情况下,测试 在不同操作条件(如不同用户数、事务数等)下性能行为的可接受性。
- 核实测试 性能行为在异常或极端条件(如资源减少或用户数过多)之下的可接受性。
- 核实测试用户同时使用 的最大数量。
通常是和用户代表一起协作并且以多级方法执行的。
的第一级涉及单一主角/用例实例的结果评价和多个测试执行的结果比较。例如,在测试 上没有其他活动的情况下,记录单一主角执行单一用例的性能行为,并将结果与相同主角/用例的其他几个测试执行进行比较。第一级分析有助于确定可以表明 中存在争用的趋势,该趋势将影响从其他性能测试结果所得出的结论的有效性。
分析的第二级检查特定主角/用例执行的摘要 和实际数据值,以及测试 的性能行为。摘要统计信息包括响应时间的标准偏差和百分位分布,这些信息显示了系统响应的变动情况,正如每个主角所见到的一样。
分析的第三级有助于理解性能问题的起因和加权值。该详细分析采用低级数据并且使用统计方法,帮助测试员从数据中得出正确的结论。详细分析为决策提供客观和定量的标准,但是它耗时较长,并且要求对统计学有基本的理解。
当性能行为差异确实存在,或是由于某些与测试 相关的随机事件引起时,详细分析使用统计加权值的概念来帮助理解。即认为在基本级上,任何事件都具有随机性。统计测试确定是否存在无法用随机事件解释的系统差异。