51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

12
返回列表 发新帖
楼主: 狩猎者
打印 上一主题 下一主题

winrunner对变量的检查点设置(已解决)

[复制链接]

该用户从未签到

21#
发表于 2006-5-18 16:47:21 | 只看该作者
把你解决文件的经验放出来给大家共享吧
回复 支持 反对

使用道具 举报

该用户从未签到

22#
 楼主| 发表于 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 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

23#
发表于 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)和操作中得到结果没有任何关系阿,呵呵
回复 支持 反对

使用道具 举报

该用户从未签到

24#
发表于 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");
哈,其实这问题不是函数问题,你在循环中的变量设错了而已,呵呵,受教了,希望以后这种贴越多越好,从里面可以学到东西
回复 支持 反对

使用道具 举报

该用户从未签到

25#
 楼主| 发表于 2006-5-19 14:30:35 | 只看该作者
对,对,zhenhaiou说的对啊,是我钻到误区了,多谢指正!
那如何提取这个数值呢,我用你说的函数试了下,总是不成功,说找不到gui或者就是找不到class。
回复 支持 反对

使用道具 举报

该用户从未签到

26#
发表于 2006-5-19 14:57:06 | 只看该作者
在关闭计算器之前把结果取出来,和line3进行比较就可以
至于用什么函数,你可以去试试,我现在没有wr,不能调试
回复 支持 反对

使用道具 举报

该用户从未签到

27#
发表于 2006-5-19 14:57:59 | 只看该作者
原帖由 狩猎者 于 2006-5-19 14:30 发表
对,对,zhenhaiou说的对啊,是我钻到误区了,多谢指正!
那如何提取这个数值呢,我用你说的函数试了下,总是不成功,说找不到gui或者就是找不到class。

gui中是不是已经学了计算器的结果显示框呢?
回复 支持 反对

使用道具 举报

该用户从未签到

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

[ 本帖最后由 狩猎者 于 2006-5-19 16:43 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

29#
发表于 2006-5-19 16:42:53 | 只看该作者
if(test - line3 == 0)
回复 支持 反对

使用道具 举报

该用户从未签到

30#
 楼主| 发表于 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);
回复 支持 反对

使用道具 举报

该用户从未签到

31#
发表于 2006-7-3 10:05:27 | 只看该作者

s

sign
回复 支持 反对

使用道具 举报

该用户从未签到

32#
发表于 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 下一条

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

GMT+8, 2024-5-16 03:06 , Processed in 0.071185 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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