博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自动化之UI(autoit)
阅读量:5934 次
发布时间:2019-06-19

本文共 3011 字,大约阅读时间需要 10 分钟。

自动化

说到自动化,我真的很不喜欢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这个。

 

 

识别元素界面打开如下:请记住红色圈圈内图标。抓取元素就是靠点击该按钮不放手拖动到你需要的产品上去识别。粉红部分就是抓取到的信息

 

 

 案例脚本如下:

1 #cs 2 对计算器进行自动化测试 3 自动计算4+5=9 4 结束后关闭计算器窗口 5 #ce 6  7 Calc() 8  9 Func Calc()10    Local $time=2000;11    ;运行计算器12    Run("calc.exe");13    ; 等待1s,计算器窗口出现14    Local $hWnd = WinWait("[CLASS:CalcFrame]", "", 1)15    ;激活该窗口,即将光标定位道该窗口16    WinActivate("[CLASS:CalcFrame]");17    ;点击418    ControlClick($hWnd, "", "Button4");19    ; 等待2s观察效果.20     Sleep($time);21    ;点击+22    ControlClick($hWnd, "", "Button23");23    Sleep($time);24    ;点击525    ControlClick($hWnd, "", "Button10");26    Sleep($time);27    ;点击=28    ControlClick($hWnd, "", "Button28");29    Sleep($time);30    WinClose("[CLASS:CalcFrame]");31 32 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。

转载于:https://www.cnblogs.com/VVsky/p/9313952.html

你可能感兴趣的文章
我的友情链接
查看>>
vmware Horizon View 5.2初体验(五)——桌面池部署
查看>>
mvdom-基于node.js小型以DOM为中心的MVC框架
查看>>
《统一沟通-微软-培训》-2-部署-反向代理-5-创建-访问规则-测试
查看>>
Ubuntu网卡基本配置
查看>>
Python入门---基础介绍
查看>>
我的游戏引擎 Arctic
查看>>
我的友情链接
查看>>
Myeclipse最全快捷键
查看>>
ECMAScript新特性【一】--Object.create
查看>>
用Nohup命令让Linux下的程序真正在后台执行(转载)
查看>>
使用wlst关闭和开启 weblogic console
查看>>
jQuery custom content scroller
查看>>
Hyper-v使用差异磁盘创建虚拟机
查看>>
微服务的团队应对之道
查看>>
第【3】篇 区块链共识机制
查看>>
使用Xtrabackup进行MySQL备份
查看>>
LogStash 安装配置初体验
查看>>
The Java™ Tutorials:Swing
查看>>
JFinal QuartzPlugin
查看>>