快速业务通道

基于JUnit的InstallAnywhere安装程序图形界面自动测试框架 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
tJavaOutput("Installer"); 21)  } 22) }

清单 2 中第 3 行启动待测试的安装程序。清单 2 中 waitForWindow 及 waitForPanel 方法从事件通知服务器中获取从安装程序传来的事件,其中窗口事件定义为 window.activated:WINDOWS_NAME,面板显示事件定义为:panel.shown:PANEL_NAME 如果在预定的事件内没有接收到相应的事件,就抛出异常退出程序。清单 2 中 pressTab, pressKey,type press 及 Enter 方法通知自测试机器人向安装程序发送按键及点击鼠标等系统事件。例如清单 2 中第 10-14 行修改了 Choose Install Folders 面板中的安装路径。

对 IA 安装程序图形界面自动测试框架的扩展

IA 提供的图形界面自动测试框架也存在以下不足:

不能对用户自定义的面板进行测试;

不能对用户自定义的业务逻辑进行测试;

由于测试案例采用 java 程序编写,此框架不适合用于测试复杂的安装程序。

基于JUnit的InstallAnywhere安装程序图形界面自动测试框架(6)

时间:2011-07-01 IBM / 孙岩 杨留君 潘章晟

基于 IA 提供的框架,本文通过扩展事件通知服务器所接收的事件类型来实现对用户自定义的面板和业务逻辑的测试。并且定义了 XML 格式的测试脚本,用来编写复杂的测试案例,这样开发者可以集中注意力在测试案例的编写上,不用考虑 Java 语法问题,这样就解决了第三个问题。

首先说明如何通过扩展事件通知服务器所接收的事件类型来实现对用户自定义的面板和业务逻辑的测试。用户自定义的面板显示事件定义为 cuspanel.shown:PANEL_NAME,用户自定义的业务逻辑事件定义为 cuscode:active:CUSCODE_NAME。代码如以下清单 3 所示。

清单 3. 扩展事件通知服务器

1) protected void waitForCusPanel(String s) 2) { 3)   waitForEvent("cuspanel.shown:" + s); 4) } 5) 6) protected void waitForCusCode(String s) 7) { 8)   waitForEvent("cuscode:active:" + s); 9) }

在用户自定义的面板和业务逻辑要向事件通知服务器发送相应的事件,如以下清单 4 为用户自定义的面板向事件通知服务器发送面板显示事件。

清单 4. 用户自定义的面板向事件通知服务器发送面板显示事件

1) Socket connectToServer=new Socket(server,12060); 2) OutputStreamWriter ow = new OutputStreamWriter(connectToServer.getOutputStream()); 3) ow.write("panel.shown:TestCustomerCodePanel"); 4) ow.flush(); 5) ow.close(); 6) connectToServer.close();

接下来说明如何采用 XML 格式的测试脚本描述测试案例,并且改进测试案例控制器去解析并自动执行测试脚本。扩展后的 IA 安装程序图形界面自动测试框架如下图所示:

图 5. 扩展后的 IA 安装程序图形界面自动测试框架架构图

描述测试案例的 XML 文档结构如下表所示。

基于JUnit的InstallAnywhere安装程序图形界面自动测试框架(7)

时间:2011-07-01 IBM / 孙岩 杨留君 潘章晟

表 1. 测试案例脚本的文档结构

节点 子节点 属性
Product install,uninstall installer
Path
Install presenter, pressTab, type, pressKey, releaseKey, waitForWindow, waitForPanel, waitForCusPanel, waitForCusCode, launchInstaller, waitForInstallerToComplete  
Uninstall presenter, pressTab, type, pressKey, releaseKey, waitForWindow, waitForPanel, waitForCusPanel, waitForCusCode, launchUninstaller, waitForInstallerToComplete  
pressEnter    
pressTab   times
type    
pressKey   times
releaseKey    
waitForWindow    
waitForPanel    
waitForCusPanel    
waitForCusCode    
launchInstaller    
launchUninstaller   name
waitForInstallerToComplete    

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号