生如火花 发表于 2006-5-18 16:47:21

把你解决文件的经验放出来给大家共享吧

狩猎者 发表于 2006-5-19 10:38:00

好的!我只是改了一个函数就好了。下面我把脚本贴出来,改的函数我用红色表示下。大家可以对比13楼的帖子看下。
table = "default.xls";
rc = ddt_open(table, DDT_MODE_READ);
if (rc!= E_OK && rc != E_FILE_OPEN)
        pause("Cannot open table.");
ddt_get_row_count(table,table_RowCount);
for(table_Row = 1; table_Row <= table_RowCount; table_Row ++)
{
        ddt_set_row(table,table_Row);
       
        # Shell_TrayWnd
                set_window ("Shell_TrayWnd", 1);
                button_press ("Start");
       
        # BaseBar
                set_window ("BaseBar", 7);
                toolbar_select_item ("ToolbarWindow32_1", "程序(P);附件;计算器");
       
        # 计算器
                win_type ("计算器",ddt_val(table, "t1") );
                set_window ("计算器", 0);
                obj_mouse_click ("Button", 21, 13, LEFT);
                obj_type ("Button",ddt_val(table, "t2") );
                obj_mouse_click ("Button_1", 24, 17, LEFT);
                obj_mouse_click ("Button_2", 54, 9, LEFT);
                win_close ("计算器");
        # 判断结果
                line1=ddt_val(table,"t1");
                line2=ddt_val(table,"t2");
      line3=ddt_val(table,"t3");
       if(line1*line2==line3)
       report_msg("line1="line1",line2="line2",line3="line3",right.");
       else
       report_msg("line1="line1",line2="line2",line3="line3",wrong.");
       
}
ddt_close(table);

[ 本帖最后由 狩猎者 于 2006-5-19 10:44 编辑 ]

zhenhaiou 发表于 2006-5-19 10:49:44

line1=ddt_val(table,"t1");
line2=ddt_val(table,"t2");
line3=ddt_val(table,"t3");
      
line1、line2、line3都是在你的数据表中取出来的数据,
那么后面的这个判断 if(line1*line2==line3)和操作中得到结果没有任何关系阿,呵呵

msky1025 发表于 2006-5-19 11:29:15

ddt_set_row(table,table_Row);

line1=ddt_val_by_row(table,Row,"t1");
line2=ddt_val_by_row(table,Row,"t2");
line3=ddt_val_by_row(table,Row,"t3");
哈,其实这问题不是函数问题,你在循环中的变量设错了而已,呵呵,受教了,希望以后这种贴越多越好,从里面可以学到东西

狩猎者 发表于 2006-5-19 14:30:35

对,对,zhenhaiou说的对啊,是我钻到误区了,多谢指正!
那如何提取这个数值呢,我用你说的函数试了下,总是不成功,说找不到gui或者就是找不到class。

zhenhaiou 发表于 2006-5-19 14:57:06

在关闭计算器之前把结果取出来,和line3进行比较就可以
至于用什么函数,你可以去试试,我现在没有wr,不能调试

zhenhaiou 发表于 2006-5-19 14:57:59

原帖由 狩猎者 于 2006-5-19 14:30 发表
对,对,zhenhaiou说的对啊,是我钻到误区了,多谢指正!
那如何提取这个数值呢,我用你说的函数试了下,总是不成功,说找不到gui或者就是找不到class。
gui中是不是已经学了计算器的结果显示框呢?

狩猎者 发表于 2006-5-19 16:39:27

是学了就是不认,郁闷,我从做了个脚本就没问题了!
现在是差不多ok了,但还有个小问题,就是返回的文本中,计算结果后面带小数点,如果计算结果是整数,那么最后判断会说错误。如:5+4=9.可以看下windows 自带计算器就是这样的,而我们在脚本中计算5+4=9。
大家一起想想怎么处理好,我的想法只能是给整数的数据加个字符串,谁有好办法啊!

[ 本帖最后由 狩猎者 于 2006-5-19 16:43 编辑 ]

zhenhaiou 发表于 2006-5-19 16:42:53

if(test - line3 == 0)

狩猎者 发表于 2006-5-19 16:51:41

真厉害,反映就是快啊!向你学习!!以后多指教啊!

下面把完整通过的脚本贴出来!
#加载GUI
    GUI_unload_all()
    GUI_load("d:\\wrtest\\yanzhengjieguo\\gui.gui");
   #数据驱动
table = "default.xls";
rc = ddt_open(table, DDT_MODE_READ);
    if (rc!= E_OK && rc != E_FILE_OPEN)
        pause("Cannot open table.");
ddt_get_row_count(table,table_RowCount);
for(table_Row = 1; table_Row <= table_RowCount; table_Row ++)
{
        ddt_set_row(table,table_Row);
       
        # Shell_TrayWnd
                set_window ("Shell_TrayWnd", 1);
                button_press ("Start");
       
        # BaseBar
                set_window ("BaseBar", 7);
                toolbar_select_item ("ToolbarWindow32_1", "程序(P);附件;计算器");
       
        # 计算器
                win_type ("计算器",ddt_val(table, "t1") );
                set_window ("计算器", 0);
                obj_mouse_click ("Button", 21, 13, LEFT);
                obj_type ("Button",ddt_val(table, "t2") );
                obj_mouse_click ("Button_1", 24, 17, LEFT);
                obj_get_text("LABLE1",test);
                obj_mouse_click ("Button_2", 54, 9, LEFT);
                win_close ("计算器");
        # 判断结果
                line1=ddt_val(table,"t1");
                line2=ddt_val(table,"t2");
      line3=line1*line2;
       if(test-line3 == 0)
       report_msg("line1="line1",line2="line2",test="test",line3="line3",right.");
       else
       report_msg("line1="line1",line2="line2",test="test",line3="line3",wrong.");
       
}
ddt_close(table);

jianggq 发表于 2006-7-3 10:05:27

s

sign

shiwomyw 发表于 2006-8-28 16:57:44

整个下午都在运行这段代码,有一些不清楚,运行不过去
# 计算器
                win_type ("计算器",ddt_val(table, "t1") );
                set_window ("计算器", 0);
                obj_mouse_click ("Button", 21, 13, LEFT);
                obj_type ("Button",ddt_val(table, "t2") );
                obj_mouse_click ("Button_1", 24, 17, LEFT);
                obj_get_text("LABLE1",test);
                obj_mouse_click ("Button_2", 54, 9, LEFT);
                win_close ("计算器");
其中"button"指的是计算器的哪个按钮,对计算器的MAP是不是做处理了?
“button_1” 和“button_2”又分别是哪个按钮?
set_window ("计算器", 0);这句话起什么作用???
急切想知道!!!
页: 1 [2]
查看完整版本: winrunner对变量的检查点设置(已解决)