以XML文件方式扩展QTP的.NET插件的问题

本文探讨了QTP的.NET插件通过XML文件方式进行扩展的方法,并分享了实际操作过程中的经验教训。重点介绍了如何利用XML文件支持个性化控件的测试,以及在录制和回放方面遇到的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

XML文件方式扩展QTP.NET插件的问题

陈能技

<chsdate year="2008" month="1" day="8" islunardate="False" isrocdate="False"><span lang="EN-US"><font face="Times New Roman" size="3">2008-1-8</font></span></chsdate>

今天试了一下QTP.NET插件,QTP.NET插件对于解决.NET控件识别和测试问题非常重要,是测试.NET平台程序必不可少的条件(包括测试.NET Windows Forms.NET Web FormsWPF控件)。.NET第三方控件或自定义的个性化控件的识别和测试问题可通过QTP.NET插件提供的扩展模块来解决。

QTP.NET插件主要提供了两种方式的扩展来支持个性化控件的测试:

1.NET DLL:使用其为VS.NET提供的Custom Server模板来创建用C#写的DLL来支持个性化控件的测试。

2XML:使用XML文件来描述扩展。

第一种方法的好处是可以充分利用开发工具的优势,第二种方法则相对更便捷,可随时进行扩展,但是今天试用的结果是可实现录制方面的扩展,在回放方面的扩展不能实现,不知道是不是还有什么诀窍没掌握,QTP提供的帮助文档在这方面也比较有限。

SwfConfig.xml文件中的扩展描述如下所示:

<?xml version="1.0" encoding="UTF-8"?>

<Controls>

<Control Type="MyWindowsControlLibrary1.UserControl1">

<Settings>

<Parameter Name="ConfigPath">D:/Program Files/Mercury Interactive/QuickTest Professional/dat/ControlDefineXMLSample.XML

</Parameter>

</Settings>

<CustomRecord>

<Component>

<Context>AUT-XML</Context>

</Component>

</CustomRecord>

<CustomReplay>

<Component>

<Context>AUT-XML</Context>

</Component>

</CustomReplay>

</Control>

</Controls>

ControlDefineXMLSample.XML的定义如下:

<?xml version="1.0" encoding="UTF-8"?>

<Customization>

<Record>

<Events>

<Event name="MouseDown" enabled="true">

<RecordedCommand name="MouseMove">

<Parameter>

EventArgs.X

</Parameter>

<Parameter lang="C#">

Parameter = EventArgs.Y;

</Parameter>

</RecordedCommand>

</Event>

</Events>

</Record>

<Replay>

<Methods>

<Method name="SetValue">

<Parameters>

<Parameter type="int" name="X"/>

<Parameter type="int" name="Y"/>

</Parameters>

<MethodBody>

System.Windows.Forms.MessageBox.Show("Mouse Position at Record Time");

</MethodBody>

</Method>

</Methods>

</Replay>

</Customization>

基本上是按QTP的帮助文档描述,以及它提供的一个小例子来写的。如果完全按其在NETExtensibility.chm文件中的“Example of a Control Definition XML File”这一节的例子来写则完全不能进行录制方面的扩展,它的例子如下:

<?xml version="1.0" encoding="UTF-8"?>

<Customization>

<Record>

<Events>

<Event name="MouseUp" enabled="true">

<RecordedCommand name="SetValue">

<Parameter>

Sender.Value

</Parameter>

<Parameter lang="C#">

String xy;

xy = EventArgs.X + ";" + EventArgs.Y;

Parameter = xy;

</Parameter>

</RecordedCommand>

</Event>

</Events>

</Record>

<Replay>

<Methods>

<Method name="SetValue">

<Parameters>

<Parameter type="int" name="Value"/>

<Parameter type="String" name="MousePosition"/>

</Parameters>

<MethodBody>

RtObject.Value = Value;

System.Windows.Forms.MessageBox.Show(MousePosition,"Mouse Position at Record Time");

</MethodBody>

</Method>

</Methods>

</Replay>

</Customization>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值