自动化测试专家,专注于自动化测试领域的框架开发及国外最新自动化技术,担任过银行、电子商务等项目的自动化测试工作,精通自动化测试工具QTP、Watir等.并对QTP有过深入的研究,有过企业内训和工具培训经验,希望能与各位同行一起沟通,交流,探讨。 zzxxbb112@hotmail.com

[原]【软件测试自动化-QTP系列讲座 49】== 自定义对象强制映射封装类(二) ==

上一篇 / 下一篇  2012-03-11 13:41:48 / 个人分类:QTP系列讲座

$X*wFUv ?0

(d9fH2M"y0

作者:zzxxbb112
时间:2011/12/12 版权所有,侵权必究。

T)t5\p9yy@0

出处:http://blog.csdn.net/zzxxbb11251Testing软件测试网~8ae!|5C2G

51Testing软件测试网4e2dP \(w!U-\

B#xMml*d;c/q.f7L051Testing软件测试网@/j(yd+Ka/]
51Testing软件测试网 H QMN!?-FQj

51Testing软件测试网d9v3qi{ Ok

上一次讲座的内容中,我们已经简单介绍了一些对象映射的基础知识,但是qtp本身提供的对象映射其实存在着移植的问题。比如当我们把脚本移植到另外一台机器时此对象就会失效。因为对象映射是跟着配置走的,而这些配置并不会跟着脚本走。这就值得我们去好好思考一下该如何把这些配置一起绑定在脚本上。51Testing软件测试网xh._W-a Dom

51Testing软件测试网})_Fc;r/A8{


3fg.y^*V*L*K051Testing软件测试网 c*C"q'zn.Y

51Testing软件测试网X"Sn)M2He2G re9l

针对以上的问题笔者在这里提供大家两种解决方案:

1m9p'`m}gWh+]0

in6u7?p? {$f.Q:Q1\h0方案1: 使用配置到处方案(Generate Script方式)51Testing软件测试网jq7ps |;BjA0g8xB

&Ol#|MQ0r0优点:方便快捷,导出脚本即可51Testing软件测试网e o&z0TE^V+q

L kP0l(dj4Q"v4?0缺点:只能应用与QTP标准的对象映射

w!]iHl:A;^pv'B051Testing软件测试网 C_4z#d? M)Jy

步骤:打开Tools --> Object Identification 在user-defined映射完后点击51Testing软件测试网#qi*q4U u[

51Testing软件测试网&W5[3S1d*? B:XU


H B$Fy/Mx8D1gXc0

g(n8HVMQ,zi `0

r"Iqq#q0推荐保存到主脚本文件夹的配置文件夹中,文件为vbs文件,最好用于加入到环境预配置文件中运行它即可。51Testing软件测试网,c)u#Zh6nR(e

biz%pR3U+PN0这样在更换机器的时候,只需要在其他机器上执行下此文件即可。

XAAE,o$j,s'_0

FLth&M"j*g)e051Testing软件测试网#kt`jY8q.iX(c2J

u-Assm$NuZ E0

5ggN+g,ZF)r0方案2: 更改注册表的ClassMap项下的键值 (参考QuickTest Unplugged中高级章节)51Testing软件测试网7DuS-O+u|

DJ2y _%V|%l.k"e0优点:可用于QTP非标准映射方式,比如.Net对象映射

R5Hk*dZ-j1v-i?051Testing软件测试网w_ x h$k_ jO

缺点:需要对注册表操作脚本比较熟悉

T+P9^A.K051Testing软件测试网)m%L1b0hv

步骤:进入到HKCU --> Software --> Mercury Interactive --> QuickTest Professional --> MicTest --> Packages

,_7J,W}(m7Fz/`%e|051Testing软件测试网&a2Mn7BsHL*a

51Testing软件测试网!B V+j;XCr

~y Yy9H*xzXk051Testing软件测试网sdw&ubj |

可以看到此图中显示出了QTP所有已安装插件的包文件。我们可以展开StdPackage进入到ClassMap51Testing软件测试网-t!xgL u)k

51Testing软件测试网/Id wTDm }_


\6e1z7k%XANG051Testing软件测试网 S4n h7}"V~

OS@9L^^wX.R*a0如图所示我们可以看到ClassMap下有很多类和对象51Testing软件测试网;}oz[OW,n

U)c8U4BB%E/C0n0注意看右边,有一个TXEdit是不是很熟悉,没错,它就是之前我们使用QTP进行映射的对象51Testing软件测试网+{ ZZt5sx

'{&v.Qd h'R6{0当使用QTP在Object Identification下的User-defined功能进行映射后,注册表自动会生成这样一行键值51Testing软件测试网 |[3v-\#|4c]0Pa

51Testing软件测试网 vd*q2I5~H

那么这就意味着我们其实可以直接通过修改注册表自动加入自定义对象。

/Vf^@L0i051Testing软件测试网3E@%U.H0t eo

这里笔者建议大家可以直接使用Wsh对象的RegWrite方式封装成vbs脚本来进行映射。

`L|o1K[4v VE/g0

@IGl&Y7w`%y/m2X#]051Testing软件测试网(l%jg}$\)s
51Testing软件测试网SWg#[:}|`%cZ$d

51Testing软件测试网 nd$wf)`%Hq'xn

.Net对象无法识别?直接加入注册表即可映射自定义对象

(vb7F6~'m$w%vf0

Rq"yTg.I0
ni/E#S*d1T0

8vy$P}_ TB0

5},h8q-Ak3@F0这张图我就不解释了,相应聪明的你一看就明白了。

r3D} C A0

7KEb Y&E"swVL l051Testing软件测试网s;ox @U0_Hg$c

,Yc%HDC+J0

,i1C"Ja'b}X0注意:

|-@ u;O%@,AH051Testing软件测试网9FO]V^W

此方案必须在启动QTP之前进行,否则无效。51Testing软件测试网:qH~sX

51Testing软件测试网(~._ f'`#Xi ZU


+n IoGw/M0

.i9UI P9b On051Testing软件测试网B MI;M e7V

总结:51Testing软件测试网 V Nte;ql#ivQ

N!m|9\B(G!O7T#Es0 这两次讲座主要介绍了使用对象映射的方式来解决对象无法识别的情况,以及一些需要注意的事项,当然这只是冰山一角,对于对象无法识别的情况还有千千万万种,针对每种不同的情况有着不同的解决方案,比如访问控件自身接口、通过DotNetFactory访问自定义对象,通过写自定义Dll动态链接库、通过插件扩展开发来解决等等等等,这里我就不一一举例了。51Testing软件测试网3GR$D,MzZ7f3s6`

51Testing软件测试网n t6tS!i2i u


9n SV9Y;zt(l:h2{0

2C?'nb [051Testing软件测试网U!n0N(qe'j{:I|o

如有任何问题请去IquickTest Q&A问题库进行提问51Testing软件测试网3A L0\a$hbv,u

qaUB8x]!zZ)G$M0

;yn ~Y0LO#O+v051Testing软件测试网Z1`FT@!h.\

 Rss订阅IQuickTest关于如何订阅?

fH,Hm,~ E h"{,o9|BV}0

==================================51Testing软件测试网]kihD hZ

51Testing软件测试网*BW8o*w7D;o


51Testing软件测试网Vd]8p `:SZ

IQuickTest自动化测试培训开始预定(详情点击)

'sf]7ruB0Gz0\'x051Testing软件测试网2N9DfEF}$GU
作者:zzxxbb112 发表于2011-12-12 22:43:17 原文链接
阅读:1116 评论:1 查看评论

,P{E+_ Bw051Testing软件测试网 M%HWZ c
Link URL: http://blog.csdn.net/zzxxbb112/article/details/7065094

TAG:

 

评分:0

我来说两句

我的栏目

日历

« 2024-04-21  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 32334
  • 日志数: 49
  • 建立时间: 2009-10-17
  • 更新时间: 2011-10-31

RSS订阅

Open Toolbar