51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 6464|回复: 13
打印 上一主题 下一主题

winrunner无法截得位图的验证点

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-11-19 12:11:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
录制程序插入检测bitmap的验证点,代码:obj_check_bitmap("Insert Done...", "Img5", 1);
回放的时候WR停止在这里并报出:
Bitmap verification failed.
Error: No expected image

Image name: "Img5:1"
Object name: "Insert Done..."
在GUI中有“Insert Done...”这个对象,报错应该是没有找到预期结果的位图,这是什么原因造成的呢?如果插入验证点正常的话,这个位图应该在WR中的哪里可以看到?谢谢
PS:这个脚本是被另一个脚本调用的,单独执行这个脚本时有时可以回放通过,有时回放失败。但通过调用回放却总是失败。困惑
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2006-11-19 15:45:27 | 只看该作者
1.WR中预期结果的位图放在脚本所在目录下的'exp'文件下。
2.如果单独运行这个脚本可以成功,那说明所要检查的位图是存在的。被调用不成功,是不是因为你的脚本中储如定位窗口的语句,没有,或给的等待时间不够长,比如“set_window("xxx",5)”,可以试试把5改成10。
楼上的,试试吧,不知道能不能解决问题。。。。。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2006-11-19 17:53:45 | 只看该作者
谢谢楼上的回复,我在脚本的exp文件夹下找到了这些图片,并且在检查语句前加入了wait语句设置较长的时间用来等待,但是仍然提示没有找到预期图片,很奇怪
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2006-11-19 21:11:11 | 只看该作者
lz误解了shiwomyw 的意思吧。加上wait语句肯定不行,她是说让加set_window啊。wait的话,winrunner是做等待操作的啊,并不会去寻找窗口啊。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2015-11-17 09:09
  • 签到天数: 7 天

    连续签到: 1 天

    [LV.3]测试连长

    5#
    发表于 2006-11-19 22:04:25 | 只看该作者
    将 obj_check_bitmap("Insert Done...", "Img5", 1); 修改为  obj_check_bitmap("Insert Done...", "Img5", 100); 试试
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2006-11-20 10:13:27 | 只看该作者
    今天又试验了一下,发现问题所在了。我试验的程序就是WR8.2里自带的例子程序flight4a,先把我的脚本贴出来大家看一下吧:
    主脚本:main
    GUI_close_all();
    if(GUI_load(".\\flight gui.gui")!=0)
    {
    report_msg("gui load error");
    }
    else
    {
    report_msg("gui load ok");
    }

    if(invoke_application("D:\\Program Files\\Mercury Interactive\\WinRunner\\samples\\flight\\app\\flight4a.exe","","",SW_SHOW)!=0)
    {
    report_msg("app start error");
    }
    else
    {
    report_msg("app start ok");
    }
    call ".\\flight"();
    被调用的脚本:flight
    # Login
    set_window ("Login", 8);
    edit_set ("Agent Name:", "mercury");
    password_edit_set("Password:", "kzptnyoslzjsaz");
    button_press ("OK");

    # Flight Reservation
    set_window ("Flight Reservation", 7);
    edit_set ("Date of Flight:", "11/25/06");
    list_select_item ("Fly From:", "Denver");  # Item Number 0;
    list_select_item ("Fly To:", "Los Angeles");  # Item Number 2;
    obj_mouse_click ("FLIGHT", 34, 25, LEFT);
    # Flights Table
    set_window ("Flights Table", 2);
    list_select_item ("Flight", "4725   DEN   07:45 AM   LAX   08:43 AM   USA   $127.20"); # Item Number 1;
    button_press ("OK");
    # Flight Reservation
    set_window ("Flight Reservation", 5);
    edit_set ("Name:", "yangmh");
    edit_set ("Tickets:", "2");
    button_press ("Insert Order");

    obj_check_bitmap("Insert Done...", "Img1", 100);
    当我录制完这段程序后回放仍然提示找不到预期图片,check等待时间也设置的足够长。后来我查看截图在文件夹里保存的路径,发现main和flight两个脚本文件夹下都有exp\flight文件夹,但是只有flight的exp\flight下面有img1,于是我想是不是因为程序在这里检查去main\exp\flight下搜索了呢?我把img1复制到main\exp\flight\下再次运行脚本通过。
    问题算是解决了,但我不知道为什么在执行flight脚本的时候程序不是找该脚本下的exp文件夹,反而去找主脚本的exp,是不是我应该载哪里设置一下?

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2006-11-20 11:44:12 | 只看该作者

    不知道这样理解对不对

    你是用main去调用flight的是吧,那应该说脚本在执行的时候还是在操作MAIN这个文件里的东西的,也就是说,只要你执行obj_check_bitmap()这个函数,里面的IMG图它是去到自己的EXP下去找的,至于flight下有IMG那是因为你是在创建FLIGHT的时候插入的图片检查点,所以那个图片的文件在FLIGHT下,要是你在主程序里自己手动插入一个图片检查点,那产生的IMG文件肯定在自己的EXP里,你可以试一下
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2006-11-20 14:09:38 | 只看该作者
    找到方法可以解决了,其实挺简单,就是在子脚本中插入验证点后,在主脚本用updata模式回放一遍,这时子脚本exp下的图片就自动复制到主脚本的exp下了。以后回放就不会有错了。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-11-17 09:09
  • 签到天数: 7 天

    连续签到: 1 天

    [LV.3]测试连长

    9#
    发表于 2006-11-20 23:02:08 | 只看该作者

    回复 #6 dionysus 的帖子

    我使用的是 WR V7.6。
    按照你的代码我跑了一下没有发现问题,在main和flight的exp文件夹中都有 img1。我的步骤是:
    1。先录制 flight 脚本,调通;
    2。编写 main 脚本;
    3。回放,通过。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
     楼主| 发表于 2006-11-21 09:07:36 | 只看该作者
    原帖由 gp_jl 于 2006-11-20 23:02 发表
    我使用的是 WR V7.6。
    按照你的代码我跑了一下没有发现问题,在main和flight的exp文件夹中都有 img1。我的步骤是:
    1。先录制 flight 脚本,调通;
    2。编写 main 脚本;
    3。回放,通过。

    我按照你说的顺序使用8.2做了一下,仍然提示没有找到预期图片,不管我在flight脚本中插入验证点后使用什么模式回放,img图片都不能自动复制到main的exp下,只有在main脚本使用updata回放才可以。比较奇怪的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2006-11-21 17:17:58 | 只看该作者
    是啊...我曾经也遇到类似问题,但是我的处理方法:是将Flight脚本中的img图片拷到main的exp下,今天感谢dionysus 我又学到了一种方法.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2006-11-22 14:12:53 | 只看该作者
    在看论坛的贴子时发现了另一个解决的办法,在settings->general options->run下把“run in batch mode”勾选上,运行就可以通过。这样如果在主脚本中所调用的脚本有检查点等,都 不 会在当前主脚本下找,而去被调用的脚本中找。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2006-11-22 14:26:59 | 只看该作者
    yea...终于的找到我要的方法,谢谢shiwomyw 提供的解决方法
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2006-11-30 14:39:58 | 只看该作者
    原帖由 shiwomyw 于 2006-11-22 14:12 发表
    在看论坛的贴子时发现了另一个解决的办法,在settings->general options->run下把“run in batch mode”勾选上,运行就可以通过。这样如果在主脚本中所调用的脚本有检查点等,都 不 会在当前主脚本下找, ...

    这个方法对于我这样的新手帮助太大了,而且也解决了相对路径和绝对路径的问题。太好的方法。新手必学,呵呵。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-25 03:16 , Processed in 0.082672 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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