Hi, 如果有任何想法与我沟通, 请用: lifr_nj 在 msn.com

性能测试模型分析: 模型分类

上一篇 / 下一篇  2013-06-02 00:16:24 / 个人分类:PerformanceTest

一提到性能模型,可能大多数人马上就想到网站。网站的性能模型属于“在线交易处理“模型(On-Line Transaction Processing Model),这是最常见的性能模型。

此外我还总结出另外两种。流水线模型(Pipe Line Model)和静态数据模型(Static Data Model)

不同的性能测试模型类型,其测试方法, 性能指标都会很不一样。 比如对于OLTP模型, Response Time是一个关键性能指标, 但对于 流水线模型, Response time就并不是一个关键性能指标。

在开始性能测试项目的第一步就应该识别出其性能测试模型的类型。这样你的测试才可以有的放矢。

 
在线交易处理型(OLTP)


这是最常见的类型.所有的Web网站都是这种类型.银行,股票等的交易系统也是这种类型.这种类型的特点是客户发起一个Request,然后等待Request被处理完成, 如下所示。 这种模型的特点是

1)对于Client来说, Request是阻塞执行的, 也就是在发起下一个Request之前, 必须得到上一个Request的Response。

2)信息的流动式封闭的, 也就是信息从Client发出, 回归于Client

 

                        +-------------+
               request  | Server      |
       +-----+ +------->|             |
       |Client          |             |
       |     | response |             |
       +-----+<---------+             |
                        |             |
                        +-------------+

 


 

流水线型(Pipe Line)


 

流水线模型最常见的就是监控服务器. Agent采集数据然后发往服务器.服务器在收到数据后,马上告诉Agent数据已经收到.但是这个时候该数据的处理才刚刚开始,比如数据会被存到数据库,数据可能会trigger一封Email,.这种模型的特点是

1) Source端来说, request的执行是异步的。也就是说无论上一次的Request是否已经完全处理,Source端都可以发起第二次request

2) 信息的流动式开放的。也就是信息的起点和终点不是同一个。

3) 一般来说这种系统内部的信息处理模块有多个,而且模块间都是异步的,通过Queue来串联.就像流水线一样.如果某一个模块处理能力慢了,它的前端并不会受到直接影响.
                      +----------------+
                      |Server          |
        +-------+     | +---+ +--+ +--+|    +-------+
        |Source |+--->| |M1 | |M2| |M3||+-->|Target |
        |       |     | +---+ +--+ +--+|    |       |
        +-------+     |                |    +-------+
                      |                |
                      +----------------+

现实生活,快递物流系统就是典型的流水线模型的体现.当你把物品交到快递公司的工作人员手里时,你马上就能就能收到一张回执,但是物品并没有到达目的地.物品会先存放在本地仓库,然后运输到目的地的仓库,然后由目的地所在的快递人员吧物品派送到对方手中.


                  +----------------------------------+
                  |Express Company                   |
                  |                                  |
                  |                                  |
                  | +-------+                        |
      +---------+ | |Local  | +---------+            |
      |Customer||+->|Branch | |Warehource            |
      |         | | |       | +---------+            |
      +---------+ | +-------+                        |
                  |           +--------+             |
                  |           |Logistics             |
                  |           |Company |             |
                  |           |        |             |
                  |           +--------+             |
                  |                       +---------+|
                  |          +----------+ |Remote   || +------+
                  |          |Warehource| |Branch   +->|Target|
                  |          +----------+ |         || |      |
                  |                       +---------+| +------+
                  |                                  |
                  |                                  |
                  +----------------------------------+

 

静态数据压力型(Static Data Load Model)

静态数据压力型和前两种不一样.它并没有一个所谓的输入端.下面是两个例子

l Console展现一个包含非常多元素的页面.

l 提交一个非常耗时的产生ReportRequest.

这种类型的性能模型看上去并不像我们通常理解的性能模型,它也不能被前面两种模型所覆盖.所以单独定义为静态数据压力模型.

值得指出的是,这种压力模型往往被软件开发或者测试人员所忽略,但是它却是客户非常关心的,因为客户会去真正使用这些功能.

 

 


TAG:

 

评分:0

我来说两句

Open Toolbar