`

【转】QTP好用的 DeviceReplay模拟KEYBOARD/MOUSE操作

 
阅读更多

原文地址:http://www.51testing.com/?uid-27374-action-viewspace-itemid-847878

QTP基本使用——检查焦点

今天看到一段检验焦点的代码, 特地研究 并分享出来。 希望共同分析。

 

'目的: 利用Tab键来检查焦点的位置变化是否正确

'检查控件的focused属性的函数
Public functionCheckFocus(TestObject)
   If  TestObject.CheckProperty("focused","True",2) Then
        CheckFocus = True
     else
        CheckFocus = False
   End If
End Function

'tab按键的键值
Const VK_TAB = 15
 
'创建DeviceReplay对象
Set DeviceReplay = CreateObject("Mercury.DeviceReplay")

'创建Dictionary对象,这个和创建数组很类似
Set dic = CreateObject("Scripting.Dictionary")

'添加Dictionary的key和value,把顺序号作为key, 控件对象作为value
dic.add "1",dialog("Login").WinEdit("Agent Name:")
dic.add "2",dialog("Login").WinEdit("Password:")
dic.add "3",dialog("Login").WinButton("OK")

'定位到程序窗口, 并判断窗口中的默认焦点是否在正确的位置
Dialog("Login").Activate
CheckFocus(dic.item("1"))

For i=2 to dic.count
    DeviceReplay.PressKey VK_TAB  '此处就是点击tab键,
    If CheckFocus(dic.item(CStr(i))) = False Then
        Exit for
    else
        msgbox "焦点正确"
    End If
   
Next

 

PS:首先要将对象Login加入到Object Repository. 然后在运行脚本即可

1.查看属性值的方法

Msgbox Window("名片界面").WinObject("名片界面_一般_昵称").GetROProperty("text")
MsgboxTypeName(Window("名片界面").WinObject("名片界面_一般_昵称").GetROProperty("text"))
actual="xiaochong"
MsgboxStrComp(Window("名片界面").WinObject("名片界面_一般_昵称").GetROProperty("text"),actual,1)

Result:

username   '得到具体的text内容
string   '得到text的类型
0   '比较实际得到的和actual的差别

 

2.标准Windows控件的基本属性和方法

1)使用Exist属性来判断空间是否存在

:可以通过访问控件的Exist属性来判断控件是否存在于当前打开的应用程序中。

2)使用CheckProperty检查控件属性

:使用此方法可以实现与标准检查点想类似的功能。 例如。检查控件的属性是否与指定值相一致,如果一致,则在测试结果中标示为pass,否则标识为fail。

:其实现个功能与checkpoint实现的功能基本一致。

3)使用GetROProperty获取控件的属性

:此方法用于返回测试对象的当前属性

 

3.DeviceReplay可以实现鼠标点击桌面上任意指定的坐标,或者模拟点击键盘操作。 好像在判断大小写的时候有局限性,  这里有篇小文章简单介绍了下, 感兴趣的可以研究下:

http://www.51testing.com/?161787/action_viewspace_itemid_84200.html

 

DeviceReplay 对象用来模拟鼠标的单击和移动键盘输入等,但有个前提,实用该对象前,需要保证键盘状态正确

如NUMLOCK是否打开等,因为DeviceReplay不能检测键盘状态

 

Mercury.DeviceReplay包括如下方法:

1、SendString方法

 

向激活的窗口发送一个或多个键盘按键:object.SendString( str )

 

2、KeyDown方法

 

模拟一个按键的按下并保持:object.KeyDown( key )  key按键的数值码

 

3、KeyUp方法

 

模拟通过键盘释放某个按下的按键:object.KeyUp( key )

 

4、PressKey方法

 

模拟通过键盘按下一个按键并立即释放:object.PressKey( key )

 

5、PressNKeys方法

 

模拟通过键盘多次按下一个按键并立即释放:object.PressNKey( key, N ) N:重复次数

 

6、DragAndDrop方法

 

用于执行从一点拖动到另外一点的操作:object.DragAndDrop( dragX, dragY, dropX, dropY, Button )

Button的值包括

LEFT_MOUSE_BUTTON = 0

MIDDLE_MOUSE_BUTTON = 1

 RIGHT_MOUSE_BUTTON = 2

 

7、MouseClick方法

 

在指定的屏幕位置执行鼠标左键或右键的单击操作:object.MouseClick( x, y, Button )

 

8、MouseDbClick方法

 

在指定的屏幕位置中执行鼠标左键或右键的双击事件:object.MouseDblClick( x, y, Button )

 

9、MouseDown方法

 

在屏幕指定位置按下鼠标左键或右键,并保持按下状态:object.MouseDown( x, y, Button )

 

10、MouseUp方法

 

用于释放之前执行的MouseDown方法所按下的鼠标按键:object.MouseDown( x, y, Button )

 

11、MouseMove方法

 

用于模拟鼠标移动:object.MouseMove( x, y)

 

12、SetSynchronizationTimeout方法

 

设置一个新的同步超时的时间值:object. SetSynchronizationTimeout(nSyncTimeout , is_sec)

nSyncTimeout同步超时的时间值。

is_sec指定设置的时间值是否以秒为单位

分享到:
评论

相关推荐

    揭秘QTP的DeviceReplay对象

    总结来说,DeviceReplay是QTP中的一个强大工具,它可以弥补标准对象方法的不足,提供更精确的用户交互模拟,特别是在处理键盘和鼠标事件时。配合Keyboard类,测试者能够更好地控制和验证测试环境中复杂的用户输入...

    QTP11/UFT11.5/UFT12/ALM11/LR11/LR12下载地址

    QTP11、 UFT11.5、 UFT12 、ALM11、 LR11、LR12 送上ALM11的License下载地址,一应俱全,你值得拥有~!

    QTP模拟鼠标和键盘事件整理

    在自动化测试领域,尤其是使用QTP(Quick Test Professional)工具时,模拟鼠标事件是常见且重要的操作之一。本部分将详细介绍如何通过QTP的脚本来实现对鼠标事件的模拟。 ##### 1.1 使用 MouseClick 方法 QTP提供...

    QTP的DeviceReplay对象

    不知道为什么HP的帮助文档中没有提供关于DeviceReplay的强大功能的信息描述。你可以在Java插件中却可以找到DeviceReplay的属性,但是对于那些不使用Java插件的人可能会觉得这个对象仅在Java程序的测试中可用。  不...

    QTP 好用的测试工具介绍

    2. **可靠**:每次运行测试时,QTP都能准确无误地执行预定义的操作,减少了人为因素导致的错误。 3. **全面**:通过建立全面的测试套件,QTP可以覆盖软件的各个功能,确保全面测试。 4. **可重复**:测试脚本可以...

    用QTP操作dos命令行

    【QTP操作DOS命令行】是自动化测试中一项实用的技术,主要应用于那些需要通过命令行接口执行系统级任务的情况。QuickTest Professional(QTP),现称为UFT(Unified Functional Testing),是HP公司开发的一款功能...

    QTP11操作手册

    - **执行与分析**: 脚本录制完成后,用户可以在QTP中直接执行脚本来模拟真实的用户操作。同时,QTP还提供了强大的测试结果分析工具,帮助用户识别测试中的问题。 - **检查点设置**: 为了确保测试的有效性,用户需要...

    QTP11操作手册整理

    1. **录制测试脚本**:通过模拟用户操作来记录测试步骤,QTP会自动生成相应的VBS脚本。 2. **编辑和增强脚本**:在Keyword View中查看和修改脚本,添加检查点、参数化、输出值等功能。 3. **执行测试**:运行测试...

    QTP模拟键盘输入方法

    本文主要介绍QTP中的模拟键盘输入方法,特别是通过VBS(Visual Basic Script)脚本实现的模拟键盘操作技术。 #### 二、基础知识 QTP中的模拟键盘输入主要是通过调用VBS中的`WScript.Shell`对象来实现的。`WScript....

    QTP利用VBS的SendKeys模拟键盘操作

    QTP利用VBS的SendKeys模拟键盘操作 QTP(QuickTest Professional)是一款自动化测试工具,通过使用VBS(Visual Basic Scripting)脚本,可以模拟键盘操作,实现自动化测试和操作。本文将详细介绍QTP利用VBS的Send...

    QTP11操作手册整理.rar

    【QTP11操作手册整理】 QuickTest Professional(QTP)是HP公司(现已被Micro Focus收购)推出的一款自动化测试工具,主要用于功能测试和回归测试。QTP11是其第11个版本,该版本引入了许多新特性,提升了测试效率和...

    QTP.rar_QTP 安装_QTP支持的系统_QTP的测试_qtp

    3. 执行操作:在应用程序中执行需要测试的功能,QTP会自动记录这些操作。 4. 创建检查点:在关键步骤设置检查点,以验证应用程序的行为是否符合预期。 5. 停止录制,编辑脚本:在必要时,可以修改脚本中的对象属性或...

    QTP自动化测试手册

    通过学习QTP,测试工程师可以创建自动化的测试脚本来模拟用户的各种交互行为,实现对Web应用程序的全面、高效的测试。 以下是几个主要的学习点: 1. **QTP基础理论**:VCTE_L207_QTP_Theory01_v1.0.doc可能涵盖了...

    学习与实践经验总结doc, 好不容易找到的

    QTP全名Quick Test Professional,是MI公司出品的一款测试工具.它的优点是使用方便,功能强大并且可以通过与测试管理工具的互连达到自动化功能测试的目的. QTP是专门针对B/S模式的测试工具.它具有:识别能力强,回放精确...

    QTP自带Flight示例程序登录模块完整自动化测试

    "QTP自动化测试工具登录模块自动化测试" 本文将详细介绍使用QTP自动化测试工具测试其自带Flight示例程序的登录模块的自动化测试,包括用户名、密码参数化、按钮的检查等知识点。 一、QTP自动化测试工具简介 QTP...

    QTP飞机订票测试报告

    【QTP特点与基本操作】 QuickTest Professional(QTP)是HP公司开发的一款自动化测试工具,主要用于功能和回归测试。QTP的特点主要包括以下几个方面: 1. **自动化录制与回放**:QTP能够通过录制用户的操作来创建...

    QTP进阶资料 最新

    Accessing_PDF ADODB ...QTP操作 1 QTP操作 2 QTP操作 3 QTP操作 4 QTP操作 5 QTP操作 6 shell32 VBS基础 VBS提高 Win32_API wsh_ 错误处理 慢慢学习 VBScript (V1[ 1].0) 文件操作 正则表达

    QTP自动化测试用例登陆模块测试实例

    QTP作为一种自动化测试工具,可以模拟用户的操作,自动执行测试用例,提高测试效率和测试覆盖率。 在本实例中,我们将使用QTP对http://newtours.demoaut.com网站的登陆模块进行自动化测试。下面是测试步骤: 步骤1...

Global site tag (gtag.js) - Google Analytics