以后不在此处更新日志了,欢迎测友到新窝找我:http://www.wuchuanhu.cn/

让AutoIT实现flash自动化测试

上一篇 / 下一篇  2012-04-11 13:40:43 / 个人分类:AutoIT实战

目前市面上已经有不少针对flash自动化测试工具了,但绝大多数都需要在待测flash编译的时候引用指定的SWC包,这样工具在实施自动化的时候才能触发flash组件中的事件。有没有不重新编译flash而直接进行自动化的测试呢。有!必须有!肯定有。

之前看到很多关于使用sikuli和某些web自动化测试工具结合实现flash的自动化测试的介绍。但是sikuli那套东西也无非是实现了flash上控件的定位和操作,对于检查点的处理却不是很好,并且sikuli开发出的脚本稳定性方面并不是特别好。这些文章从技术上论证了sikuli结合web自动化测试工具实现flash自动化测试的可行性,其实也提供了一种思路:暴力实现自动化测试。

何谓暴力,暴力就是采用某种编程方式把鼠标移到flash的某个位置,然后向这个位置发送点击命令。这就是暴力。Sikuli就是靠截获的图片在flash中找到这样的一个位置,然后发送相应的指令,因此它是一种暴力的方法。其实AutoIT也能按照这样的思路实现对flash的自动化测试,不同于sikuli的是,AutoIT需要通过坐标来定位。看如下代码:

Local $pos = MouseGetPos()

这句脚本的作用是获取当前鼠标在屏幕中的坐标。获取到这个坐标之后,我们就可以进行相应的操作了,比如:

MouseClick("",917,682)

send("abcd")

也就是说,我们可以先使用MouseGetPos()来获取到所有需要点击或者操作的控件的位置。然后使用MouseClicksend等实现具体的操作。

至此,像sikuli一样使用AutoIT实现了对flash的操作。那么怎么检查操作的结果呢,也就是检查点呢?我这里提供一种思路:使用OCR引擎。使用AutoIT对需要检查的部分进行截图。比如当向flash中输入了错误的用户账号,flash输入框后面会出现“用户账号不正确”。那么可以使用AutoIT截取这个提示信息,形成图片,然后交给OCR引擎进行识别。运气好的话,OCR引擎可以识别出这段文字。运气不好的话,也没有关系,我们把识别出的结果作为预期结果(不管它识别成了什么)。下次执行自动化测试脚本之后,可以将下次截图并通过OCR引擎识别的结果与本次识别的结果(预期结果)进行对比。这个思路其实也是借鉴了sikuli的思想,实现起来也没有什么技术难点。(对于OCR引擎的使用方法,可以参见我之前的文章“AutoIT自动化之OCR解决验证码识别”)


TAG:

 

评分:0

我来说两句

Open Toolbar