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

2013-06-01  李斐然 

一提到性能模型, 可能大多数人马上就想到网站。 网站的性能模型属于“在线交易处理“模型(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.

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

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

 

 

396°/3965 人阅读/0 条评论 发表评论

登录 后发表评论