QTP插件拓展(C#) , In 测试 , Views: 2864 , Comments: 0 , Index: 4439 , 10 November 2012

QTP能录制那些不被直接支持的.NET控件,但是以低级鼠标和键盘操作,例如“Drag”、“Drop”,这样的脚本的可理解性、可维护性都很差,并且由于位置受分辨率等因素的影响,容易导致回放脚本时失败。
安装Custom Server模板
通过安装QTP的.NET插件提供的Custom Server C#项目模板到Visual Studio.NET中,利用Visual Studio.NET开发工具来建立Custom Server项目,适用.NET插件的扩展模块。在QTP安装目录中的“\bin\Custom ”目录下,可以找到名为“InstWizard.msi”的安装文件,用于安装Custom Server模板。安装完成后,打开Visual Studio.NET 2005,可以发现在C#项目中多了一个名为“QuickTest CustomServer”的模板。
建立.NET控件的测试扩展项目
安装好CustomServer项目模板后,就可以开始创建CustomServer项目,编写QTP的.NET插件扩展程序。
(1)选择“QuickTest CustomServer”,输入项目名和存储位置后,单击“确定”按钮。
(2)在“Server class name”中输入“TrackBarCustomerServer”,选中“Customize Record process”和“Customize Run process”,接受其他的默认设置,然后单击“Next”按钮。
(3)在“Customized Control type”中输入“System.Windows.Forms.TrackBar”,然后单击“Finish”按钮,完成设置。这样就创建了一个基本的CustomServer项目框架。
创建CustomServer项目
(1)实现控件录制逻辑
创建了基本的项目框架后,还需要实现控件的录制逻辑。在“TrackBarCustomerServer”类中,添加如下方法。

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);
}
QTP调用外部函数 , In 测试 , Views: 1281 , Comments: 0 , Index: 4237 , 10 November 2012

QTP主要提供了3种DLL的调用方式,这3种调用方式分别为Extern、CreateObject和DotNetFactory。这3种调用方式都分别对应着不同类型的DLL。

首先Extern所调用的DLL为WIN32 API – DLL,Createobject所调用的是ActiveX类型的DLL,这类DLL其实应用的最多,AOM \ EOM等都是此类型的DLL,最后一种.NET Factory是直接调用.Net framework 或者.NET自定义的DLL。

Extern:
(1)例子一:

'#######启动浏览器######## 
systemutil.Run "iexplore.exe"
 
'#######创建API  Extern对象########## 
Extern.Declare micHWnd, "GetForegroundWindow", "user32.dll", "GetForegroundWindow"
 
'######使用WIN32 API获取窗口的句柄###### 
hwnd = Extern.GetForegroundWindow()
 
'########通过获取的句柄控制浏览器窗口并跳转百度##### 
Browser("hwnd:=" & hwnd).Navigate "http://www.baidu.com"
QTP Action 参数传递 , In 测试 , Views: 1954 , Comments: 0 , Index: 5362 , 17 September 2012

以QTP的Flight为例子讲下Action参数传递。

SystemUtil.Run "C:\Program Files\Mercury\QuickTest Professional\samples\flight\app\flight4a.exe","","C:\Program Files\Mercury\QuickTest Professional\samples\flight\app\","open"
Dialog("Login").WinEdit("Agent Name:").Set Parameter("InAction1")
wait 5
Dialog("Login").WinEdit("Agent Name:").Type  micTab
Dialog("Login").WinEdit("Password:").SetSecure "4649c633ffc8803c10097292953c6334fde3e923"
Dialog("Login").WinEdit("Password:").Type  micReturn
Window("Flight Reservation").Close
Parameter("OutAction1") = True

然后,鼠标选中Keyword View中的Action1,点右键—Action Property,在Parameters的Tab标签下,分别加入:输入参数 InAction1 ,类型String;输出参数 OutAction1,类型 Boolean。

12 3