AutoIt 是一款开源的自动化工具,主要设计用于 Windows GUI 自动化,可以当成 轻量级的自动化测试工具 来使用。
目前最新版本是 3.3.4 :
http://www.autoitscript.com/autoit3/docs/history.htm
在使用 RFT 、 QTP 等自动化测试工具进行测试时,如果碰到一些 Windows GUI 对象难以识别,可以结合 AutoIt 脚本来解决。
由于 AutoIt 的脚本可以编译成 exe 可执行文件,因此,可以在 RFT 中通过下面的方式来调用 AutoIt 脚本:
1 、首先,编写 AutoIt 脚本并转换成 exe 可执行文件:
Dim $title
Dim $ok_contrl
$title=" 关于 计算器 "
$ok_contrl = "[CLASS:Button;TEXT: 确定 ]"
WinActivate($title)
ControlClick($title,"",$ok_contrl)
2 、在 RFT 中调用:
startApp ( "calc" );
// Window: calc .exe : 计算器
应用程序menuBar().click(atPath ( "帮助(H)" ));
应用程序menuBar().click(atPath ( "帮助(H)->关于计算器(A)" ));
String AutoItScript = "D://RFT//RFT_Project//Calc//AutoIt//closeCalc.exe" ;
String WorkDir = "D://RFT//RFT_Project//Calc//AutoIt" ;
run (AutoItScript ,WorkDir);
在 QTP 中,可以采用类似的方式调用 AutoIt 编译的可执行文件:
SystemUtil.Run "calc"
Window(" 计算器 ").Activate
Window(" 计算器 ").WinMenu("Menu").Select " 帮助 (H); 关于计算器 (A)"
SystemUtil.Run "AutoIt/closeCalc.exe"
另外,由于 AutoIt 支持 COM 接口的调用,因此,也可以这样调用:
Set oAutoIt = CreateObject("AutoItX3.Control")
oAutoIt.Run "calc"
oAutoIt.WinActivate " 计算器 "
oAutoIt.Send "!h"
oAutoIt.Send "a"
title = " 关于 计算器 "
ok_contrl = "[CLASS:Button;TEXT: 确定 ]"
oAutoIt.WinActivate title
oAutoIt.ControlClick title ,"",ok_contrl
oAutoIt.WinClose " 计算器 "
由此可见, AutoIt 在很大程度上比 DeviceReplay 要强!