|
配置GUI_Map专题
----------kai_top
第一部分了解Gui map
首先要明白被测软件中每个GUI对象都有多个属性,如class(类)、label(卷标)、MSW_class(微软窗体类)、MSW_ID(微软窗体标识符,Microsoft window ID)、X(对象左上角对应窗口原点的X轴坐标),y(坐标),abs_x(对象左上角对应屏幕左上角的X轴相对坐标),abs_y,width(宽度),height(高度),enable等等,不同的对象控件有不同的属性值;当WR学习对象时,并不学习对象所有属性,只是学习可以标识惟一对象的最少属性值。对每个对象的类(window,menu,list,button,text等),WR学习默认的一组属性,这个呢就叫做
GUIMAP配置。例如button有28个属性,在多数情况下WR只需要class和lable就可以创建一个惟一标识来识别这个button;随着软件操作的界面等不断创新,许多软件包含自定义的GUI对象(自定义对象指任何不包括在WR使用的标准对象类中的对象),这些对象被归到一般对象中。当WR在录制中遇到一个自定义对象时,就会在测试脚本中生成obj_mouse_语句(比如obj_mouse_click;obj_mouse_drag等)。
那么如何让WR把自定义对象当作标准对象一起标准使用呢?
如果一个自定义对象和一个标准对象相似,用户可以把它映射到一个标准对象类中。用户也可以配置WR用来识别自定义对象的属性,无论是映射还是配置,都只能用于当前的进程中。如果想要永久保留映射和配置,用户必须把配置语句添加到启动脚本中。每次用记启动WR,启动测试都会激活这个配置。
注意(1):如果你测试的软件包含自己画的对象,比如button,你可以它们都映射到一个标准button类上,不需要每个都分开映射一次。你可以在General options对话框record选项卡里Advanced Record Options的Record Owner.Draw Buttons里选一个标准button类。你也可以在脚本中设置rec_owner_drawn测试选项和setvar功能.
注意(2):对象属性根据它们的可移动程度变化。有些是不可移动的(即只能在一种平台上运用),如MSW_CLASS或MSW_ID;有些是半移动(支持多平台,也不全是)如handle、toolkit_class等;其它都是完全可移动的,如label,attached_text,enabled,focused或parent.
第二部分 理解GUIMAP的默认配置
对于每一个类来说,WR都学习一组默认属性,每个默认属性都被分成“必须(obligarory)"和“可选(optional)";obligarory属性是WR一定会学习的.optional属性只有当oligarory属性不足以提供惟一标识时候才使用。这些可选属性储存在一个清单里。WR从清单中挑选足以惟一标识对象的最小数量的属性。它从清单第一个属性开始,一个接一个把属性添加到描述里,直到足以惟一标识对象。如果用户用GUIspy查看一个cancel button的默认属性,用户会看到WR学习了class和label属性。这个button的物理描述是:{class:push_button,label:"cancel"}。
在必须和可选属性都不能惟一标识对象时,WR使用一个选择符(selector)。例如,如果一个窗体中有两个OK button都有同样的MSW_id,WR会使用选择符来区分它们。选择符可以分两种:
1)位置选择符(location selector):用对象的空间位置(上下左右)
2)索引选择符(index selector):用一个惟一数字来标识一个窗体中的对象。如果对象的位置可能发生变化,就要用这种选择符。
第三部分 把自定义对象映射到标准的类
不属于WR使用的任何标准的类就是自定义对象。具体方法:通过GUI MAP Configuration对话框,用户可以教WR识别自定义对象并把它映射到一个标准类。例如WR识别不了一个button,就会录制成obj_mouse_click,用户可以教WR识别它并映射到标准push_button类。以后当用户单击这个button是,就会识别成button_press注意:自定义对象只能被映射到与它行为类似的标准类中,如用户不能把button映射成edit.
自定义映射到标准类的操作方法如下:
1)选择tools->gui map configuration,class 清单显示所有类和WR识别出的自定义类
2)单击add按钮,打开添加类对话框
3)单击手形图标然后单击你想添加的类的对象,自定义对象的名称会出现在Class NAME框里
这个名称就对象的msw_class发生值
4)单击ok按钮,新添加的类会在class清单的底部并被加亮,前面有个"U"(即use defined)
5)单击configure按钮,打开配置类对话框
6)在Mapped to Class清单中,选择你想要映射的标准类。选择后,对话框会显示这个类的GUIMAP配置。用户也可以修改自定义类的guimap配置(包括要学习的属性,选择符和录制方法)
7)单击ok完成配置
注意:配置只适用于当前的测试,想要永久保留这个配置,用户需要将Generated TSL Script语句粘贴到启动脚本中。
<待续>-----------拷贝留名----------------- |
|