TestComplete的低级过程模拟
来源:互联网 发布:mpp数据库 百科 编辑:程序博客网 时间:2024/05/22 05:27
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
// 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;
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方法时不区分事件是窗体坐标还是屏幕坐标,都统一按屏幕坐标处理。
- TestComplete的低级过程模拟
- TestComplete的Stores对象
- TestComplete的分布式测试
- TestComplete的计划运行
- TestComplete的脚本语言
- TestComplete的Utilities对象
- TestComplete的平面广告欣赏
- 关于TestComplete的学习
- TestComplete的快捷键
- TestComplete
- 编程过程中易犯的低级错误(有收获)
- elasticsearch控制match执行过程的低级查询处理规则
- TestComplete对数据库的支持
- TestComplete的内建函数
- TestComplete的内建函数
- 仿真模拟的过程
- 一个低级问题的低级答案
- 模拟录制模式和低级录制模式的区别与规则
- WinForm控件与WPF控件的交互
- 今天开始学习图像编程
- 读博士的经验(转)
- DOS 基础命令
- Carbide.c++下自制向导生成CView派生类及相关Container
- TestComplete的低级过程模拟
- IE Developer Toolbar 嵌入脚本造成每个页面都出javaScript错误
- *.def
- 离生日还有三个小时
- 开发人员需要了解的测试
- C/C++语言void及void指针深层探索
- Delphi中统一显示表格字段名的高效方法
- 修改ion2加入xrandr支持
- second life代码初研究