51Testing软件测试论坛

标题: 求助高手 [打印本页]

作者: xwm1222    时间: 2007-7-12 17:46
标题: 求助高手
代码如下:
为客户化对象创建GUI 检查
默认情况下,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)为新类设置默认检查;



下面以WR自带的Flight 4A中 Flight Reservation界面上 Date of Flight 的输入框为例,其物理描述为:
{
     class: object,
    MSW_class: MSMaskWndClass
}
为其添加一个名为 Size 的属性检查,并将其 object 的标准检查 X 也设置为默认检查点。
###############################################################################################
#脚本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);
        }
}
###############################################################################################
#脚本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");


请问以上代码运行通过好,具体怎么查看到相应的属性被添加进取了呢??
请高手指路!
作者: xwm1222    时间: 2007-7-13 11:02
标题: 继续求助
继续求助
作者: lantianwei    时间: 2007-7-13 13:00
小弟水平有限。看的晕乎乎的!
作者: dionysus    时间: 2007-7-16 22:38
等过一阵我有时间后帮lz看下这个问题
其他高手来帮助看下啊
作者: dionysus    时间: 2007-7-22 18:55
新定义的检查点可以在Checkpoint对话框中看到




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