AutoIt:Windows自动化测试

来源:互联网 发布:js贪吃蛇 编辑:程序博客网 时间:2024/05/22 06:40

在linux上可以使用shell等脚本语言对命令行的程序进行自动化控制。在windows上一般用批处理来进行自动化的操作,但是如何能够对GUI程序进行自动化控制,这方面的信息还比较少,有位高手向我推荐了AutoIt这个脚本工具。

AutoIt是一个免费软件,是一个与BASIC类似的脚本语言,主要用于自动化windows的GUI程序和一些常规的脚本。它包括模拟敲某个键,鼠标操作,对窗口和控件的操作来达到自动化的目的,而用其他的语言或许不可能或者难办到。工具包(http://pan.baidu.com/s/1hs3j4rE)


1.下载与安装


AutoIt的下载和安装都很简单,只是提醒一点,安装过程中有一步是要选择默认打开脚本文件时是运行还是编辑,这里建议选择编辑。

AutoIt下载地址:https://www.autoitscript.com/site/autoit/downloads/ 或者 工具包中的autoit-v3-setup.exe


2.AutoIt使用


AutoIt WIndow Info(x86/x64):查看Title,Class,ID,Text等数据。

Check For Updates:更新软件。

Compile Script to .exe(x86/x64):将.au3转换为.exe或者.a3x。

    .exe和.a3x的区别:exe文件将脚本解释器AutoIt3.exe也打包在内了;而a3x文件没有打包该解释器,从而可以得到更小的文件体积,但编译它需要autoit3.exe。

Run Script(x86/x64):运行.au3或者.a3x。

SciTE Script Editor:编辑器。


3.实例


自学可以参照工具包中除安装包外的其他三个文档,编写脚本时可以参照http://www.autoitx.com/Doc/。

我使用AutoIt主要是用来测试Windows客户端软件,通过编写脚本使其自动模拟敲某个键,鼠标操作,对窗口和控件的操作。

以飞秋为例,可以通过AutoIt WIndow Info(x86/x64)获取其Title、控件的ID或者Class、Instance,通过编写脚本来控制鼠标的移动、点击,窗口的放大与缩小等。

脚本如下:

#cs ---------------------------------------------------------------------------- AutoIt Version: 3.3.14.2 Author:         Sarah Script Function:Template AutoIt script.#ce ----------------------------------------------------------------------------; Script Start - Add your code below here#include <GUITreeView.au3>#include <GUIListBox.au3>#include <WinAPI.au3>Global $title='飞秋(FeiQ)---局域网即时通讯'$search=1002 ;搜索$friend_tip=1293 ;好友标签$group_tip=1294 ;群标签$recent_tip=1295 ;最近通话标签$bbs_tip=1296 ;论坛标签;中间窗口相关控件$friend_view=1193 ;好友$group_view=1190 ;群$recent_view=1298 ;最近通话;~$bbs_view= ;论坛;~ 激活客户端窗口WinActivate($title)Sleep(1000);获取好友数量$frdNum=getOnFrdCount()MsgBox(0,'好友数量',$frdNum);获取群数量$groupNum=getOnGroupCount()MsgBox(0,'群数量',$groupNum);获取最近通话数量$recentNum=getOnRecentCount()MsgBox(0,'最近通话数量',$recentNum);~ 点击论坛标签ControlClick($title,"",$bbs_tip)MsgBox(0,'点击论坛标签','论坛...');放大缩小窗口For $i = 3 to 1 Step -1   WinSetState($title, "", @SW_HIDE)   WinSetState($title, "", @SW_SHOW)   WinSetState($title, "", @SW_MINIMIZE)   WinSetState($title, "", @SW_MAXIMIZE)   WinSetState($title, "", @SW_RESTORE)Next#comments-start@SW_HIDE = 隐藏窗口@SW_SHOW = 显示以前隐藏的窗口@SW_MINIMIZE = 最小化窗口@SW_MAXIMIZE = 最大化窗口@SW_RESTORE = 撤销窗口的最小化或最大化状态@SW_DISABLE = 禁用窗口@SW_ENABLE = 使窗口可用#comments-end;函数;获得当前好友数量Func getOnFrdCount()   ControlClick($title,"",$friend_tip)   $h=getCtrlHandle($friend_view)   Return  _GUICtrlTreeView_GetCount($h)EndFunc;获得群数量Func getOnGroupCount()   ControlClick($title,"",$group_tip)   $h=getCtrlHandle($group_view)   Return  _GUICtrlTreeView_GetCount($h)EndFunc;获得最近通话数量Func getOnRecentCount()   ControlClick($title,"",$recent_tip)   $h=getCtrlHandle($recent_view)   Return  _GUICtrlListBox_GetCount($h)   _GUICtrlTreeView_GetCountEndFunc;~ 获取控件句柄Func getCtrlHandle($control)   Return ControlGetHandle($title,'',$control)EndFunc

阅读全文
0 0
原创粉丝点击