目前测试用户界面工具是非常复杂且容易出错误的。自动化测试既富有挑战性,但如果做得正确的非常有益的。
Squish是最主要的跨平台/交叉技术来实现GUI回归测试测试的GUI自动化工具。在世界各地的多家多种类工业公司中,可以大大减少花在图形用户界面测试软件版本的时间,同时提高他们的应用程序的质量。
Squish 可以测试应用程序基于几个图形用户界面(GUI)技术,包括:
● 诺基亚的Qt软件框架
● Web / HTML / AJAX
● Java SWT / Eclipse RCP和AWT / Swing
● Mac OS X Carbon/Cocoa
● Windows(MFC,.net,等等)
● iOS CocoaTouch
在这些平台上Squish是可用的:
● Windows
● Linux,embedded Linux and MeeGo
● Unix
● Mac OS X
● 一些嵌入式和移动平台
Squish使测试员应用GUI技术实现应用程序自动化成为可能,Squish 通过给测试工程师自由记录和编写测试使用熟悉的脚本语言如JavaScript、Perl、Python和Tcl从其他的GUI测试工具脱颖而出。此外,Squish提供非常紧密的集成与特定GUI技术支持。这给测试人员提供了他们正在测试(数据项,控制,和小部件,等等)的内部原理应用,也导致生产了非常健壮和稳定的GUI测试。Squish是一个非常开放和灵活的系统,支持简单的集成与常见的测试管理系统和环境。
功能与优点
● 智能测试记录和回放
→ 自动记录测试脚本
→ 识别的高层互动和对象(例如,单击一个菜单项),而不是低层次事件
→ 脚本独立的屏幕坐标和决议
→ 片段记录来扩展现有的脚本
→ 生成脚本代码再Python中,JavaScript、Perl或Tcl
● 自动验证点和Squish Spy
→ 插入验证点在任意点在测试脚本
→ 插入记录时或者当邮报编辑脚本
→ 轻松地创建验证使用Squish Spy和Object Inspector工具
→ 验证的所有属性(所有的数据类型)
→ 验证的截图(个人控制或整个屏幕)包括可配置的模糊的比较
→ 验证复杂的数据控件(比如电网)与强大的可视化的差异
→ 验证的外部文件,SQL数据库和更多
● 容易测试编写
→ 基于Eclipse技术的强大的集成开发环境
→ 也可以作为Eclipse插件
→ 集成了记录,测试执行和结果,脚本调试、监视、高级编辑和维护测试脚本
→ 额外的插件可供SCM、协作等
● 测试日志记录和批处理执行
→ 标准的日志格式是XML
→ 日志还可以是HTML、XLS、ASCⅡ和更多
→ 集成的日志查看器的Squish IDE
→ 无人测试执行和日志使用跨平台的命令行工具
→ 自动化捕获屏幕截图在测试失败和错误
● 高级GUI控件支持和自定义控件
→ 支持所有标准和所有支持的GUI工具包的GUI控件
→ 在菜单、树、表等也被认定为GUI对象
→ 内置支持自定义控件
→ 扩展插件机制来允许实现专用支持先进的自定义控件
→ 强大的对象命名方案,允许使用通配符和正则表达式对象命名
→ 自定义名字产生机制允许用户可以对对象类型名称自定义
→ 更多信息技术支持的所有GUI Squish可以发现在版本页面
● 支持交叉工具包
通过混合Squish的版本,可以自动化混合应用程序利用多个GUI技术。这包括嵌入web内容的桌面GUI,启动Java web Start客户机的web应用程序,使用一些GUI工具包的桌面应用程序,等等。
● 脚本支持访问应用程序内部
选择使用一个流行的脚本语言代替不得不学习一门专有的语言。Squish完全支持Python,JavaScript,Ruby,Perl,Tcl。Squish特定脚本api带来了很多便利。测试人员通过完整脚本访问api的所有被测试的应用程序(GUI和非GUI)来自动化和验证,即使是最复杂的测试场景创建脚本模块和库使用跨测试用例和测试套件。
● GUI对象映射
→ 基于一组给定对象类型稳定的属性独特的物体识别的作品
→ 没有屏幕位置或其他脆弱的方法用于识别对象
→ 名字代发生动态和对象映射不需要“了解”
→ 没有修改被测试的应用程序的GUI对象标识是必要的
→ 对象映射自动创建和曾经有过一个中心点为对象名称查找和维护
→ 可能使用通配符和正则表达式在对象名称
● 分布式和多个应用测试
→ Squish 测试运行器与被测试的应用程序通过一个网络TCP / IP连接
→ 允许应用程序在不同的来自一个中心位置和平台,甚至在嵌入式设备机器上运行
→ 因为测试脚本和应用程序运行在不同的进程空间,一个应用程序的崩溃不会降低整个测试框架
→ 这种架构还允许用一个测试脚本使几个应用程序(可能是在不同的主机上)自动化
● 测试数据和数据驱动测试
→ 支持各种各样的测试数据文件
→ 专门为数据驱动测试脚本API
→ 支持不同类型的表格文件格式(CSV,TSV,等等)
→ 脚本支持SQL数据库访问
● 灵活性和可扩展性
→ 所有模块的测试框架都有开放的接口(插件api,命令行工具,纯文本文件、XML)
→ 能够完全控制测试的执行和测试结果
→ 很容易集成到任何第三方系统
→ 几个现成的集成插件可用(惠普QualityCenter,哈德逊,巡航控制,等等)
测试自动化管理
Squish Central 是一个跨平台的,端到端测试自动化管理解决方案,有助于管理和控制自动化测试的所有方面。Squish Central 的特点包括:
● 管理任务(应用程序部署、测试部署,构建自动化等)
● 管理的测试(Squish GUI测试和更多)
● 自动部署应用程序的构建和测试数据
● 管理机池来执行测试
● 调度的分布式测试运行
● 管理和处理测试结果和报告
● 用户和角色管理
● 团队协作和沟通
Squish Central可以通过一个强大的web界面来设置自动化,执行所有必要的任务。Activity streams和可能文件评价测试和结果支持团队协作。Squish Central 是跨平台的解决方案,使得它可以按照确定的时间表在许多不同的分布式测试目标机器上运行。
支持自动化的完整的周期--构建一个应用程序来运行它的测试--在执行之前,它可以指定不同的来源的应用程序、数据和测试应该被检索并部署。示例来源包括:
● 文件传输所有机器的机器池管理
● Jenkins (former Hudson)
● HTTP
Squish Central紧密与 Squish GUI 测试相结合。此外,它能够运行像JUnit and PHPUnit一类的通用 batch/shell 脚本测试的xUnit家族。一种以浏览器插件为基础的,允许添加新的任务和测试类型的扩展机制。许多自动化的测试运行在许多不同的机器/操作系统组合可以产生大量的结果,包括大量的冗余信息。Squish Central的报告是优化了这样的场景,让结果可以理解和管理。未来的计划包括支持更多的集成,例如,自动错误归档在工具如JIRA、Mantis、或Bugzilla、集成与需求和规范的工具。