1.什么是性能测试?
性能测试也是软件测试的一种,它的主要方向是测试系统在一定的负荷压力下,系统的:1.响应时间;2.吞吐量;3.稳定性;4.可扩展性等性能指标。
做性能测试前要先理解功能测试。
做性能测试的关键点:理解用户业务需求,并知道性能测试点有哪些,时间、成本、回报,用户最关心的功能,web性能需要测试的几点:首页、登录、支付、秒杀、竞争关系。
2.为什么要做性能测试?
主要目的是识别系统瓶颈;
为将来的测试建立一个基准;
能够确定系统性能的目标和需求;
收集其它的与性能相关的数据;
能够让决策层做出关于产品总提质量的合理决定;
性能测试结果和分析也能帮助我们估计当产品上线时需要配置多少硬件来支持相应的业务。
3.性能测试的目标
1.评定系统的可行性;
2.评估系统的性能指标;
3.比较多个不同系统或是不同系统配置时的性能特征;
4.找出系统性能问题并确定问题根源;
5.做系统性能调优;
6.找出系统吞吐量的不同等级;
4.性能测试与项目的关系
性能测试做的成功与否,与测试方法和测试自身所关联的项目背景都有关系。若不理解项目背景,测试人员仅仅靠直觉来猜想哪些是重要的,这样很容易造成背离重要的测试点,浪费大量时间和精力在其它方面上,从而导致项目失败。
5.性能测试与性能调优的关系
性能调优的背景:当端到端的性能测试披露出系统或业务应用的特征不可接受,多个团队开始把注意力从性能测试转向性能调优,来发现怎样做能使业务性能达到可接受。当系统性能指标达到时,而团队想要减少使用的系统资源来减少平台使用硬件数量以及改善系统性能。
性能测试:前期分析、场景构建、脚本开发(工具、测试数据准备)、加压、监控
6.性能测试工程师与调优
性能调优要求对系统各部分资源进行额外的监控,以及对系统在不同的负荷条件、不同的配置下的相应时间进行监控。一般来说性能测试人员利用工具和专业的技能以有效的方式提供信息,才能使性能调优得以进行。
7.性能调优过程
1.所要测试的系统或业务的部署是明确,可控的,用于确保测试开始阶段的配置和结果都是清晰的可复现的。
2.当测试披露出不可接受的性能特征时,性能测试和调优团队开始进入诊断和修复阶段,这个阶段会要求对测试环境或应用做一些改变,一般情况下,出于诊断的目的,会做出一些临时的改变有意对问题进行放大,或者改变测试环境来看一下这种改变是否会导致性能更好。
3.测试团队和调优团队会完全的控制测试环境以便在此阶段能更有效的进行调优。
4.每一次对测试环境改变后,都会执行性能测试,以便度量一些修复下的改变带来的影响。
5.调优过程是一个典型的比较快的改变,测试执行序列。在这个阶段,如果测试和调优团队不能密切配合的话,整个过程话费的时间将会大大增加。
6.当调优结束的时候,测试环境一般来说被重置为开始时候的状态,成功的修复性改变被应用到系统上,失败的修复性改变(以及一些临时性的手段和诊断性改变)丢弃掉。这时,还要进行性能测试以证明这些成功的修复性改变的可行性。
8.性能测试关键术语解读
1.延迟(latency):响应时间的度量。指的是完成请求的执行所花费的时间,延迟也表示几个延迟或子任务执行时间之和。电商、门户、OA相关的,响应时间一般是1s,3s,5s,电信,股票,监控,传感相关的,响应时间一般是200ms,1s。
2.度量指标(Metrics):通过运行性能测试所获取的一些度量值,并以大家都能理解的方式表达出来,一些度量指标包括随时间变化的处理器使用情况和符合压力下的内存使用情况。
3.性能(performance):关于业务的相应时间,吞吐量,资源利用程度等信息。
4.性能预算或分配(budgets or allocations):给开发人员增加一些限制条件,开发人员设计部件时,允许部件所使用的资源耗费大小。
5.测试场景(scenarios):性能测试中,指的是业务应用的执行步骤,一个测试场景可以是一个测试用例或一个商业功能如在产品列表中搜索,把一个商品加入购物车,或下订单。
6.稳定性:系统在不同的条件下总体的可靠性,强健性,功能和数据的整体性,可用性,相应时间的一致性等。
7.吞吐量:单位时间内系统能够处理的工作数量。如每秒处理的请求数,每天处理的会话,每年产生的报告数等。
8.利用率(utilization):性能测试中,利用率是系统资源处理用户请求的时间占总时间的百分比。
9.工作负荷(workload):施加到系统,业务应用或产品部件上的使用负荷,涉及到并发性和数据输入。工作负荷包括用户总数量,并发用户数,数据量,事务量等。