示例:创建简单的代理对象

此示例解释如何创建简单的代理对象。

关于此任务

要创建、构建和部署 ProxyObject 类:

过程

  1. 使用以下一种方法创建 ProxyObject 类:
    • 在从 Functional Tester Java 域代理 com.rational.test.ft.domain.java.jfc.JTextProxy 中扩展的 Java™中创建 JFormattedTextFieldProxy ProxyObject。 例如,输入以下代码,创建 JFormattedTextFieldProxy.java:
      package proxysdk.samples.java;
      
      import com.rational.test.ft.domain.java.jfc.JTextProxy;
      
      /**
       * @author administrator
       *
       * TODO To change the template for this generated type comment go to
       * Window - Preferences - Java - Code Generation - Code and Comments
       */
      public class JFormattedTextFieldProxy extends JTextProxy
      {
      	/**
      	 * Sets the SUT object
      	 * as a member variable for the proxy.  All interactions with the
      	 * supplied object are performed through this class. 
      	 */
      	public JFormattedTextFieldProxy(Object theObjectInTheSUT)
      	{
      		super(theObjectInTheSUT) ;
      	}
           
                /* 
                 *  TODO:  Override more ProxyObject Methods here
                 */
      }
    • 在从 Functional Tester .Net 域代理 Rational.Test.Ft.Domain.Net.TextBoxProxy 中扩展的 C# 中创建 MaskedTextProxy ProxyObject。 例如,输入以下代码,创建 MaskedTextProxy.cs:
      using Rational.Test.Ft.Domain;
      using Rational.Test.Ft.Domain.Net;
      
      namespace ProxySDK.Samples.Net
      {
      	/// <summary>
      	/// Summary description for MaskedTextProxy.
      	/// </summary>
      	public class MaskedTextProxy:TextBoxProxy
      	{
      		public MaskedTextProxy(NetTestDomainImplementation domain,
      			IChannel channel,
      			System.Object theTestObject): base( domain, channel, theTestObject)
      		{
      		}
      		//
      		// TODO: Override more ProxyObject Methods here
      		//
      	}
      }
    • 在从 Functional Tester Win 域代理 Rational.Test.Ft.Domain.Win.GenericProxy 中扩展的 C# 中创建 StatusBarProxy 代理对象。 例如,输入以下代码,创建 StatusBarProxy.cs:
      using Rational.Test.Ft.Domain;
      using Rational.Test.Ft.Domain.Win;
      
      namespace ProxySDK.Samples.Win
      {
      	/// <summary>
      	/// Summary description for StatusBarProxy.
      	/// </summary>
      	public class StatusBarProxy:GenericProxy
      	{
      		public StatusBarProxy(WinTestDomainImplementation domain,
      			IChannel channel,
      			IWinControl theAUTControl): base( domain, channel, theAUTControl)
      		{
      			//
      			// TODO: Add constructor logic here
      			//
      		}
      	}
      }
  2. 使用构建命令来构建代理对象二进制文件。
    • 对于 Java,编译的二进制输出是 JAR 文件,例如 JFormattedTextFieldProxy.jar。
    • 对于 .Net,编译的二进制输出是 .Net 组合件,例如 MaskedTextProxy.dll 或 StatusBarProxy.dll。
  3. 使用以下方法,将 ProxyObject 类映射到 Functional Tester 定制文件(.rftcust 文件)中的 AUT 控件类:
    • 在 Java 域下指定映射条目使用 javax.swing.JFormattedTextField 控件的 proxysdk.samples.java.JFormattedTextFieldProxy 代理对象。例如,输入以下代码来创建 JFormattedTextFieldProxy.rftcust:
      <?xml version="1.0" encoding="UTF-8"?>
      <ConfigFile L=".ConfigFile">
      	<Section L=".ConfigFileSection">
      		<Name>proxies</Name>
      		<Val L=".ProxyManager">
      			<DomainImplementation L=".DomainImplementation">
      				<Name>Java</Name>
      				<Obj L=".Proxy">
      					<ClassName>proxysdk.samples.java.JFormattedTextFieldProxy</ClassName>
      					<Replaces/>	
      					<UsedBy>javax.swing.JFormattedTextField</UsedBy>
      				</Obj>				
      			</DomainImplementation>
      		</Val>
      	</Section>
      </ConfigFile>

      使用此映射,Functional Tester 为找到的每个 JFormattedTextField Java UI 控件创建 JFormattedTextFieldProxy 实例。

    • 在 .Net 域下指定映射条目使用在 [System.Windows.Forms] .Net 组合件中实现的 System.Windows.Forms.MaskedTextBox .Net 控件的 ProxySDK.Samples.Net.MaskedTextProxy 代理对象。例如,输入以下代码来创建 MaskedTextProxy.rftcust:
      <?xml version="1.0" encoding="UTF-8"?>
      <ConfigFile L=".ConfigFile">
      	<Section L=".ConfigFileSection">
      		<Name>proxies</Name>
      		<Val L=".ProxyManager">
      			<DomainImplementation L=".DomainImplementation">
      				<Name>NET</Name>
      				<Obj L=".Proxy">
      					<ClassName>[MaskedTextBoxProxy]ProxySDK.Samples.Net.MaskedTextProxy </ClassName>
      					<Replaces/>	
      					<UsedBy>[System.Windows.Forms]System.Windows.Forms.MaskedTextBox</UsedBy>
      				</Obj>				
      			</DomainImplementation>
      		</Val>
      	</Section>
      </ConfigFile>
      注: 指定 .Net 控件类名时,使用 [] 指定组合件名称。
    • 在 Win 域下指定映射条目使用 StatusBar20WndClass Win 控件的 [StatusBarProxy]ProxySDK.Samples.Win.StatusBarProxy 代理对象。例如,输入以下代码来创建 StatusBarProxy.rftcust:
      <?xml version="1.0" encoding="UTF-8"?>
      <ConfigFile L=".ConfigFile">
      	<Section L=".ConfigFileSection">
      		<Name>proxies</Name>
      		<Val L=".ProxyManager">
      			<DomainImplementation L=".DomainImplementation">
      				<Name>Win</Name>
      				<Obj L=".Proxy">
      					<ClassName>[StatusBarProxy]ProxySDK.Samples.Win.StatusBarProxy</ClassName>
      					<Replaces/>
      					<UsedBy>STATUSBAR20WNDCLASS</UsedBy>
      				</Obj>				
      			</DomainImplementation>
      		</Val>
      	</Section>
      </ConfigFile>
    • 在组合定制文件中指定所有代理对象的映射条目。
      注: 必须在其各自的 <DomainImplementation L=".DomainImplementation"> 段中指定代理映射。

      例如,输入以下代码来创建 combined.rftcust:

      <ConfigFile L=".ConfigFile">
      	<Section L=".ConfigFileSection">
      		<Name>proxies</Name>
      		<Val L=".ProxyManager">
      
                                 <!--  Add DomainImplementation section for each domain --> 
      
                                 <DomainImplementation L=".DomainImplementation">
      				<Name>Java</Name>
      				<Obj L=".Proxy">
      					<ClassName>proxysdk.samples.java.JFormattedTextFieldProxy</ClassName>
      					<Replaces/>	
      					<UsedBy>javax.swing.JFormattedTextField</UsedBy>
      				</Obj>	
                                           <!--  Add <Obj L=".Proxy"> section here for each Java proxy mapping  --> 
       			
      			</DomainImplementation>
      
                                 <DomainImplementation L=".DomainImplementation">
      				<Name>NET</Name>
      				<Obj L=".Proxy">
      					<ClassName>[MaskedTextBoxProxy]ProxySDK.Samples.Net.MaskedTextProxy </ClassName>
      					<Replaces/>	
      					<UsedBy>[System.Windows.Forms]System.Windows.Forms.MaskedTextBox</UsedBy>
      				</Obj>		
                                           <!--  Add <Obj L=".Proxy"> section here for each .NET proxy mapping  --> 
      		
      			</DomainImplementation>
      
      			<DomainImplementation L=".DomainImplementation">
      				<Name>Win</Name>
      				<Obj L=".Proxy">
      					<ClassName>[StatusBarProxy]ProxySDK.Samples.Win.StatusBarProxy</ClassName>
      					<Replaces/>
      					<UsedBy>STATUSBAR20WNDCLASS</UsedBy>
      				</Obj>	
                                          <!--  Add <Obj L=".Proxy"> section here for each Win proxy mapping  --> 
      			
      			</DomainImplementation>
      		</Val>
      	</Section>
      </ConfigFile>

      请参阅 C:\Program Files\IBM\SDP70\FunctionalTester\bin 中的定制文件 rational_ft.rftcust 获取任意语法或用法说明。 此文件包含与 Functional Tester 一起发布的所有代理对象的映射条目。

  4. 部署代理二进制文件,例如 JFormattedTextFieldProxy.jar、MaskedTextProxy.dll 和 StatusBarProxy.dll,以及相应的定制文件(方法是将它们复制到 Functional Tester 定制目录 C:\Documents 和 Settings\All Users\Application Data\IBM\RFT\customization)。
  5. 重新启动 Functional Tester

反馈