51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 20712|回复: 25

为客户化对象创建GUI 检查

[复制链接]
  • TA的每日心情
    奋斗
    2015-11-17 09:09
  • 签到天数: 7 天

    连续签到: 1 天

    [LV.3]测试连长

    发表于 2007-1-13 00:29:25 | 显示全部楼层 |阅读模式
    默认情况下,Winrunner将不属于任何WR标准GUI对象类识别为generic object class.此时,可以通过为它们创建客户化检查点类提高检查这些对象的能力。可以为新的客户化类开发属性检查和GUI 检查点对话框。创建客户化对象检查时,可以使用标准的WR GUI 检查点对话框。按照实际需要,往标准对话框中添加客户化属性检查。对于WR的非标准对象而言,使用标准的GUI检查点对话框,仅能显示generic "object" class的标准检查,也可以显示用户自己添加的客户化检查。但是,除了使用标准的Gui 检查点对话框外,也可以创建用户自己的UI Check界面。而且对于客户化检查,可以执行用户自己的结果显示配置。
    要添加新的GUI对象类并开发客户化用户界面和客户化结果显示配置,步骤如下:
            1)定义新的客户化GUI对象类,并开发带有客户化用户界面的GUI检查点对话框;
            2)创建捕获功能,以便确立检查的预期结果和实际结果;
            3)创建比较功能,以便比较预期结果和实际结果;
            4)注册由捕获功能和比较功能定义的检查属性;
            5)为新类设置默认检查;
    回复

    使用道具 举报

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

    连续签到: 1 天

    [LV.3]测试连长

     楼主| 发表于 2007-1-13 00:30:23 | 显示全部楼层
    下面以WR自带的Flight 4A中 Flight Reservation界面上 Date of Flight 的输入框为例,其物理描述为:
    {
         class: object,
        MSW_class: MSMaskWndClass
    }
    为其添加一个名为 Size 的属性检查,并将其 object 的标准检查 X 也设置为默认检查点。
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.3]测试连长

     楼主| 发表于 2007-1-13 00:31:16 | 显示全部楼层
    ###############################################################################################
    #脚本1:(完成定制UI对话框,捕获,比较以及显示函数)
    #Test Type:Compiled Module
    ###############################################################################################

    # 定制的UI Check对话框,唯一的缺点在于不能多选。如果需要多选,需要预先将其进行组合,如此例中的“Both”。
    function custome_ui_func(window, object, inout checklist, out arglist)
    {
            auto res = create_list_dialog("GUI Verification Sample UI_function Display","Please choose a check name","Size,X,Both");
            switch(res){
                    case "Size":{
                             checklist = "Size";
                             arglist = "User selected Size";
                             break;
                    }
    # X 是 Object 类的默认检查对象,故不需为其添加捕获函数和比较函数。这里将其显示在定制的UI Check 对话框中。
                    case "X":{
                             checklist = "X";
                             arglist = "User selected X";
                             break;               
                    }
                    case "Both":{
                             checklist = "Size X";
                             arglist = "User selected Size and X";
                             break;               
                    }
                    default:return -1;
            }
            return 0;
    }


    #1 捕获函数
    function size_capture(object, inout size)
    {
       auto height,width;
       obj_get_info(object, "height", height);  
       obj_get_info(object, "width", width);
       size = height * width;
       return 0;
    }

    #1 比较函数
    function compare1(exp_val, act_val, arglist, inout diff_file)
    {
            diff_file = "";
            if (exp_val != act_val) {
                    return E_DIFF;
            }
            return E_OK;
    }

    # 显示函数
    function display_func2(exp_file, act_file, result, diff_file)
    {
            auto exp_buf, act_buf, diff_buf;
            read_file(exp_file, exp_buf);
            read_file(act_file, act_buf);
            read_file(diff_file, diff_buf);
            pause_test("\nExpected: " & exp_buf & "\nActual: " & act_buf & "\n\nResult: "& result & "\nDiff: " & diff_buf, "OK", "Cancel", "Close");
            return 0;
    }
    function read_file(name, out buf)
    {
            auto tmp;
            buf = "";
            file_open(name,FO_MODE_READ);
            if (name != "") {
                    while (file_getline(name,tmp)) {
                            buf = buf & tmp;
                    }
                    file_close(name);
            }
    }
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.3]测试连长

     楼主| 发表于 2007-1-13 00:31:35 | 显示全部楼层
    ###############################################################################################
    #脚本2:添加新类,并注册该类的新检查点属性
    ###############################################################################################
    # 加载Compile Module,
    load(".\\addClassAndCheck");

    # 添加新的检查点类: "MSMaskWndClass"
    gui_ver_add_class("MSMaskWndClass", "custome_ui_func");

    #注册 Size 检查属性
    gui_ver_add_check("Size","size_capture","compare1");

    #将Size 检查与添加的新类  "MSMaskWndClass" 相连
    rc = gui_ver_add_check_to_class("MSMaskWndClass","Size");
    #if(rc != E_OK ){
    #          report_msg("Add check to class failed!");
    #          texit;
    #}

    # 为新类设置默认检查点
    gui_ver_set_default_checks("MSMaskWndClass","Size X");


    运行环境:WinXP+SP2,WR7.6
    参考文件:《WinRunner Customization Guide》
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2007-1-17 11:13:50 | 显示全部楼层
    不错,非常好!谢谢!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2007-4-28 15:20:06 | 显示全部楼层
    请教gp_j:
    1、在l学习GUI MAP属性时窗口的class属性为object,运行脚本无法通过,在GUI MAP EDITOR修改属性还是不行,virtual  object wizard又没有windows类,有什么方法
    2、用virtual  object wizard处理toolbar有什么用处,是指被测application 的toolbar吗
    新手赐教,不胜感激
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2007-5-28 10:29:53 | 显示全部楼层
    太感谢了!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2007-6-26 14:16:40 | 显示全部楼层
    不错,顶一下!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2007-6-26 16:29:07 | 显示全部楼层
    谢了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2007-7-16 13:26:50 | 显示全部楼层

    求助

    请问如何看到结果是正确的???
    我不知道怎么看到结果是正确的,请高手帮助!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2007-7-26 11:59:59 | 显示全部楼层
    厉害!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2007-8-22 15:51:29 | 显示全部楼层
    顶顶
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2007-9-18 16:20:29 | 显示全部楼层
    学习,什么时候我也可以发表意见就好了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2007-9-20 08:30:04 | 显示全部楼层
    新手看不懂
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2007-9-24 11:29:46 | 显示全部楼层
    谢谢,很有帮助!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2007-10-10 10:47:17 | 显示全部楼层
    virtual  object wizard好象是把区域内控件当作一整个位图来处理了.如果区域内出现什么变化等等的话virtual  object是不会理会这些变化的.感觉就时不好用,宁愿表示位非标准控件.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2007-10-25 17:28:41 | 显示全部楼层
    原帖由 owenyuan 于 2007-9-20 08:30 发表
    新手看不懂


    同意!!
    看来要深造点才可以轻松的看以上的文档。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2007-10-29 14:56:32 | 显示全部楼层
    嗯,是看不懂呢,也不知道怎么运行,还得学习呀!!!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2007-11-1 16:58:08 | 显示全部楼层
    看不懂
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2008-6-26 21:51:42 | 显示全部楼层
    刚刚学这个工具,我也看不懂!!!
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-3-29 14:46 , Processed in 0.087824 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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