51Testing软件测试论坛

标题: 统计下WR get不到界面上的值,显示"# No text was found"的原因 [打印本页]

作者: 学会洒脱    时间: 2009-3-13 10:53
标题: 统计下WR get不到界面上的值,显示"# No text was found"的原因
统计下WR get不到界面上的值,显示"# No text was found"的原因

winrunner在进行界面取值的时候,会遇到取不出值的情况(不是某些特殊界面,举个例子:get记事本中的值也 get不出来.)我在网上找过,看到过不少人遇到过这咱情况,但是基本只有提问有下文.
我遇到过两次,造成这种情况可能的原因我还不是很清楚,第一次查出是被测软件在有一个特殊控件,在不再录制该控件之后解决(时间太长了,控件类型忘了, ).第二次是装了QTP之后发生的,但没有证据表明是WR和QTP混装才产生的情况.这次WR get不到值在我卸载QTP并清除注册表相关项之后还是无法解决.最后不得不重置虚拟机环境.

出现了这种问题或出现过这种问题的朋友大家来讨论下:可能导致的原因和相应的解决方法,让我们试着找出导致get 失败的真正原因.
作者: iamlijin    时间: 2009-3-13 16:44
更愁人的是有时能get到,有时get不到,决大部分是get不到。
就拿get“任务管理器”的进程数来说吧。 录制了一个杀进程的脚本,直接get的进程数,头几次能get到,后来根本一次也没成功过。没办法,用不了现成的,只能用list_get_items_count自己取了。
作者: 学会洒脱    时间: 2009-3-16 10:55
原帖由 iamlijin 于 2009-3-13 16:44 发表 更愁人的是有时能get到,有时get不到,决大部分是get不到。就拿get“任务管理器”的进程数来说吧。 录制了一个杀进程的脚本,直接get的进程数,头几次能get到,后来根本一次也没成功过。没办法,用不了现成的, ...

出现你这样的情况,也就是get不到的情况,你把WR关掉再重新打开行不行?
作者: iamlijin    时间: 2009-3-16 22:07
就开始时好使那么几回,都是一个月以前的事了,后来陆陆续续试过多次,怎么也识别不到了。用fonts expert学习过字体了,仍然是不行,顺便问一下,我选择的是五号字体,为什么properties 里size始终显示是10呢,怎么也改不过来啊。
作者: 学会洒脱    时间: 2009-3-17 10:17
呵呵.字体大小我就不知道了,不过你遇到的get不到值后来是怎么解决的呢?原因可能是哪方面原因呢?
作者: iamlijin    时间: 2009-3-17 12:08
用list_get_items_count函数取的。好像get是个顽症,没找到彻底的解决办法啊。
作者: 学会洒脱    时间: 2009-3-19 17:01
嗯...是的.至少没看到有人公布解决方法,这也是我发这个帖子的原因,想看下无法get到值可能造成的原因,以及对应的解决方法
作者: 学会洒脱    时间: 2009-6-3 16:28
标题: 转,可能原因
最近几天工作不是很忙,比较有空闲时间学点东西. 为了下个版本能更高效的进行测试,开始学习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); 后面加一个键盘向下,然后按回车的操作 缺点:比较死版,最初的默认必须一样,必须都是关闭。如果最初的默认为开启,则用键盘设置就有问题 有空考虑其他的解决办法。




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