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


    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"类中,添加如下方法:

    1. public void OnValueChanged(object sender, EventArgs e)  
    2. {  
    3.     System.Windows.Forms.TrackBar trackBar = (System.Windows.Forms. TrackBar) sender;  
    4.     // 获取新的值   
    5.     int newValue = trackBar.Value;  
    6.     // 把SetValue 命令录制到测试脚本中   
    7.     RecordFunction("SetValue", RecordingMode.RECORD_SEND_LINE, newValue);  
    8. }  

    该方法用于在监听到TrackBar控件的ValueChanged事件发生时,获取TrackBar控件的新值,然后调用RecordFunction方法的SetValue命令,设置TrackBar控件的新值。

    RecordFunction是QTP.NET插件扩展API提供的一个方法,用于往测试脚本中写入一行。其使用方法如下:

    1. public void RecordFunction(   
    2.    string strFunc, // 回放脚本时,测试对象执行的方法  
    3.    RecordingMode eMode, // RecordingMode枚举中的一个  
    4.    params object[] parameters // 要写入的变量值  
    5. 18.2.4 注册TrackBar控件的事件处理器

      《QTP自动化测试最佳实践》第4章QTP的安装和配置,本章介绍如何使用QTP.NET插件提供的扩展性来支持第三方和个性化的.NET控件。本节为大家介绍注册TrackBar控件的事件处理器。

      作者:陈能技来源:电子工业出版社|2012-08-15 15:53

      18.2.4  注册TrackBar控件的事件处理器

      在InitEventListener方法中,添加如下代码,用于注册TrackBar控件的OnValueChanged事件处理器:

      1. public override void InitEventListener()   
      2. {  
      3.     // 为OnValueChanged新建一个事件处理器  
      4.     Delegate e = new System.EventHandler(this.OnValueChanged);   
      5.     // 添加处理器  
      6.     AddHandler("ValueChanged", e);   
      7. }  
      8. 18.2.5  实现控件的运行逻辑

        还要实现控件的测试运行逻辑,在测试运行时,告诉QTP按指定的行为操作控件。因此,需要编写TrackBar控件的SetValue方法。在ITrackBarCustomerServerReplay接口中,添加SetValue方法,如下所示:

        1. [ReplayInterface]  
        2.     public interface ITrackBarCustomerServerReplay  
        3. {  
        4.     // 在ITrackBarCustomerServerReplay接口中添加SetValue方法  
        5.         void SetValue(int newValue);  
        6.     }  
        然后,在TrackBarCustomerServer类中添加SetValue方法的实现,代码如下所示:
        1. public void SetValue(int newValue)   
        2. {   
        3.     System.Windows.Forms.TrackBar trackBar = (System.Windows.Forms. TrackBar) SourceControl;   
        4.     // 改变trackBar控件的值  
        5. trackBar.Value = newValue;  
        6. }  
  • 相关阅读:
    面试题26:复杂链表的复制
    面试题25:二叉树中和为某一值的路径
    面试题24:二叉搜索树后序遍历
    面试题23:二叉树层序遍历
    面试题22:栈的压入,弹出序列
    面试题21:包含min函数的栈
    面试题20:顺时针打印矩阵
    面试题19:二叉树镜像
    plugin.go 源码阅读
    server.go 源码阅读
  • 原文地址:https://www.cnblogs.com/gdg87813/p/10956240.html
Copyright © 2020-2023  润新知