【QTP系列讲座 9】 == AutoItX技术的应用 ==

上一篇 / 下一篇  2009-10-23 12:25:09 / 个人分类:QTP系列讲座

首先介绍一下AutoIt :

    AutoIt v3 是用以编写并生成具有 BASIC 语言风格的脚本程序的免费软件,它被设计用来在Windows GUI(用户界面)中进行自动操作。通过它可以组合使用模拟键击、鼠标移动和窗口/控件操作等来实现自动化任务,而这是其它语言所无法做到或尚无可靠方法实现的(比如VBScript和SendKeys)。

首先要使用AUTOIT肯定需要先安装它,安装文件网上很多,这里我就不提供下载地址了~

大家可以自己百度去搜一下,安装完之后,AUTOIT会自动注册一个AUTOITX的DLL COM组件~

接下来就可以在QTP里编写脚本了,如果是10.0的话可以直接在QTP里编写,如果不是就先在VBSEDIT里编写(原因:有代码提示)

1.在QTP脚本视图里输入view plaincopy to clipboardprint?
Set AutoIt = CreateObject("AutoItX3.Control") 
Set AutoIt = CreateObject("AutoItX3.Control")

2.由于在我们安装AUTOIT过程中已经自动注册过了COM,所以通过oAutoIt这个对象可以点出很多方法和属性。

 

知道了怎么调用之后我们就可以通过一个最简单的实例来了解下AUTOIT究竟是一个怎么样的东西,它能够做些什么

================实例=================

就以飞机订票登陆为例

在QTP脚本视图中输入

view plaincopy to clipboardprint?
'创建对象  
Set AutoIt = CreateObject("AutoItX3.Control")  
'启动飞机订票   注意路径每个人的路径可能不一样  
oAutoIt.Run "D:\\Program Files\\HP\\QuickTest Professional\\samples\\flight\\app\\flight4a.exe" 
'等待登陆窗口弹出  
oAutoIt.WinWaitActive "Login" 
'给用户名控件发送消息:zzxxbb112  
oAutoIt.ControlSend "Login","","Edit1","zzxxbb112" 
'给密码控件发送消息:mercury  
oAutoIt.ControlSend "Login","","Edit2","mercury" 
'点击LOGIN按钮  
oAutoIt.ControlClick "Login","","Button1" 
set AutoIt=nothing 
'创建对象
Set AutoIt = CreateObject("AutoItX3.Control")
'启动飞机订票   注意路径每个人的路径可能不一样
oAutoIt.Run "D:\\Program Files\\HP\\QuickTest Professional\\samples\\flight\\app\\flight4a.exe"
'等待登陆窗口弹出
oAutoIt.WinWaitActive "Login"
'给用户名控件发送消息:zzxxbb112
oAutoIt.ControlSend "Login","","Edit1","zzxxbb112"
'给密码控件发送消息:mercury
oAutoIt.ControlSend "Login","","Edit2","mercury"
'点击LOGIN按钮
oAutoIt.ControlClick "Login","","Button1"
set AutoIt=nothing

简单的介绍一下每一步的意思

1.创建COM对象

view plaincopy to clipboardprint?
Set AutoIt = CreateObject("AutoItX3.Control")  
Set AutoIt = CreateObject("AutoItX3.Control")  

2.RUN方法 ----   启动对应路径的应用程序,这里因为是QTP10.0的因此路径是在HP下的。10.0一下是在MERCURY下的这个可以直接查找下目标就可以了。

view plaincopy to clipboardprint?
oAutoIt.Run "D:\\Program Files\\HP\\QuickTest Professional\\samples\\flight\\app\\flight4a.exe" 
oAutoIt.Run "D:\\Program Files\\HP\\QuickTest Professional\\samples\\flight\\app\\flight4a.exe"

3.这一步是等待LOGIN窗口弹出变为当前激活窗口后,再执行后续的脚本,不然可能出现错误

view plaincopy to clipboardprint?
oAutoIt.WinWaitActive "Login" 
oAutoIt.WinWaitActive "Login"

4.用户名文本框输入Edit1,至于为什么是Edit1可以使用AutoIt v3 window info 查看,这个东西其实就相当于QTP的SPY

view plaincopy to clipboardprint?
oAutoIt.ControlSend "Login","","Edit1","zzxxbb112"  
oAutoIt.ControlSend "Login","","Edit1","zzxxbb112" 

5.这一步就是输入密码框和前面用户名大同小异

view plaincopy to clipboardprint?
oAutoIt.ControlSend "Login","","Edit2","mercury" 
oAutoIt.ControlSend "Login","","Edit2","mercury"

6.也是可以通过INFO来查控件属性

view plaincopy to clipboardprint?
oAutoIt.ControlClick "Login","","Button1" 
oAutoIt.ControlClick "Login","","Button1"  

7.最后释放对象

view plaincopy to clipboardprint?
set AutoIt=nothing   
set AutoIt=nothing  

这样一个简单登录就完成了,我们运行一下看看,是不是自动化了。

总结:

由于AUTOIT对于对象识别都比较底层,特别是对CS识别还是不错的,因此有些时候可以用于弥补QTP对象不能识别时的不足,比如在BS项目中可能会碰到密码控件不能识别或者一些控件不能成功识别的,可以考虑使用AUTOIT的消息发送发放试试。在AUTOIT中还有很多实用的方法,大家可以自己去看一下,总之AUTOIT绝对是一款非常有用的自动化测试辅助工具。

autoit帮助文档:http://www.dreams8.com/autoit/


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zzxxbb112/archive/2009/09/21/4576841.aspx#


TAG:

 

评分:0

我来说两句

uh87juooo

uh87juooo

风吹云动心不动,水推船移岸不移

日历

« 2024-05-30  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 30350
  • 日志数: 48
  • 建立时间: 2009-09-27
  • 更新时间: 2009-10-30

RSS订阅

Open Toolbar