lantianwei 发表于 2009-6-22 14:13:57

如何对EXCEL进行GUI测试

我们有一产品和EXCEL进行了集成,所以会对EXCEL进行GUI方面的自动化测试,但由于测试工具一般对EXCEL都是不怎么识别的,所以进行自动化会出现一点问题。不知道大家有没有做过这方面的测试,欢迎大家发表自己的解决办法或思路!

测试需求:对EXCEL单元格进行操作,比如输入值 设置边框,字体以及对他们进行验证
自动化测试要求:希望少使用键盘模拟,验证可以自动化,而非手工参与,另外对于EXCEL在测试时是需要和产品进行交互的,并且需要在多语言多平台下运行,也就是方法需要尽量的保证脚本的可移植性。

可能该问题本身和测试工具并无多大关系,但鉴于这里的比较活跃,就放这里和大家讨论了。:)

[ 本帖最后由 lantianwei 于 2009-6-22 20:22 编辑 ]

lantianwei 发表于 2009-6-22 14:34:56

目前想到三种解决办法,但都不怎么完美。
1. 使用COM来实现,问题是性能太差 因为EXCEL非自身打开,每次都需要查找对象,会比较慢。
2. 写Excel中间测试插件(pcl老师想到的方法,由VBA实现),也就是通过中间插件间接的对EXCEL进行测试,有个问题是使用起来不是很方便。
3. 使用OLE实现,通过调用EXCEL底层的接口来实现,这样做性能和易操作性肯定没问题,但实现起来难度比较大。

大家如果想到什么好的方法,也来说说吧!

[ 本帖最后由 lantianwei 于 2009-6-22 14:52 编辑 ]

lantianwei 发表于 2009-6-23 17:43:37

大家都不测这个吗?
看着要沉了,顶起来下。。。

shanxi 发表于 2009-6-23 18:50:08

回复 1# 的帖子

你这个需求感觉比较怪

这个跟微软测试Excel有什么不同?
还是项目是借用了Excel的COM组件输出表。 估计是后者。

可以用C#自己写一个,完全不用借助任何自动化工具。

[ 本帖最后由 shanxi 于 2009-6-23 18:59 编辑 ]

lantianwei 发表于 2009-6-23 20:12:59

回复 4# 的帖子

自己写工具?那应该不太现实吧,要考虑到需要和产品进行交互的,如果自己写,那还需要操作到产品,复杂度很大;除非用C#写接口。
有这个需求是因为,产品是和EXCEL 集成的,相当于EXCEL 的ADDIN,所以要测试到从这个ADDIN导出来的数据和报表格式。

shanxi 发表于 2009-6-24 12:27:36

回复 5# 的帖子

从这个ADDIN导出来的数据和报表格式是Excel的兼容格式吗?

lantianwei 发表于 2009-6-24 12:36:22

回复 6# 的帖子

这个ADDIN就是在EXCEL中嵌入些按钮以及通过按钮可以打开特定的产品窗体,在这些窗体中可以设定导出到SHEET的数据和报表格式。

shanxi 发表于 2009-6-24 12:49:10

回复 7# 的帖子

我的意思是如果你的目的是解析Excel文件C#得天独厚
如果不用C#,也有其它一些库可以利用

这种方式需要先做一个基线,用做以后自动化数据的比较
如果数据量比较大,可以把解析的数据放入数据库中进行比较。

lantianwei 发表于 2009-6-24 14:41:56

回复 8# 的帖子

如果单检查数据,没什么大问题
但还有重要一项是检查表格 比如表背景 表的宽度 字体等。
而且有一点验证是在产品和EXCEL交互的过程中进行的,那么很可能文件被独占的

[ 本帖最后由 lantianwei 于 2009-6-24 14:44 编辑 ]

shanxi 发表于 2009-6-24 16:43:06

表背景 表的宽度 字体用C#都能取得 用VB.net估计差不多
参考 http://www.wewill.cn/n32264c66.aspx

至于交互,那就得封装native api来做了

不知道你能否把数据验证和交互操作分割开来,比如在交互操作中增加把当前需要验证的数据保存下来,事后用另外的程序来验证。

[ 本帖最后由 shanxi 于 2009-6-24 16:45 编辑 ]

lantianwei 发表于 2009-6-24 18:17:48

回复 10# 的帖子

跟VBS的com实现形式差不多,不知道在查找EXCEL对象时的性能咋样。。。
不错,是个办法 :)

loveyaya0716 发表于 2009-6-24 23:49:21

:lol :lol 支持楼上的

faith-huang 发表于 2009-7-1 17:21:22

就是应该使用C#来写轻量级的测试工具,因为.net平台支持对excel的对象识别,像你说的那些按钮什么的,都可以进行识别,单元格就更不用说了。
页: [1]
查看完整版本: 如何对EXCEL进行GUI测试