快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
发的安装程序演示如何使用本文介绍的测试框架。此安装程序包括三个面板 :Introduction, Choose Install Folders 和 Install Complete(图 2-4),安装程序会创建用户指定的安装路径,并将一个文件复制到安装路径。测试内容包括:窗口是否被成功打开,面板是否被成功显示,安装程序是否正确响应了系统事件,如点击按钮,输入字母等。

图 2. 面板 Introduction

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

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

图 3. 面板 Choose Install Folders

图 4. 面板 Install Complete

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

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

应用本文介绍的框架,对它进行自动化单元测试变得很简单。要使用 IA 提供的测试框架,要把 IA 的自动测试库文件 ia-gui-test-auto.jar 加入到 CLASSPATH 中,你可以在 $IAHOME$ \gui-test-auto\lib 中找到它。接下来编写测试程序,首先你要继承 GUIAutomationFixture 编写自己的测试程序,GUIAutomationFixture 实现了上一节所讲的图形界面自动测试 fixture。

public class BasicProjectAutomation extends GUIAutomationFixture

然后你要编写测试方法,测试方法要做下面三件事情:

指定执行的安装程序;

执行测试用例;

设置断言,检查程序安装是否成功。

清单 1. 编写测试方法

1) String NEW_LOCATION = "newlocation"; 2) String productName = "BasicProject"; 3) String buildOutput = "_Build_Output/Web_Installers/InstData/Java"; 4) File installer = new File("./" + productName + buildOutput, "install.jar"); 5) File installDir = new File("C:/Program Files",NEW_LOCATION); 6) 7) setWaitTimeout(30 * SECONDS); 8) 9) runInstall(productName, installer); 10) assertInstallerHasCompletedSuccessfully(); 11) assertTrue("Install dir should have been created.", installDir.exists()); 12) assertTrue("file-to-install.txt", new File(installDir,      "file-to-install.txt").exists());

清单 1 中第 2-5 行指定要执行的安装程序,第 9 行执行测试用例,第 10-12 行设置断言,检查程序安装是否成功。第 10 行检查安装程序是否正常退出,第 11 行检查安装目录是否创建成功,第 12 行检查 file-to-install.txt 是否被复制到安装目录中。

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

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

测试用例定义了要测试的面板以及发送给安装程序的系统事件,如以下清单 2 所示。

清单 2. 编写测试用例

1) private void runInstall(String productName, File installer) { 2)  try { 3)    launchInstaller(installer.getPath()); 4) 5)    waitForWindow(productName); 6)    waitForPanel("Introduction"); 7)    pressEnter(); 8) 9)    waitForPanel("Choose Install Folder"); 10)    pressTab(); 11)    for (int i = 0; i < productName.length(); i++) { 12)      pressKey(KeyEvent.VK_BACK_SPACE); 13)    } 14)    type(NEW_LOCATION); 15)    waitForPanel("Install Complete"); 16)    pressEnter(); 17) 18)    waitForInstallerToComplete(); 19)  } finally { 20)    prin

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号