介绍一种GUI测试的解决方案
近来,自动化测试被业界炒得很热,最近在上海刚举行的chinatest测试大会中,自动化测试也是核心主题之一。不过比较遗憾的是,各位专家理论方面讲得多了些。真正涉及到自动化测试技术落地的技术讲座少了些。唯一听到的一个还是基于selemiun基础上完善的一个web测试框架的介绍,颇给人一些思路和启示。
最近一年来因为项目需要,我也带领一个团队在进行GUI方面的自动化测试的尝试。经过一段时间的积淀,先后尝试了testcomplete,robotframework,uswc,autoit,marathon,sikuli等多种自动化测试工具。由于这个项目涉及的GUI比较复杂,而且是多种语言开发的,还需要多机环境的测试,最终选定了sikuli+autoit的组合,作为自动化测试框架的基本工具。
在此基础上,完成了用例执行选择,参数配置化,自动化构建,执行日志和测试结果输出,错误截屏输出这些自动化测试的基本功能。
sikuli这个是mit的一个台湾工程师开发的基于图像识别的自动化框架,用在GUI界面的测试上最合适不过了。同时它也是免费。但是它因为是用的jython的语言,而jython只支持utf-8,而GUI经常碰到的是ansi的编码方式,这样的话,就会在界面中文输入,控制台文字输出和文件读写中出现乱码。这个时候可以利用autoit在不同字符集有比较好的兼容作用的优势。用autoIt编写相关的api接口,并定义好输入输出,通过sikuli进行调用能够很好的解决乱码问题。
另一方面,sikuli在windows非GUI操作方面使用也不是太方便,同样也可以用autoit来实现。
特别要一提的,因为autoit对编写一个gui界面的程序也非常方便,所以我们的用例执行选择的GUi界面就是用autoit编写的。
同志们不妨也尝试一下这样组合的自动化测试解决方案,会给大家带来节省成本而又意外好用的惊喜