• 测试技术
  • 博客
  • 视频
  • 开源
  • 论坛
  • 沙龙
  • 下载
  • 杂志
  • 招聘

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

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

发布: 2008-4-03 17:53 | 作者: Andrew Glover | 来源: IBM | 查看: 63次 | 进入领测软件测试网论坛讨论

领测软件测试网

r&a&LY,\W"qk~3O+aL软件测试技术门户7Y?%S7^$c'lR R
软件测试技术门户Z V'jA V:dO

2. 高性能准备铺底数据软件测试技术门户6]9HN~7P!e

F9O)d'K J{I以上介绍了铺底数据的重要性。要知道准备的铺底数据每张表要上亿条,那么我们如何快速而真实的准备铺底数据呢?这章将详细展开讲解。软件测试技术门户*vyN0^.W1ZRJ

_ A$RY+Pj r1o1B2.1. 如果用简单的 JDBC 程序插入铺底数据 , 性能很差

'Ye!Z6wM h 软件测试技术门户1AeO&m Q,P AQu

用 JDBC 写一个程序往数据库里面插入数据的话,速度会很慢,大概是十万条一张表需要 20 分钟。那假设我们需要准备 1 亿条数据一张表就是 10000/10*20/60=333 小时,如果业务逻辑需要准备 20 张表,那我们准备这些数据将需要 333*20=6660 小时 =277.5 天!这样的速度慢得惊人,所以通过 JDBC 准备铺底数据将不成立。软件测试技术门户IdaS.EF `#}!c)lo

软件测试技术门户w!Qum?D[

2.2. 高效率生成铺底数据

f-H$N#k:@w!h 软件测试技术门户&QFk!Td-V(m H y

显然,我们需要能更高效产生铺底数据的方法。笔者所在团队选择了如下的方法:找出数据库之间的表结构关系,并据此把数据翻倍利用 CPU 的运算能力高效率生成的数据导入到数据库中,从而在数据库中产生出所需的铺底数据。通过这种方式即避免了采用编写 JDBC 程序的方式,又能高效地生成铺底数据。软件测试技术门户c.uR(L4d|Z

软件测试技术门户 rPo*z |E o'uL n0t1F

2.2.1. 找到数据库之间的表结构关系

Z~a(p0_5P'[ c&N` 软件测试技术门户"?-x'cb'v)h7l:N

要准备铺底数据首先要找表与表之间的关系,也就是要清楚在数据库里面的表之间的主表附表关系:一对多,多对多的关系。还有要知道实际情况中,一张主表的一条记录大概对应附表的几条数据。只需要一个大概的规律就可以了,或者取一个中间值的比例。我们可以通过 Rational Data Architect 生成的表结构图找到表与表之间的关系:软件测试技术门户