• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

采用铺底数据进行 SOA 应用的性能测试

发布: 2010-6-30 09:59 | 作者: 不详 | 来源: 领测测试网采编 | 查看: 24次 | 进入软件测试论坛讨论

领测软件测试网

  或许你会问,为什么要准备这些铺底数据?这些数据不是我们的实际生产环境的数据,那为什么要花时间去准备如此大量的数据呢?

  答案是,系统在有铺底数据和没有铺底数据的情况下,性能会有很大的差异。那为什么会这样呢?

  首先,如果没有那些铺底数据,那么本来为一张表建立了一个索引,当系统的数据量很小的时候,数据库就有可能造成全表扫描,而不走索引扫描,这样就会造成系统的性能降低。

  如果数据量很小的话,我们不知道进行一次查询时候的 SQL 语句究竟是哪种执行路径方案。(数据库有自动根据 SQL 语句算出一条自认为最优化的路径的功能。譬如 DB2 的 ACCESS PATH。ACCESS PATH 会随着数据量的多少的变化而变化的。一旦系统比较庞大,在日积月累中,数据量会越来越大的。所以要准备一定数量的数据,让 ACCESS PATH 保持相对稳定。

  1.3 没有铺底数据有可能造成系统发生数据库的死锁

  如果数据量少,数据库为了优化有的时候就不用 INDEX 扫描,而采用全表扫描,这样造成整表被锁,导致死锁,而数据量大了以后数据库会进行 INDEX 扫描,所以不会琐住整个表。所以在有些情况下在系统上线时准备一些无用的数据放在表中,让数据库不会导致全表扫描!虽然有的时候可以通过改变锁的策略去解决这个问题,但是如果存在风险,在上线系统中就要避免。

  1.4 铺底数据使得系统性能更加真实 , 更符合生产环境的真实情况

  在数据库里面存入铺底数据,系统从一开始上线的时候,就已有了一个比较稳定的环境。如果没有铺底数据,那系统的环境可能随时面临着不稳定的因素:如性能陡变,数据库异常 ( 资源池不够用,数据库死锁,数据库全表扫描等等 ),响应时间突然下降。所以准备铺底数据,不但对性能测试意味深远,而且对即将上线的生产环境也是至关重要的。试想在银行系统中,如果不准备铺底数据,一旦系统上线的时候发生了问题,那么银行会损失多少客户!

  1.5 准备铺底数据要则

  准备铺底数据主要有以下几点原则:

  准备的数据量大小:数据库中的数据量只要比内存大上若干倍,结果就差不多了。

  数据在准备的时候,要保持原表的约束关系。

  每张表的数据量要符合真实情况(对此点要求可能比较高 , 通常的做法是估算一下实际的情况)。

  介绍了这些的原则,如何在实际操作中创建铺底数据呢?后面的第 2 章将结合上述的三条原则,具体讲述如何高性能地准备铺地数据

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

22/2<12

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网