51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 5883|回复: 10
打印 上一主题 下一主题

配置GUI_MAP

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2005-8-19 14:34:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
配置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语句粘贴到启动脚本中。
<待续>-----------拷贝留名-----------------
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    开心
    2018-3-1 16:59
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    2#
    发表于 2005-8-20 11:08:36 | 只看该作者
    谢谢楼上的,我看过英文版的,但是没完全看懂,现在明白了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-2-12 16:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    3#
    发表于 2005-8-20 11:40:17 | 只看该作者
    谢谢楼主!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2005-8-20 15:20:30 | 只看该作者
    写得很辛苦。
    不过原来懂得了,只是把懂得的,再看一遍,不懂得的还是不懂。
    有点纸上谈兵。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2005-8-21 18:47:49 | 只看该作者
    谢谢,很好的文章
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2006-4-13 13:25:40 | 只看该作者
    可否提供一个例子开看看呀,看了之后还是不会用呀
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2006-4-14 10:16:37 | 只看该作者
    sdlkfj
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2006-4-14 20:13:19 | 只看该作者
    谢谢了!!!!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2006-5-26 10:29:28 | 只看该作者
    能不能提供出处? 是WR的文档吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2007-12-21 00:49:48 | 只看该作者

    感谢楼主

    感谢楼主
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2007-12-23 22:02:36 | 只看该作者
    不错啊
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-5-14 00:21 , Processed in 0.083449 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表