qtp java插件_18.2 使用C#对QTP.NET插件进行扩展

18.2  使用C#对QTP.NET插件进行扩展

QTP能录制那些不被直接支持的.NET控件,但是以低级鼠标和键盘操作、Windows消息的方式反映出来,这样的脚本的可理解性、可维护性都很差。例如,对.NET的TrackBar控件的录制结果如图18.2所示。

5084cdeaaf44ad57f33991180499029cfe3.jpg

图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安装目录中的"\bin\Custom "目录下,可以找到名为"InstWizard.msi"的安装文件,用于安装Custom Server模板。

安装完成后,打开Visual Studio 2005,可以发现在C#项目中多了一个名为"QuickTest CustomServer"的模板,如图18.3所示。

547656637146362a144f946ecd4cd9bb351.jpg

(点击查看大图)图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所示的界面。

cbea98b912f75c7be5f71d5e137aca01e69.jpg

图18.4 "Application Settings"界面

9b253b5c1277b6fe516d8a917b01ef3a120.jpg

图18.5 "XML Configuration Settings"界面

(3)在"Customized Control type"中输入"System.Windows.Forms.TrackBar",然后单击"Finish"按钮,完成设置。这样就创建了一个基本的CustomServer项目框架,如图18.6所示。

fbc1f5fbd4e523f8e32f535a9cfdeb0b918.jpg

图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);

}然后,在TrackBarCustomerServer类中添加SetValue方法的实现,代码如下所示:

public void SetValue(int newValue)

{

System.Windows.Forms.TrackBar trackBar = (System.Windows.Forms. TrackBar) SourceControl;

// 改变trackBar控件的值

trackBar.Value = newValue;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值