性能测试的研究(1)

上一篇 / 下一篇  2012-01-31 18:38:21 / 个人分类:测试

简述

性能测试用于确定应用程序在指定的输入输出条件下的响应状况。一般要使用多个独立的性能测试场景/测试用例来覆盖所有的可能性。测试时,尽可能使测试环境贴近真实环境。通过研究应用程序的模拟负载下的行为,来确定其性能指标是否满足设计目标。

性能测试是用于研究应用程序在预期数据量和最高峰值数据量下运行状态的测试方法。以便确认程序在不断增加的数据量下的具备的处理能力。如下的三种性能测试方法都可以殊途同归的实现以上的目标:

•	负载测试。使用负载测试来研究基于不同可接受的数据集合下的产品的行为。 可以很明确的获知产品是否达到了设计要求。一般通过监控响应时间,数据吞吐率,资源使用率来进行测试。而且通过这种测试可以探知应用程序在什么样的数据峰值下达到崩溃点。

•	压力测试。压力测试用于评估应用程序在数据量过载后的行为。目的是在高负荷状态下,挖掘更多的系统隐藏的内在问题。例如数据同步,资源竞争和内存泄漏这些常见的问题。通过压力测试,我们可以探知应用程序的内在缺陷,以及其会带来的风险。

•	能力测试。能力测试和负载测试相辅相成。通过其能够获知应用程序的预设的失败阀值点。这个阀值点是通过研究负载测试在各个数据量的程序行为获得的,即在崩溃点前最后一个能够维持程序稳定运行的数据量为预设的失败阀值点。通过能力测试,可以制定扩容计划。通过扩容计划,我们可以稳定的提高用户集和数据集。例如,如果想将用户集和数据集提高一倍,那么根据现有的资源。(例如处理器个数,内存容量,硬盘空间,网络带宽等等)我们就可以知道最小的扩容资源需求值。

性能测试的目标

性能测试的最大目的是来比照应用程序的实际性能和预期性能。同时还有一些其他的目的:
•	确认系统中存在的瓶颈和成因。
•	调整和优化平台的硬件配置和软件配置来达到性能最大化。
•	验证程序在压力下运行的可靠性。

只通过一种性能测试的方法是不可能获得所有的性能指标的。但是了解这些性能指标,对你进行性能测试会有很大的帮助:
•	响应时间。
•	吞吐率。
•	最大并发用户数。
•	资源利用率。
•	不同数据量对应的系统行为。
•	程序崩溃点。崩溃点一般是指程序停止响应,返回典型的503错误时的数据量值。
•	程序崩溃的原因和崩溃后的行为。
•	程序的固有缺陷。
•	负载的主要成因。例如,是用户数的增加导致负载量翻倍,还是某个操作导致数据流翻倍。

性能测试的指标

绝大多数的性能测试依赖于一组预定好的,文档化的和达成共识的性能目标。明确的目标可以提高性能测试的效率。通过测量程序的真实数据和目标进行对比从而判断程序性能的优劣。
当然你也可用通过探索的方式对产品进行性能测试来了解程序的真实情况而无需任何明确的目标。这些测试的结果也可以作为对产品性能评价的指标。

性能指标一般包含如下:
•	响应时间/延迟时间。
•	数据吞吐率。
•	资源利用率。
•	工作负载。

响应时间/延迟时间

响应时间是指发出请求后到得到相应所需的时间量。在服务器端和客户端都可以测量相应时间:

服务器端获得响应时间。这个时间段是指服务器从获得请求到完成的执行时间段。不包含客户端到服务器端的传输时间段,因为其含有网络传输消耗的时间。

客户端获得响应时间。这个时间段包含了加入请求队列的时间段,服务器处理的时间段和来回传输的网络消耗时间段。在多种测试方法中,最常用的两种方法是:TTFB,第一个字节到达客户端为终点。TTLB,最后一个字节到达客户端为终点。而且一般来说,测试时还要使用不同的网络带宽来测试从而得到更加真实的数据。

通过测试时间延迟,从而可以判断是否存在对客户端的请求响应度过低的性能问题。

数据吞吐率

数据吞吐率是指单位时间内可以被程序响应的请求数。不同的用户数和用户活动类型会产生较大的差异。例如下载的数据吞吐率就要比浏览页面的低。通常,数据吞吐率是以每秒可以响应的请求数来记录。

资源利用率

资源利用率用于确认在服务器和网络资源方面需要的资源成本。主要的资源为:
•	处理器
•	内存
•	硬盘输入/输出
•	网络输入/输出
通过性能测试,可以明确每一个流程和步骤需要的资源情况。通过优化资源利用率,降低成本。

工作负载

对于一个程序,活跃用户和并发用户往往有着巨大的差别。一般来说在活跃用户中,一般只有10%-20%的并发用户存在。

所以在性能测试中,要区别两者。在压力测试时,工作负载一般指的就是并发用户产生的数据量。


TAG: performance Performance test Test

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2021-01-24  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 81603
  • 日志数: 185
  • 文件数: 6
  • 建立时间: 2007-08-06
  • 更新时间: 2015-01-06

RSS订阅

Open Toolbar