一.自動化
說到自動化,我真的很不喜歡UI這層去做實踐。前置條件要求比較嚴(yán)謹(jǐn),如果不滿足特定的前置條件,那么成本實在太大了。
投入與產(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)用程序的自動化,當(dā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)圖標(biāo)。抓取元素就是靠點擊該按鈕不放手拖動到你需要的產(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) ;激活該窗口,即將光標(biāo)定位到該窗口 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標(biāo)準(zhǔn)控件框架,當(dāng)你的框架并非win32標(biāo)準(zhǔn)時,可以使用autoit走相對坐標(biāo)去實現(xiàn)或者使用sikuli去實現(xiàn),總之,自動化是應(yīng)產(chǎn)品而選擇方案的。
詳細腳本就不解釋了,可以參考手冊,手冊內(nèi)有非常多的案例。
做自動化或者說測試,個人感覺需要培養(yǎng)一種思路,而不是說會去用種工具就可以了。
同時,希望有志于往測試發(fā)展的人,還是希望至少能熟悉一種語言,這真的是優(yōu)勢,熟悉語言也可以為工作提供不少的幫助。
文章寫的這些僅僅只是入門的一種,其實需要培養(yǎng)的思路是有助于去做一些框架的架設(shè)等事情,其實可以去熟悉下微軟的SDTE。
相關(guān)產(chǎn)品
免責(zé)聲明
- 凡本網(wǎng)注明“來源:化工儀器網(wǎng)”的所有作品,均為浙江興旺寶明通網(wǎng)絡(luò)有限公司-化工儀器網(wǎng)合法擁有版權(quán)或有權(quán)使用的作品,未經(jīng)本網(wǎng)授權(quán)不得轉(zhuǎn)載、摘編或利用其它方式使用上述作品。已經(jīng)本網(wǎng)授權(quán)使用作品的,應(yīng)在授權(quán)范圍內(nèi)使用,并注明“來源:化工儀器網(wǎng)”。違反上述聲明者,本網(wǎng)將追究其相關(guān)法律責(zé)任。
- 本網(wǎng)轉(zhuǎn)載并注明自其他來源(非化工儀器網(wǎng))的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點和對其真實性負責(zé),不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品第一來源,并自負版權(quán)等法律責(zé)任。
- 如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。