RFT和QTP與AutoIt

TIB發表於2010-01-16

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 要強!

 

 

 

相關文章