当前位置: 首页 > 工具软件 > Abbot > 使用案例 >

测试工具(一)——Abbot 测试SWT

法弘亮
2023-12-01

安装

Abbot,一个可以自动化的测试 SWT Eclipse 插件用户界面的测试框架。

1.  CVS上下载

2.  abbot转换为插件,使用PDE工具

3.  修改abbot.swtabbot.eclipse的类路径和依赖项,保证无错误

4.  修改运行的VM参数,添加:

-Djava.library.path=D:\eclipse\configuration\org.eclipse.osgi\bundles\104\1\.cp

运行实例(example)

基本概念:

1.  测试器(Tester):执行不同的UI构件测试,可用于触发UI构建的相应动作。当出现widget not found,可能是菜单路径不对。

2.  “等待-触发”方式,保证测试的顺序满足我们的要求。启动线程等待对话框或者向导,然后执行对它们的测试是使用abbot的常用方法。

3.  查找起(Finder)要与匹配器(Matcher)一起协同工作,在给定的UI层体寻找目标构件,再让构件执行相应的动作,就需要用到相应构件的测试器。

4.  测试代码是在一个线程中访问UI的构件,要将这些代码放在runnable run方法体内通过abbot.tester.swt.Robot.syncExec执行。可使用Robot.delay(1000)保证一定的延迟,保证你可以看得到。

用户界面测试的常见形式包括:判断构件是否正确形成、构件的状态和动作是否符合预定的需求、构件的数据是否满足测试的要求等。

体系结构和工作原理

1.  测试器:为几乎所有的SWT构件提供相应的测试器,不存在的复合构件由简单构件组成,例如section 的标题栏是一个Label,可以先查找到label,再使用actionClick来打开或关闭一个section.  Java.awt.Robot可生成操作系统的事件和消息来创建自动测试,自运行的演示,让应用来控制鼠标和键盘。

2.  查找器和匹配器:查找器会遍历hierarchy上的所有UI构件,匹配器,例如:TextMatchertext信息查找,而NameMatcher对所属类和对象名进行查找。

3.  测试代码的同步执行:在等待线程中,如果执行UI构件相关操作的断言,就应当将其封装在一个runnable里面使用abbot.tester.swt.Robot.syncExec保证其同步的执行,

4.  Abbot默认的等待时间是一分钟,在abbot.tester.swt.Robot中定义,超过时间后,会抛出WaitTimeOutError异常。当你的等待不是对话框或者构件的出现(如等待服务器返回的数据)可使用abbot.tester.swt.Robot的“wait(Condition condition)”方法,实现自己的condition接口

 

 类似资料: