51Testing软件测试论坛

标题: [原创]GUI文件的制作及维护(一) [打印本页]

作者: 生如火花    时间: 2004-10-22 22:58
标题: [原创]GUI文件的制作及维护(一)
GUI文件是脚本和程序连接的纽带。一份准确的GUI文件能使脚本的通用性增强,同时降低维护成本。
制作GUI文件:
一,尽可能的拥有插件的支持,比如dephi编写的程序,尽量安装上dephi插件。这样有利于WR学习窗体和对象(包括按钮等)。
二,模拟操作,一步一步的打开窗口。每出现一个窗口,让WR learn一下出现的整个窗口。特别的,不要漏掉可能弹出的异常窗口,或者是关闭程序或者功能时蹦出的确认小窗口。
三,对于窗口label变化的,在MAP EDITER里使用通配符使窗口通用。方法是在label:""中添加!.*,比如有3个窗口win123,win325,win999,就在里面改成!win.*。依此类推。
四,对于窗体中的对象的修改,这个是对脚本通用性影响最大的。首先需要注意对象的格式。如果在对象名后多了_1,_2,_3这样的,要特别注意修改。很有可能这些都是不需要的,而且在重新打开程序他们就变化了,对于这中对象我们需要检查它的属性,看有没有msw_id这一行。有的话,删掉,用location:X换掉他,下面说一下怎么确定X:
     1  先把X设为0,执行第2步;不行的话,然后是1,然后是2。
     2  把被测程序窗口最大化,把WR窗口缩小,打开gui map editor,点对象,看是不是能在被测程序中高亮标识。能,X就是对的,保存,不能,回第1步。
五,运行录制好的脚本,观察有哪些对象通用性差,进行修改。具体情况,具体分析。
                                        我也是初学,请大家多帮助。
作者: QA_BAY    时间: 2004-10-22 23:55
非常好,顶
作者: QA_BAY    时间: 2004-10-22 23:56
就在里面改成!win.*。对了,为什么要这样改呢?是不是规定这样的呢?
作者: 生如火花    时间: 2004-10-23 00:54
Originally posted by QA_BAY at 2004-10-22 11:56 PM:
就在里面改成!win.*。对了,为什么要这样改呢?是不是规定这样的呢?
这是通配符,标识窗体前3个字符为win的所有窗体。
作者: QA_BAY    时间: 2004-10-23 10:43
对了,是不是所有的控件含有MSW_ID都要改成LOCATION:0呢?
先把X设为0,执行第2步;不行的话,然后是1,然后是2。(然后1是什么呢?2又是什么呢?指第一,二步吗?)不太清楚!
作者: 生如火花    时间: 2004-10-23 13:07
意思是location:0不行就换location:1   location:2
作者: girl04    时间: 2004-10-24 22:04
"点对象,看是不是能在被测程序中高亮标识。"\\不明白,能说清楚一点吗?谢谢
作者: 生如火花    时间: 2004-10-25 00:26
按我说的做,你就知道什么意思了
作者: lanxn    时间: 2004-10-25 10:25
不错,非常好
作者: 多事    时间: 2004-10-26 16:08
火花写的非常的好呀。请继续往后面的介绍吧
作者: 生如火花    时间: 2004-10-26 16:14
最近很忙。得整理头绪。
作者: wawzjlp    时间: 2004-10-26 16:28
收藏起来``
作者: lkcom    时间: 2004-10-26 16:36
“对于这中对象我们需要检查它的属性,看有没有msw_id这一行。有的话,删掉,”如何操作这句话。
作者: 生如火花    时间: 2004-10-26 17:13
Originally posted by lkcom at 2004-10-26 04:36 PM:
“对于这中对象我们需要检查它的属性,看有没有msw_id这一行。有的话,删掉,”如何操作这句话。
在map editor 里点modify
作者: lkcom    时间: 2004-10-27 14:37
点对象,看是不是能在被测程序中高亮标识。"
亮度是什么意思,可否把“高亮标识”截图下来,看看,谢谢了
作者: 生如火花    时间: 2004-10-27 15:17
会闪的,我截不到
作者: lkcom    时间: 2004-10-27 16:31
非常感谢“生如火花”朋友,我明白了,顶
作者: wei2j    时间: 2004-11-3 09:38
确实很有帮助啊,多谢楼主啦!
作者: 生如火花    时间: 2004-11-14 16:11
自己的贴,自己 up,hehe
作者: sunfy    时间: 2004-11-26 11:44
标题: 写的太好了,不过还是有个小问题请教:)
二,模拟操作,一步一步的打开窗口。每出现一个窗口,让WR learn一下出现的整个窗口。特别的,不要漏掉可能弹出的异常窗口,或者是关闭程序或者功能时蹦出的确认小窗口。

在录制的时候也可以learn吗?
如果在录制的时候把所有窗口都弹出(如异常窗口)的话,那回放的时候不需要回放异常窗口怎么办?

谢谢:)
作者: QA_BAY    时间: 2004-11-26 22:18
录制的时候也可以learn:应该不是这个意思吧
录制的时候就是说如果你原先没有LEARN到的GUI,他要变成一个*号
然后会放在临时文件那里需要你保存起来!
那回放的时候不需要回放异常窗口怎么办?
那些就保存在GUI里,没有关系的!
作者: yuelin    时间: 2004-11-30 09:33
呵呵 ,又长了见识了,多谢了
作者: lousia    时间: 2004-12-29 00:12
Originally posted by 生如火花 at 2004-10-26 05:13 PM:
在map editor 里点modify

我的TelTelbeta窗体上有11个button,很奇怪昨天用learn学出来classbject 今天学出来class:push_button真是好奇怪啊.
于是我通过GUI map configuration ->push_button->modify来修改在optional 里把MSW_id去掉了,GUI map configuration ->object->modify来修改在optional 里把MSW_id去掉了,用其中一个闪的按钮来判断if(obj_exists("Button_9")==E_OK) 还是不能判断,通过learn学习后确实每个button都闪了
作者: tanhuang    时间: 2004-12-29 15:02
very good ! 看过了再过下,真太棒了.
作者: 生如火花    时间: 2004-12-29 17:35
Originally posted by lousia at 2004-12-29 12:12 AM:

我的TelTelbeta窗体上有11个button,很奇怪昨天用learn学出来classbject 今天学出来class:push_button真是好奇怪啊.
于是我通过GUI map configuration ->push_button->modify来修改在optional 里把MSW ...

不是map configuration是GUI map editor
作者: dyjyhx    时间: 2005-1-5 08:38
期待<二>,<三>..............................
作者: nfwolf    时间: 2005-1-18 17:37
刚用WR,不是很知道怎么会事
问一个问题,如果我们在输入过程中,出现软件的错误,那测试还有什么意义
是不是learn一个已经测试正确的版本呢?
作者: lousia    时间: 2005-2-18 14:55
下面的图上有两个问题,请指点
作者: lousia    时间: 2005-2-18 16:27
“三,对于窗口label变化的,在MAP EDITER里使用通配符使窗口通用。方法是在label:""中添加!.*,比如有3个窗口win123,win325,win999,就在里面改成!win.*。依此类推。”
我有个问题
如果窗体名称是 1-Ethereal ,2-Ethereal ,3-Ethereal ...
那么怎么改呢?
我改成!.*-Ethereal ,winrunner不认识的
作者: 生如火花    时间: 2005-2-20 12:27
Display是一个菜单吧。。。你的软件是什么语言开发的?
2用GUI SPY观察object 的standard属性看看,找不到是什么意思,MAP里有没有?
3这种情况我没遇到过,估计是-号的原因,不认识是指什么情况,提示语法错误还是改了以后没有找到窗体?
作者: xinyijiu25    时间: 2005-3-9 16:35
非常感谢,利用这种方法我解决了此类问题。
作者: harryhu    时间: 2005-3-17 11:13
我们的网页使用JAVA和javascript开发的,但是每次都是第一天录制的脚本,第二天运行脚本的时候提示说对象不识别,要重新relearn,不知道为什么,郁闷啊
作者: 生如火花    时间: 2005-3-18 13:03
b/s结构的系统建议使用Qtp,放弃用WR测试b/s结构会为你省下时间
作者: lgwmlx    时间: 2005-4-23 21:55
非常好的文章,看了受益非浅
作者: xihong2004    时间: 2005-5-12 09:17
好贴



作者: zhengfeng    时间: 2005-5-19 18:52
新记录的 Id 自动增加,我录制时Id是 120,
run时,可能是 121(变量newId) ,如何使Winrunner  识别此对象,并link 标签是 newId 的链接呢?

[ Last edited by zhengfeng on 2005-5-19 at 18:54 ]
作者: zhengfeng    时间: 2005-5-19 18:57
标题: 接上贴
原来脚本:
set_window("mainFrame1",65);
web_link_click(116);

我改成:
set_window("mainFrame1",65);
web_link_click(newId);
不行吧?

请指教! (附: GUI改动)

[ Last edited by zhengfeng on 2005-5-19 at 19:01 ]
作者: zhengfeng    时间: 2005-5-19 19:02
标题: 接上贴
GUI这样改动,行吗?

请楼主或哪位高手 提供整体的解决方案,非常感谢!:d

[ Last edited by zhengfeng on 2005-5-19 at 19:06 ]
作者: lizhiweistar    时间: 2005-5-26 17:18
QA_BAY,还有生如火花,能不能把你们的msn或者QQ告诉我一下啊,我想和你们交流交流学习winrunner的心得!我的QQ是:123197445,MSN:lizhiweistar@hotmail.com
作者: connie    时间: 2005-6-27 17:48
请问:MSW_id到底是个什么参数?
我按照生如火花的将部分GUI文件的物理描述中的MSW_id删掉,并且改成location:X,有一部分可以识别,但是某些地方的MSW_id不可以这样操作。而且我发现MSW_id并没有随着我每次操作的不同而变化,比如某个聊天框,"MSW_id:1001"这条语句一直没有变过。其它的很多GUI的MSW_id这条语句也都是不变的。这是为什么?
作者: simen12    时间: 2005-7-7 09:44
能不能解释一下 location 的值 为0和1和2的时候是代表什么意思呢?
作者: ihui_1983    时间: 2005-8-1 16:53
标题: UP
顶~~~~~~~~
作者: testfans    时间: 2005-9-30 16:17
very very good!!!
强!
作者: liujun_newnew    时间: 2005-11-15 09:41
标题: B/S结构表示什么意思
c/s结构我知道是指客户端/服务器结构,那么请问B/S结构表示什么意思啊?
作者: 一米    时间: 2005-12-30 11:02
B/C结构指的是浏览器/服务器端
作者: fish_yy    时间: 2006-2-15 13:41
tab顺序
作者: xihong2004    时间: 2006-4-12 10:52
先收下了
谢谢
作者: yang_dianhui    时间: 2006-6-19 07:17
对不起,我的问题是正好相反的,多个不同窗体用的名字都是一样的。我试着为每一个页面都录制不同的gui map,然后在转到该页面前载入此gui map。



以上2页的名字都是ISSUEADMIN, 我录的gui map分别叫D:\Frank\Project\CTS\Test Script\TIMT\TIMT_IssueAdmin\TIMT_0618_IssueAdmin.gui 和 D:\Frank\Project\CTS\Test Script\TIMT\TIMT_4_Blocker\TIMT_0618_4_Blocker.gui

在执行脚本的时候就会出现如下错误:the file"D:\Frank\Project\CTS\Test Script\TIMT\TIMT_IssueAdmin\TIMT_0618_IssueAdmin.gui" cannot be loaded. The window "ISSUEADMIN" already exist in the GUI Map

请问我应该怎么做才能避免这种问题?
作者: yang_dianhui    时间: 2006-6-19 07:22
不好意思,不知道怎么贴图,放到word里面传上来了,大家多包涵
作者: sofia0110    时间: 2006-7-28 11:17
好帖,帮楼主顶一个!
作者: jane1983    时间: 2006-12-21 15:26
“三,对于窗口label变化的,在MAP EDITER里使用通配符使窗口通用。方法是在label:""中添加!.*,比如有3个窗口win123,win325,win999,就在里面改成!win.*。依此类推。”
问:
如果脚本是set_window(“0000”,2)
那我要适用你的方法,那么要如何更改呢?
作者: raodehua    时间: 2007-1-11 17:57
把脚本中的“116”改成“*”试试
作者: millerjordan    时间: 2007-5-22 15:56
顶了再看看
作者: dyq    时间: 2007-7-1 15:23
这么好的文章,不顶一下,不行阿,。。
作者: dyq    时间: 2007-7-3 19:28
GUI对象,有点难。。。。
作者: qinliu    时间: 2007-8-8 16:32
你的这篇文章真是宝啊,我今天被这个问题弄得头都大了,看了你这文章,我简直看到救星了,太棒了。谢谢咯!请你吃饭都行啊
作者: yj151221    时间: 2009-7-14 13:23
标题: 非常感谢
正在学习当中真的很难得




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2