|
8#
楼主 |
发表于 2009-6-3 16:28:50
|
只看该作者
转,可能原因
最近几天工作不是很忙,比较有空闲时间学点东西. 为了下个版本能更高效的进行测试,开始学习WINRUNNER . 其实早在05年的时候就有稍微看下WR7.6,不过那时候看的很浅, 第一次学习,看使用说明看的晕晕的. 昨天白天看了一天的<> , 边看边实践感觉收获不少. 在初步实践过程中遇到的问题及解决方式(网络上搜索的)汇总如下. 1. 由于测试的是Delphi 编写的程序,所以在WR中要安置 Delphi 控件。 连接个地址关于识别Delphi控件:http://yuanhaisong.diy.myrice.com/sqa/winrunner/winrunner1.htm 2. 录制WR脚本过程中,GUI识别对象已经在GUI MAP 中了,但是回放脚本,还是要求重新识别。这样的情况是因为 该对象的属性中有个 MSW_ID:??? 这样的语句. ???这个值在每次回放的过程中是不一样的,所以需要每次识别. 解决办法1: 将 MSW_ID:??? 替换成 location:X, 其中X 可以是0,1,2...这样的依次类推. 解决办法2: 在GUI学习属性设置中(GUI Map Configuration)中将相应类的学习属性修改一下,将不需要的MSW_id设为Not used,将location设为Obligatory,应该就可以了。把MSW_id在Configuration里删除,另外用有可移植性的属性代替,这样做的MAP文件可用性更强。 3.令人恼火的Win_get_text()和obj_get_text()无论如何,都无法抓到文本。甚至连记事本的纯文本都无法抓到。这个问题出现的原因非常麻烦和深奥,基本上,如果你不幸出现了,那么恭喜你,换一个环境吧。 第一种可能:操作系统的字符集问题。比如纯英语操作系统和中文的操作系统就不同。 第二种可能:字体的问题。中西方的字体,无论字体名字还是字号大小,都是不同的规格,因此需要自己研究。 第三种可能:被捕捉对象无法识别。比如C++或DELPHI开发的控件,压缩或加密以后,无法抓到文本。 第四种可能:图片上的文本。需要映射或虚拟控件才能被识别,不过意义不大,基本纯属侥幸。 特别注意点: 在录制脚本的时候,尽量先开WR 然后再开需要录制的程序,这样不容易出现令人吐血的异常情况。 小胡教的,实践中发现效果不错。解决办法(不一定有效果): 1.如果文本内容是一个对象的属性,则尽可能用obj_get_info这个函数来获取相应对象的属性值。 2.终极方法,是通过WinRunner学习字体来解决。具体方法,可以查看WinRunner User Guide中的Creating Tests-Basic -> Checking Text -> Teaching Fonts to WinRunner章节。WinRunner 8.2的User Guide中在340页。 4. 图片检查点出现莫名其妙的错误。原检查点有图片,但是回放的时候却取到一片空白。这种误差并不是录制时的错误,也没有脚本上的逻辑错误,但是很灵异。总结下来,有如下原因: 第一种可能:分辨率和色差。 因此要保证录制和执行时的分辨率和色位是相同的。 第二种可能:刷新率。比如,液晶显示器和纯屏就会有这个灵异事件。当然,要统一,一般液晶设置在60,纯屏75,比较适合作测试。(不是打游戏啊,没必要设置到75和85的。) 第三种可能:脚本运行太快,请设置停顿或等待,使得操作同步。 第四种可能:原因不明的诡异。脚本逻辑录制好以后,插入图片检查点就可能出现这种异常。但是,如果录制时暂停,插入图片检查点,随后再继续录制,就没有这种问题。 —————— 2009-4-3日 —————— 5. 在使用工具WINRUNNER 8.0 录制 制做工程文件的自动化脚本的时候 出现如下问题: 有个控件是 MSW_class: TComboBox 。用鼠标操作,点下拉框,然后选择。默认值是“关闭”,要选择为“开启”。 录制的过程WR就记录了一句:obj_mouse_click ("TComboBox", 33, 8, LEFT);但是在回放的时候,WR 会识别到 这个控件,会点下拉框,但是却不会选择 值,不会选择开启或者关闭,保持为默认值。 这种情况可能是 WR无法识别你的list控件。 解决办法:可以在obj_mouse_click ("TComboBox", 33, 8, LEFT); 后面加一个键盘向下,然后按回车的操作 缺点:比较死版,最初的默认必须一样,必须都是关闭。如果最初的默认为开启,则用键盘设置就有问题 有空考虑其他的解决办法。 |
|