什么是性能测试?
性能测试是指被测系统,在一定的负载下运行,监控系统的各项指标是否符合需求(指标包括cpu、内存、事物响应时间),如果不符合,就发现了系统的性能瓶颈。
使用性能测试工具来模拟各种正常,峰值以及异常负载条件下,对系统的各项性能指标进行测试
性能测试的目的
1>识别系统的弱点
2>评估系统能力
3>发现系统性能瓶颈
4>提高系统可靠性和稳定性
为什么开展性能测试?
1>成本的优化配置
2>用户眼中的良好形象
3>节约成本
4>判断目前系统的性能瓶颈
5>系统应用能够适应未来的业务增长
性能测试的流程
1>、获取有效的性能测试需求,明确测试目标
2>、设计测试计划,又称测试方案和测试策略
3>、搭建测试环境,确认测试环境的可用性
4>、设计压测脚本,优化脚本
5>、进行基准测试,确认测试环境,脚本,正确可用(相当于功能测试中的冒烟测试,也称bvt)
6>、进行正常测试,选择场景(手动场景,面向对象的场景),设计场景
7>、压测过程中观察监控指标
8>、对得到的性能测试数据指标进行分析,通过图标合并,指标背离的方法得出性能测试结论
9>、编写测试报告
性能测试的方法(压力、并发、负载、配置、容量、基准、可靠性)
并发测试:所有的用户在同一时刻做同一件事情或操作这就叫做并发测试。
压力测试:不断向系统施加压力,确定系统瓶颈,找到最优并发。
负载测试:负载测试是确定在各种工作负载下系统各项性能指标的变化情况。
基准测试、可靠性测试、数据量测试、配置测试
性能测试的指标
1> 响应时间 应用系统从发出请求开始到客户端接收到响应所消耗的时间
2)>并发用户数 同一时段内对系统进行同一操作的所有用户
3> 吞吐量 单位时间内系统处理客户请求的数量
4> TPS 每秒钟系统能够处理的交易或事物的数量
5)>HPS 每秒用户向web服务器提交的HTTP请求数
性能测试前几年被关注的较少,近几年备受重视,那为什么要做性能测试呢?有很多种说法,个人比较认可下面这个,分享给大家:
评估系统的能力
识别体系中的弱点
系统调优
验证稳定性(resilience)可靠性(reliability)
针对上面这几种目的,针对不同的结果,给出不同的应对方案和措施,这才是性能测试的最终目标:
测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的能力,并帮助作出决策。
受控的负荷可以被增加到一个极端的水平,并突破它,从而修复体系的瓶颈或薄弱的地方。
重复运行测试,验证调整系统的活动得到了预期的结果,从而改进性能。
检测软件中的问题:长时间的测试执行可导致程序发生由于内存泄露引起的失败,揭示程序中的隐含的问题或冲突。 在一个生产负荷下执行测试一定的时间是评估系统稳定性和可靠性是否满足要求的唯一方法