QTP智能识别总结-转载

上一篇 / 下一篇  2012-10-22 19:28:36

QTP智能识别总结

QTP 识别对象原理
QTP对每个控件类都定义了一些强制属性和辅助属性。当qtp对对象进行识别的时候,首先qtp会取出控件的所有强制属性,如果这些强制属性能够唯一标识这个控件则选强制属性来标识控件,如不能唯一标识控件,qtp则逐一取出控件类的辅助属性直到能唯一标识控件为止。如果使用强制属性和辅助属性还不能唯一标识控件。 则有以下两种可能:" n7 L0 t6 ?4 Q- n) }  S5 R  H# r3 k
QTP对控件类的识别使用了智能识别(Smart Identificati2 L- M( D* [: R, b# v
on),qtp会忽略之前对强制属性与辅助属性的识别,这时qtp会使用smart identification 中的 basic filter propertiesoptional filter properties来对对象进行识别. basic filter properties就是一些控件的基础属性,例如buttonName,这个属性变了button也就变成另外一个button了。如果对控件类的识别没有使用Smart Identification,系统会使用Ordinal Identifier来对控件进行识别。
' Q/ F* j9 [- K' x, V9 }2 I
识别对象使用的属性顺序:
顺序如下:: I6 F. d& p: W# U% L
mandatory properties->assistive properties -->Smart Identification ->ordinal identifier. a: m6 t6 q$ L  @( S8 A; h( {7 \/ K
在QTP中点右键查看对象属性时,识别的顺序如下
* x9 E6 Y( q0 t% v5 ?/ ]3 A
>>> Description properties(
nomal变通的识别属性# g. t) o9 [4 _$ `: K( D( Z& {
  q' N) }* z% p4 M5 ^- i1 |
>>> Additional details(
额外内容,其中有“Enable Smart Identification”智能识别)
# m% E. A, Y- g6 U5 ?
>>> Ordinal identifier(
顺序标识符,如Creationtime,index等等,有些系统中,如果使用了智能识别,则此项将没有作用)
注意,如果Creationtime,index等用描述性的方式写到脚本中,则算作是Description properties,即会首先用来识别对象。
$ `2 w6 D3 q1 X; a8 t3 E' x
控制智能识别的开关
1.: q3 s; L, G" S: K; N" P( w
设置整个测试或一些控件不应用智能识别
如果是要在脚本执行过程中禁用所有的智能识别,那只需要在开头加上' r8 ?+ [4 w! G- \
Dim App 
Set App = CreateObject("QuickTest.Application")7 d6 w0 V6 n; N1 v+ f2 m# Q
App.Test.Settings.Run.DisableSmartIdentification = True
如果只是要禁用部分对象的智能识别,比如禁用WebEdit的智能识别,则用
Dim App ( c- `; d1 w" J0 J( x5 Q; [6 H6 |
Set App = CreateObject("QuickTest.Application")) @& h7 D7 I1 ?; T' p- e8 Z2 O, c
App.Options.ObjectIdentification("webedit").EnableSmartIdentification = False+ G& q4 _" K6 F7 P4 N% [6 o8 I5 P
同样,禁用Browser的智能识别就是' G) {/ v, F9 ~
App.Options.ObjectIdentification("browser").EnableSmartIdentification = False: W$ h$ b' Y! H9 |' w
2.
通过手动设置QTP工具控件智能识别
>>只针对当前测试:
File –> Setting –> Run ,把“Disable Smart Identification during the run session”前面的复选框选上,则不当前测试不支持智能识别,反之支持。8 W: m  g0 ?' W, n
>>修改智能识别设置:
Tools –> bject Identification,可以通过设置“Enable
Smart Identification
”和“Configure”来改变智能识别设置。6 N6 Y3 [5 z& @. Z4 z


注,理解这些原理对于处理一些控件总是不能识别的问题挺有帮助。如一个控件需要用index来识别,但是QTP总是先进行智能识别,这时就有可能出错了。4 L3 N  q0 l; f. l$ F7 ~" W: q( B) v& s
本人实验过,有些系统会有出错,但有些系统却不会。

转载他人,原帖地址:http://bbs.scmlife.com/thread-16482-1-1.html

TAG:

 

评分:0

我来说两句

日历

« 2024-06-02  
      1
2345678
9101112131415
16171819202122
23242526272829
30      

数据统计

  • 访问量: 2904
  • 日志数: 4
  • 建立时间: 2012-06-13
  • 更新时间: 2012-10-22

RSS订阅

Open Toolbar