18.2 使用C#对QTP.NET插件进行扩展
QTP能录制那些不被直接支持的.NET控件,但是以低级鼠标和键盘操作、Windows消息的方式反映出来,这样的脚本的可理解性、可维护性都很差。例如,对.NET的TrackBar控件的录制结果如图18.2所示。
图18.2 "Expert View"中的TrackBar控件的录制结果 |
可以看到,QTP对TrackBar控件的录制采取的是位置识别,而不是对象识别的方式,这种方式录制的结果是位置敏感的,而且录制下来的脚本以低级鼠标操作的方式反映出来,例如"Drag"、"Drop",这样的脚本的可理解性、可维护性都很差,并且由于位置受分辨率等因素的影响,容易导致回放脚本时失败。
18.2.1 安装Custom Server模板
通过安装QTP.NET插件提供的Custom Server C#项目模板到Visual Studio中,利用Visual Studio开发工具来建立Custom Server项目,适用.NET插件的扩展模块。在QTP安装目录中的"inCustom "目录下,可以找到名为"InstWizard.msi"的安装文件,用于安装Custom Server模板。
安装完成后,打开Visual Studio 2005,可以发现在C#项目中多了一个名为"QuickTest CustomServer"的模板,如图18.3所示。
(点击查看大图)图18.3 QuickTest CustomServer模板 |
目前QTP支持使用Visual Studio 2003、2005和2008版本的开发工具进行.NET插件扩展开发。
18.2.2 建立.NET控件的测试扩展项目
安装好CustomServer项目模板后,就可以开始创建CustomServer项目,编写QTP的.NET插件扩展程序。
(1)选择"QuickTest CustomServer",输入项目名和存储位置后,单击"确定"按钮,出现如图18.4所示的界面。
(2)在"Server class name"中输入"TrackBarCustomerServer",选中"Customize Record process"和"Customize Run process",并接受其他的默认设置,然后单击"Next"按钮,出现如图18.5所示的界面。
图18.4 "Application Settings"界面 |
图18.5 "XML Configuration Settings"界面 |
(3)在"Customized Control type"中输入"System.Windows.Forms.TrackBar",然后单击"Finish"按钮,完成设置。这样就创建了一个基本的CustomServer项目框架,如图18.6所示。
图18.6 创建CustomServer项目 |
18.2.3 实现控件录制逻辑
《QTP自动化测试最佳实践》第4章QTP的安装和配置,本章介绍如何使用QTP.NET插件提供的扩展性来支持第三方和个性化的.NET控件。本节为大家介绍实现控件录制逻辑。
- 作者:陈能技来源:电子工业出版社|2012-08-15 15:53
18.2.3 实现控件录制逻辑
创建了基本的项目框架后,还需要实现控件的录制逻辑。在"TrackBarCustomer Server"类中,添加如下方法:
- public void OnValueChanged(object sender, EventArgs e)
- {
- System.Windows.Forms.TrackBar trackBar = (System.Windows.Forms. TrackBar) sender;
- // 获取新的值
- int newValue = trackBar.Value;
- // 把SetValue 命令录制到测试脚本中
- RecordFunction("SetValue", RecordingMode.RECORD_SEND_LINE, newValue);
- }
该方法用于在监听到TrackBar控件的ValueChanged事件发生时,获取TrackBar控件的新值,然后调用RecordFunction方法的SetValue命令,设置TrackBar控件的新值。
RecordFunction是QTP.NET插件扩展API提供的一个方法,用于往测试脚本中写入一行。其使用方法如下:
- public void RecordFunction(
- string strFunc, // 回放脚本时,测试对象执行的方法
- RecordingMode eMode, // RecordingMode枚举中的一个
- params object[] parameters // 要写入的变量值
-
18.2.4 注册TrackBar控件的事件处理器
《QTP自动化测试最佳实践》第4章QTP的安装和配置,本章介绍如何使用QTP.NET插件提供的扩展性来支持第三方和个性化的.NET控件。本节为大家介绍注册TrackBar控件的事件处理器。
- 作者:陈能技来源:电子工业出版社|2012-08-15 15:53
18.2.4 注册TrackBar控件的事件处理器
在InitEventListener方法中,添加如下代码,用于注册TrackBar控件的OnValueChanged事件处理器:
- public override void InitEventListener()
- {
- // 为OnValueChanged新建一个事件处理器
- Delegate e = new System.EventHandler(this.OnValueChanged);
- // 添加处理器
- AddHandler("ValueChanged", e);
- }
-
18.2.5 实现控件的运行逻辑
还要实现控件的测试运行逻辑,在测试运行时,告诉QTP按指定的行为操作控件。因此,需要编写TrackBar控件的SetValue方法。在ITrackBarCustomerServerReplay接口中,添加SetValue方法,如下所示:
- [ReplayInterface]
- public interface ITrackBarCustomerServerReplay
- {
- // 在ITrackBarCustomerServerReplay接口中添加SetValue方法
- void SetValue(int newValue);
- }
- public void SetValue(int newValue)
- {
- System.Windows.Forms.TrackBar trackBar = (System.Windows.Forms. TrackBar) SourceControl;
- // 改变trackBar控件的值
- trackBar.Value = newValue;
- }