现在的位置: 首页 > 软件测试 > 测试工具 > 软件测试 > 正文

AutoIT自动化测试初探

2012年04月24日 测试工具, 软件测试 ⁄ 共 2458字 ⁄ 字号 暂无评论 ⁄ 阅读 7,587 次

本文主要介绍使用AutoIT开发一款自动化测试工具的方法与技巧。

1.   AutoIT简介

AutoIt v3 是用以编写并生成具有 BASIC 语言风格的脚本程序的免费软件, 它被设计用来在Windows GUI(用户界面)中进行自动操作. 通过它可以组合使用模拟键击,鼠标移动和窗口/控件操作等来实现自动化任务. AutoIt 非常小巧,完全运行在所有windows操作系统上.并且不需要任何运行库.

AutoIt 最初是为PC的"批量处理"而设计, 用于对数千台PC进行(同样的)配置. 现在,autoit是一个支持复杂表达式, 自定义函数,循环等的强大脚本软件.

AutoIt 可以做的事:

  • 简单易懂的类 BASIC 表达式
  • 模拟键盘,鼠标动作事件
  • 操作窗口与进程
  • 直接与窗口的"标准控件"交互(设置/获取文字,移动,关闭,等等)
  • 脚本可以编译为标准可执行文件
  • 创建用户图形界面接口(GUI)
  • COM支持
  • 正则表达式
  • 直接调用外部DLL 和 Windows API 函数
  • 程序运行为功能(让程序运行于其它账户)
  • 完全兼容于 Windows 2000 / XP / 2003 / Vista / 2008
  • Unicode 与 64位运算支持
  • 高精度,易使用的数学运算
  • 可以运行于 Windows Vista Account Control (UAC)

2.   AutoIT在软件测试中的应用

AutoIT在软件测试中可以通过编写脚本实现软件版本自动安装、卸载以及测试用例的自动执行,如重复性较高的冒烟测试用例自动执行等。

下面简单介绍如何使用AutoIT编写脚本,在此我们以一个测试小工具为例。

3.   实践-自动远程连接与打开服务器磁盘

在项目测试过程中经常需要远程连接各个服务器或打开服务器某个磁盘进行文件的拷贝,每次操作时都需输入账户密码,多个服务器多个密码时经常出现混淆等情况,所以产生了编写一款小工具可以自动管理密码,自动远程连接及打开服务器硬盘拷贝文件的想法。

3.1              AutoIT下载

可以从官方网站http://www.autoitscript.com/site/autoit/downloads/下载AutoIT最新版本v3.3.6.1。

亦可从国内汉化网站http://www.autoitx.com/下载最新的汉化版本。

3.2              设计界面

运行AutoIT中自带的Koda设计器,Koda支持多种控件(包括标准控件,Win32控件,附加控件及自定义控件),可以方便快捷的设计软件界面(虽然比较简陋,但实用即可)。

主要使用了以下控件:自定义控件中的IP地址输入框,标准控件中的按钮、组合框、复选框及单选框控件(如下图所示):

Koda设计界面

此款工具运行后界面如下:

工具运行界面

3.3              主要逻辑

主要内部逻辑如下:

1)       用户名密码经过加密后,保存在ini配置文件中(默认在脚本目录下,若文件不存在则自动生成):

加密保存的帐号密码

2)       选择远程连接时判断是否勾选“Console用户”选项(同时判断操作系统:Windows 2003为 mstsc /console,其他系统如WinXP和Win7则为mstsc /admin),之后自动输入用户名、密码进行远程连接

3)       选择“打开”则根据填写的IP地址与选择的磁盘自动打开相应磁盘(若账户信息不存在会提示输入;若账户信息输入错误,会提示重新输入后重试,其中重试次数可配置,修改ini文件中RetryTimes=n即重试n次)

3.4              编写代码

1)       “测试小工具”使用GUI OnEvent 事件模式(详细参考AutoIT帮助文档:GUI界面相关),我们只需编写相关事件(如按钮点击事情)所对应的函数即可。在此我们定义了“远程连接”Connect,“打开”Open,“选择Console用户”IsConsole等事件所对应的函数。

函数配置

2)       编写相关函数的具体内容,以Connect函数为例,“自动远程连接”实现过程如下:

  • 获取IP地址
  • 获取此IP地址用户名与密码
  • 生成mstsc命令后,运行
  • Win7系统弹出一些警告窗口时,自动进行处理
  • Windows 2003系统中,选项中选择登录到“磁盘驱动器”弹出警告时,自动进行处理
  • 等待“远程连接”窗口打开后,自动输入账户名密码进行登录
  • 详细代码如下

    详细代码

3)       其他相关函数编写方法与上类似,不再赘述

4)       当然,最后还需在不同的操作系统上分别进行调试(如Windows 2003与Win7)

3.5              存在的问题及注意事项

1)       由于暂时无法判断“远程连接”中用户名、密码输入错误后的登录失败界面,“远程连接”中登录失败后不会重试

2)       由于使用的“发送模拟键击操作函数Send()”对输入法敏感,在工具运行中会自动切换系统输入法至英文状态

3)       支持快捷键操作F5,F6,F7

4)       工具使用中,有时打开磁盘后等待时间可能较长(5-10s),还需进一步优化