长沙分类信息网-长沙新闻网

自动化之UI(autoit)

2024-7-6 5:54:18发布次查看发布人:
一.自动化
说到自动化,我真的很不喜欢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 calculationsoshell.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.quitautoit支持c++,同时也支持java,vb, delphi, c等 。
均可以在以上语言开发的同时嵌入autoit。
四.备注
以上脚本适用于win32标准控件框架,当你的框架并非win32标准时,可以使用autoit走相对坐标去实现或者使用sikuli去实现,总之,自动化是应产品而选择方案的。
详细脚本就不解释了,可以参考手册,手册内有非常多的案例。
做自动化或者说测试,个人感觉需要培养一种思路,而不是说会去用种工具就可以了。
同时,希望有志于往测试发展的人,还是希望至少能熟悉一种语言,这真的是优势,熟悉语言也可以为工作提供不少的帮助。
文章写的这些仅仅只是入门的一种,其实需要培养的思路是有助于去做一些框架的架设等事情,其实可以去熟悉下微软的sdte。

金湖辛德瑞自动化设备有限公司
该用户其它信息

推荐信息

长沙分类信息网-长沙新闻网
关于本站