性能测试

首先来看一件事情的几个关键要素: 时间,空间(地点),人物(主体),事件。

 

软件也逃脱不了自然法则:

      主体:程序,是人类逻辑思维的物化,表现形式为一系列的指令代码。

      时间:运行的时间。运行的速度。

      空间:即资源。 包括软件和硬件。 如操作系统数据库, cpu,内存等。

      事件:软件运行。

广义的中间件包括: os, 应用服务器,数据库等。

大家开始从经济学的角度来考虑软件产品。软件功能和性能的区别的实质是,软件功能焦点在于软件“做什么”,关注软件物质“主体”发生的“事件”;而软件性能则关注于软件物质“做的如何”,这是综合“空间”和“时间”考虑的方案(资源和速度),表现为软件对空间和时间的敏感度。

软件发展初级阶段,又要马儿跑,又要马儿少吃草。 跑和时间有关,草和空间有关。 马儿跑即处理时间短,响应快。少吃草就是少占用资源,如内存。 再后来,不仅要跑,还要能快能慢。即软件的伸缩性; 路遥知马力,即软件稳定性。细说有以下几点:

  •   计算性能--马儿要能跑,最好日行千里夜行八百
  • 资源的利用和回收--就是少吃草。
  • 启动时间--这是马儿的加速度问题。
  • 伸缩性--马儿能快能慢
  • 稳定性--路遥知马力

衡量软件性能的常见指标有:

  1. 响应时间
  2. 吞吐量
  3. 资源使用率
  4. 点击数
  5. 并发用户数

满足用户性能需求的几种方案:

  1. 消除软件对空间和时间不必要的浪费
  2. 以空间换时间
  3. 以时间换空间

如何考虑: 第一,软件系统设计的架构及技术平台;第二,中间件的设置和优化;第三硬件的配置。

常见的性能测试方法有以下几种:

  1. 负载测试
  2. 压力测试--压力测试和负载测试不同的是,压力测试的预期结果就是系统出现问题,而我们要考察的是系统处理问题的方式。考察极端条件下的表现,可以是超负荷的交易量和并发用户数。
  3. 并发测试
  4. 基准测试
  5. 稳定性测试
  6. 可恢复性测试。

下面看一个常用测试过程模型:

GAME(A)模型:

  • G  goal, 目标
  • A  analysis 分析
  • M   metrics,度量
  • E  execution, 执行
  • (A) adjust,调整。

这个模型有两个优势:第一,灵活,每个过程都有自己的关注点。第二,通用,不依赖于具体工具。

  系统运行良好的时候恰恰也是各项资源达到了一个平衡体,任何一项资源的过度使用都会造成平衡体系破坏,从而造成系统负载极高或者响应迟缓。比如cpu过度使用会造成大量进程等待cpu资源,系统响应变慢,等待会造成进程数增加,进程增加又会造成内存使用增加,内存耗尽又会造成虚拟内存使用,使用虚拟内存又会造成磁盘io增加和cpu开销增加(用于进程切换,缺页处理的cpu开销)。

 

以上为读  性能测试从零开始  总结。

posted on 2017-07-10 17:06  alex5211314  阅读(140)  评论(0编辑  收藏  举报

导航