致力于测试团队建设和自动化测试开发,欢迎有兴趣者一起研究讨论

QTP中实现函数的重载

上一篇 / 下一篇  2008-07-01 13:58:50 / 个人分类:QTP

51Testing软件测试网h6xiVe)Z lb

大家都知道,在vbs中没有提供函数重载的功能,在很大程度上造成了开发脚本的不方便,其实在QTP中是可以将方法进行重载的,在QTP帮助里有很详细的说明

5oL+y"{o ~5fu3ox0

~Z&[/IRF&D0其实无非就是两个方法:

e|!D B ]#sR h0

TLYvN^3i6O^01、RegisterUserFunc51Testing软件测试网d+g9ww,U

&X h1eZ3t1G!aG0原型:

StmR0|*\x"H051Testing软件测试网Q V&i?D.x8I[.c

RegisterUserFuncTOClass, MethodName, FunctionName, SetAsDefault51Testing软件测试网 E:g!X7L)om

%xOH}Sv&r0TOClass:测试对象

.CZ8}u?-L/g051Testing软件测试网0~IY(g_(KMS5l

MethodName:需要被重载的方法51Testing软件测试网!K H9Mm(l]@.^| N[

51Testing软件测试网`2E1}s h\

FunctionName:封装的函数名51Testing软件测试网r;f#VbfBK

[ u.{$US(G0SetAsDefault:是否作为测试对象的标准方法51Testing软件测试网&J8u/Q&O%Xk'qTI7AQ

j dlGFt7ZI02、UnRegisterUserFunc

I,NJ3K/g)e Nl051Testing软件测试网`-Oy7ng}j

原型:

RXt g+QFw051Testing软件测试网0\/W#opi(W)y

UnRegisterUserFuncTOClass, MethodName

XLbs!f ~bT(i+P5?0

W f w&]0[ E2l'YK0TOClass:测试对象51Testing软件测试网E2w$T7Ct1~M"I

'V%t+Pb"s0MethodName:需要被重载的方法

4P&tF g aiyCYE I#N'C051Testing软件测试网@J M/}5Ge4\

实例:51Testing软件测试网Td(}+L.S?LY

51Testing软件测试网#f+b1x` Hv u^

对于一个WebEdit的Set方法进行封装并重载

(n0mB:[2W.|051Testing软件测试网gw1d6YbNwv3?}

Browser(xx).Page(xx).WebEdit(xx).Set "xxxx"51Testing软件测试网}a&blw q

51Testing软件测试网5K%v#l-n.T RY

希望在给这个WebEdit赋值前记录下之前的值,可以使用如下代码

PR'mwB N@3q,A$w0

2`a.||"\X l0Function MySet (obj, newvalue)51Testing软件测试网 h e2X^ w
    'obj:测试对象51Testing软件测试网],j;? ^Roj
    'newvalue:赋的新值
#Y ^p}!C.MGf s0       dim oldvalue51Testing软件测试网[X.GTN;JM
       ōldvalue = obj.GetROProperty("value")51Testing软件测试网t ndKBdZ&]Y+Y
       Reporter.ReportEvent micDone, "previous value", oldvalue
J ~!F k+RR7M-?F0       MySet=obj.Set(newvalue)51Testing软件测试网cq`;u/r8U4`
End Function
51Testing软件测试网k Ndd'`C!X`L&XT]

然后使用RegisterUserFunc和UnRegisterUserFunc方法:51Testing软件测试网:U&s$T%HJ+o%h

RegisterUserFunc "WebEdit" , "Set" , "MySet" , False

.R _RY+Or0

Browser(xx).Page(xx).WebEdit(xx).Set "xxxx"51Testing软件测试网C6C]:Sq([ b/x3GB

UnRegisterUserFunc "WebEdit" , "Set"51Testing软件测试网9Pz f ZWQ6g6rO

或者直接调用

W/bFw'q&~ QC0

MySetBrowser(xx).Page(xx).WebEdit(xx) , "xxxx"51Testing软件测试网~+{{I4p

此时,MySet函数实际上是重载了Set方法,并增加了输入旧值的功能

9v WN ]mk0

大家可以根据自己的需要来重载QTP的标准方法,在实际运用中有不小的作用51Testing软件测试网'L@WK!@O

比如:记录下初始值,便于测试后清理环境等51Testing软件测试网yK$a*S}vR


TAG: QTP

 

评分:0

我来说两句

日历

« 2024-02-21  
    123
45678910
11121314151617
18192021222324
2526272829  

数据统计

  • 访问量: 90494
  • 日志数: 79
  • 图片数: 1
  • 建立时间: 2008-05-18
  • 更新时间: 2009-06-04

RSS订阅

Open Toolbar