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 提交一个非常耗时的产生Report的Request.
这种类型的性能模型看上去并不像我们通常理解的性能模型,它也不能被前面两种模型所覆盖.所以单独定义为静态数据压力模型.
值得指出的是,这种压力模型往往被软件开发或者测试人员所忽略,但是它却是客户非常关心的,因为客户会去真正使用这些功能.
收藏
举报
TAG: