TestComplete的低级过程模拟
陈能技
2007-8-31
低级过程vs高级过程
在GUI自动化测试中,低级过程的录制和回放是第一代GUI自动化测试首先实现的,也是最简单的GUI自动化,它是指对鼠标和键盘时间的录制和回放。
高级过程是指录制和回放都是基于控件的识别和操作进行的,每个脚本的执行都是控件对象的属性改变或事件触发。
相对于高级过程的录制和回放,低级过程录制的脚本可读性差,不易于维护。但是低级过程有时候却是高级过程不可替代的,例如对有些不能识别的控件的操作。
TestComplete的低级过程录制
TC跟其他GUI自动化测试工具一样,支持对鼠标和键盘事件的记录。TC会记录鼠标点击、键盘事件、鼠标移动和鼠标滚轮事件,同时也会记录事件之间的间隙时间,所有低级过程的回放会跟记录时的速度一样。
事件记录可以是屏幕坐标方式的或是窗体坐标方式的记录。窗体坐标方式不依赖于窗体在屏幕的坐标,但是仅仅针对一个窗体。屏幕坐标方式模拟的用户操作是针对屏幕上出现的所有窗体。
TC提供名为Low-Level Procedures Collection的project项,方便管理低级过程的脚本。
窗体相关与屏幕相关的区别
低级过程可以用窗体坐标相关的方式或屏幕坐标相关的方式录制。
窗体坐标相关方式不依赖窗体在屏幕上的位置,所以如果被测窗体的位置在每次测试都不一样的话,这种方式会很有用。
屏幕坐标相关方式是以屏幕绝对坐标来录制的,这种方式在你需要模拟好几个窗体的低级过程时会很有用。
通过参数指定低级过程的执行方式是以屏幕坐标方式还是窗体坐标方式。如下面脚本所示:
LLCollection1.LLP1.Execute(); // Screen-relative execution
// or
LLCollection1.LLP1.Execute(w1); // Window-relative execution
通过在Execute方法中指定参数为某个具体窗体,表示以窗体坐标方式执行脚本。
创建低级过程
可以直接在Project Explorer中添加低级过程,也可以在录制过程中插入低级过程脚本。
每个低级过程的事件按时间顺序排列。每个低级过程事件都会有三项信息:
Event:事件类型,包括KeyUp, KeyDown, MouseMove, MouseUp, MouseDown , MouseWheel
Parameters:事件的参数,例如鼠标事件的鼠标坐标参数
Delay:事件之间的延迟
低级过程的执行
可以直接在Project Explorer中选中Low-Level Procedures Collection下的某个低级过程脚本执行;也可以在脚本中调用,调用格式如下:
LowLevelProceduresCollection_name.LowLevelProcedure_Name.Execute
例如:LLCollection1.LL1.Execute();
如果Execute方法中不加参数,则表示以屏幕坐标方式执行。如果希望为某个窗体指定执行低级过程,则可参考下面脚本:
var
w : OleVariant;
begin
w := Sys.Process('MyProcess').Window('MyWndClass', 'MyWndCaption',1); // Obtains the window
LLCollection1.LL1.Execute(w);
end;
LLPlayer对象
TC还另外提供了一个叫LLPlayer的对象,用于在脚本中模拟鼠标的按下和松开、鼠标滚轮的转动、键盘按键的按下和松开。
LLPlayer对象的方法能让你像执行低级过程的执行一样。唯一的区别在于低级过程通常执行的是鼠标和键盘事件的序列,但是LLPlayer只能一次执行一个鼠标或键盘事件。
TC可以把LowLevelProcedure中的低级事件转换到脚本中,用LLPlayer来顺序执行。这样做的好处是可以参数化低级过程的事件。LowLevelProcedure中的事件参数都是硬编码的,如果每次执行时参数需要变化,依赖于某些变量,则可以考虑转换成LLPlayer执行的脚本方式。
LLPlayer对象的使用非常简单,例如,某个鼠标移动事件如下面脚本:
LLPlayer.MouseMove[466, 525, 10];
前两个参数是坐标,最后一个参数是延迟时间。
需要注意的是TC在把LowLevelProcedure中的低级事件转换到LLPlayer方法时不区分事件是窗体坐标还是屏幕坐标,都统一按屏幕坐标处理。
分享到:
相关推荐
把程序目录bin下:用TestComplete替换掉原有TestComplete 然后启动替换后的程序。 首次登陆按照如下设置: User Name: Eternal Shield Company Name: HOMEZ, Inc. Registration Code: 558B8FDC-6BF62C26-F83BF6FF
TestComplete中文帮助手册 TestComplete中文帮助手册 TestComplete中文帮助手册 TestComplete中文帮助手册 TestComplete中文帮助手册
TestComplete5 KeyGen 可以生成TestComplete5的注册码,其中的keygen.exe杀毒软件可能会报是病毒,本人用是正常的,各位下载时自己衡量吧。提供一组我自己生成的注册码: KLP KLP SSG D8563359-9400D3D0-05000000
TestComplete中文帮助手册,教你如何使用TestComplete
介绍TestComplete的基本使用方法,以及如何利用TestComplete的各种特性对.NET软件进行自动化的功能测试
TestComplete is an automated testing tool, designed for advanced and novice testers alike, to create, manage and run tests for any desktop, Web or rich client software. It does not depend on any ...
Testcomplete750ent的破解
testcomplete7.2企业版注册机 记得使用的时候关闭杀毒软件
TestComplete与QTP的简单比较, 如何选择,一对比便知道!
介绍TestComplete的关键字测试介绍TestComplete的关键字测试
关于TestComplete7的学习说明
TestComplete基础教程,大概讲了测试种类,创建一个自动化测试的基本过程,测试对象模型这些基础内容; 2。TestComplete数据驱动测试 3。如何测试.NET应用程序,讲了白盒测试、需要插件、对象识别等等内容
原来链接不能用了,很多人问,重新上传,跟这个内容一致。 https://download.csdn.net/download/fvafuc/8239685
TestComplete 入门教程(英文版),教你如何创建第一个TestComplete工程
testcomplete7安装程序及激活码(part3)
Test Complete自带帮助文档的中文版
Testcomplete基础培训 PPT 软件测试 PPT教程
TestComplete 自动化测试 培训教材 中文帮助 中文教材 还可以,不错。
Testcomplete包含了一系列的教程来帮助你熟悉testcomplete和学习相关的测试技术。每一个教程都详细的步骤来指引你轻松完成整个项目的创建,涵括了各种类型的测试场景。
这篇文章讲解如何使用TestComplete运行一个记事本,输入内容后保存,通过这个实例熟悉TestComplete的环境,了解windows的GUI的测试基本流程