| 注冊| 產(chǎn)品展廳| 收藏該商鋪

行業(yè)產(chǎn)品

當前位置:
金湖辛德瑞自動化設(shè)備有限公司>>技術(shù)文章>>自動化之UI(autoit)

產(chǎn)品分類品牌分類

更多分類

自動化之UI(autoit)

閱讀:842        發(fā)布時間:2019-7-17

一.自動化

說到自動化,我真的很不喜歡UI這層去做實踐。前置條件要求比較嚴謹,如果不滿足特定的前置條件,那么成本實在太大了。

投入與產(chǎn)出差過大,效果打折扣。從互聯(lián)網(wǎng)來說,UI自動化是入門門檻很低的一種實踐,但是互聯(lián)網(wǎng)能滿足這種前置條件的產(chǎn)品感覺并不多。

其一:它需要產(chǎn)品是維穩(wěn)的,即變動不是非常的大。

其二:對于元素會有一定的要求,比如web,那么對html的頁面元素就會希望開發(fā)能規(guī)范ID或者class等;對于PC應(yīng)用,也則需要有可識別的ID,包括移動APP也是。

常見使用的工具一般集合在:selenium/uiautomation/appium/monkey等,早之前還有QTP。

我早練手是使用的QTP,后面陸陸續(xù)續(xù)也用過一些其他的,比如web自動化還做了瀏覽器js插件去適配測試。

后面,有接收到任務(wù)要求做PC應(yīng)用程序的自動化,當時認為QTP太大了,而且需要破解等比較麻煩,就改用了AutoIT工具去實現(xiàn)。

AutoIT這款工具,大部分是被用來做游戲外掛的,所以想做外掛的人不要局限于按鍵精靈。

 

二.AutoIT范例

首先介紹下AutoIt常用的兩個菜單項,如下圖:

1.幫助文檔

2.autoit window info分為32位系統(tǒng)識別和64位系統(tǒng)識別,識別程序應(yīng)用的元素。類似于selenium抓取的html元素,又類似于uiautomationview這個。

識別元素界面打開如下:請記住紅色圈圈內(nèi)圖標。抓取元素就是靠點擊該按鈕不放手拖動到你需要的產(chǎn)品上去識別。粉紅部分就是抓取到的信息

案例腳本如下:

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
#cs對計算器進行自動化測試自動計算4+5=9結(jié)束后關(guān)閉計算器窗口#ceCalc()Func Calc()   Local $time=2000;   ;運行計算器   Run("calc.exe");   ; 等待1s,計算器窗口出現(xiàn)   Local $hWnd = WinWait("[CLASS:CalcFrame]", "", 1)   ;激活該窗口,即將光標定位到該窗口   WinActivate("[CLASS:CalcFrame]");   ;點擊4   ControlClick($hWnd, "", "Button4");   ; 等待2s觀察效果.    Sleep($time);   ;點擊+   ControlClick($hWnd, "", "Button23");   Sleep($time);   ;點擊5   ControlClick($hWnd, "", "Button10");   Sleep($time);   ;點擊=   ControlClick($hWnd, "", "Button28");   Sleep($time);   WinClose("[CLASS:CalcFrame]");EndFunc   ;==>Calc

 

三. AutoIt支持其他語言

AutoIt支持VBScript腳本,范例如下

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Example WSH Script (VBScript)'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Require Variants to be declared before usedOption Explicit''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Declare Variables & Objects''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Dim oShellDim oAutoIt''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Initialise Variables & Objects''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Set oShell = WScript.CreateObject("WScript.Shell")Set oAutoIt = WScript.CreateObject("AutoItX3.Control")''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Start of Script''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''WScript.Echo "This script will run some test calculations"oShell.Run "calc.exe", 1, FALSE' Wait for the calc window to become activeoAutoIt.WinWaitActive "Calculator", ""' Send some keystokes to calcoAutoIt.Send "2*2="oAutoIt.Sleep 500oAutoIt.Send "4*4="oAutoIt.Sleep 500oAutoIt.Send "8*8="oAutoIt.Sleep 500oAutoIt.WinClose "Calc", ""oAutoIt.WinWaitClose "Calc", ""WScript.Quit

AutoIt支持C++,同時也支持java,VB, Delphi, C等 。

均可以在以上語言開發(fā)的同時嵌入Autoit。

 

四.備注

以上腳本適用于win32標準控件框架,當你的框架并非win32標準時,可以使用autoit走相對坐標去實現(xiàn)或者使用sikuli去實現(xiàn),總之,自動化是應(yīng)產(chǎn)品而選擇方案的。

詳細腳本就不解釋了,可以參考手冊,手冊內(nèi)有非常多的案例。

做自動化或者說測試,個人感覺需要培養(yǎng)一種思路,而不是說會去用種工具就可以了。

同時,希望有志于往測試發(fā)展的人,還是希望至少能熟悉一種語言,這真的是優(yōu)勢,熟悉語言也可以為工作提供不少的幫助。

文章寫的這些僅僅只是入門的一種,其實需要培養(yǎng)的思路是有助于去做一些框架的架設(shè)等事情,其實可以去熟悉下微軟的SDTE。

收藏該商鋪

登錄 后再收藏

提示

您的留言已提交成功!我們將在第一時間回復(fù)您~
二維碼 意見反饋
在線留言