一.自動化
說到自動化,我真的很不喜歡UI這層去做實踐。前置條件要求比較嚴謹,如果不滿足特定的前置條件,那么成本實在太大了。
投入與產出差過大,效果打折扣。從互聯網來說,UI自動化是入門門檻很低的一種實踐,但是互聯網能滿足這種前置條件的產品感覺并不多。
其一:它需要產品是維穩的,即變動不是非常的大。
其二:對于元素會有一定的要求,比如web,那么對html的頁面元素就會希望開發能規范ID或者class等;對于PC應用,也則需要有可識別的ID,包括移動APP也是。
常見使用的工具一般集合在:selenium/uiautomation/appium/monkey等,早之前還有QTP。
我早練手是使用的QTP,后面陸陸續續也用過一些其他的,比如web自動化還做了瀏覽器js插件去適配測試。
后面,有接收到任務要求做PC應用程序的自動化,當時認為QTP太大了,而且需要破解等比較麻煩,就改用了AutoIT工具去實現。
AutoIT這款工具,大部分是被用來做游戲外掛的,所以想做外掛的人不要局限于按鍵精靈。
二.AutoIT范例
首先介紹下AutoIt常用的兩個菜單項,如下圖:
1.幫助文檔
2.autoit window info分為32位系統識別和64位系統識別,識別程序應用的元素。類似于selenium抓取的html元素,又類似于uiautomationview這個。
識別元素界面打開如下:請記住紅色圈圈內圖標。抓取元素就是靠點擊該按鈕不放手拖動到你需要的產品上去識別。粉紅部分就是抓取到的信息
案例腳本如下:
#cs對計算器進行自動化測試自動計算4+5=9結束后關閉計算器窗口#ceCalc()Func Calc() Local $time=2000; ;運行計算器 Run("calc.exe"); ; 等待1s,計算器窗口出現 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等 。
均可以在以上語言開發的同時嵌入Autoit。
四.備注
以上腳本適用于win32標準控件框架,當你的框架并非win32標準時,可以使用autoit走相對坐標去實現或者使用sikuli去實現,總之,自動化是應產品而選擇方案的。
詳細腳本就不解釋了,可以參考手冊,手冊內有非常多的案例。
做自動化或者說測試,個人感覺需要培養一種思路,而不是說會去用種工具就可以了。
同時,希望有志于往測試發展的人,還是希望至少能熟悉一種語言,這真的是優勢,熟悉語言也可以為工作提供不少的幫助。
文章寫的這些僅僅只是入門的一種,其實需要培養的思路是有助于去做一些框架的架設等事情,其實可以去熟悉下微軟的SDTE。
相關產品
免責聲明
- 凡本網注明“來源:化工儀器網”的所有作品,均為浙江興旺寶明通網絡有限公司-化工儀器網合法擁有版權或有權使用的作品,未經本網授權不得轉載、摘編或利用其它方式使用上述作品。已經本網授權使用作品的,應在授權范圍內使用,并注明“來源:化工儀器網”。違反上述聲明者,本網將追究其相關法律責任。
- 本網轉載并注明自其他來源(非化工儀器網)的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點和對其真實性負責,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品第一來源,并自負版權等法律責任。
- 如涉及作品內容、版權等問題,請在作品發表之日起一周內與本網聯系,否則視為放棄相關權利。