51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 10657|回复: 31
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-5-16 09:23:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
比如,我录制一个windows  自带的计算器计算加法,然后建立数据驱动,可我怎么知道每次计算的数值是不是正确呢??
录入数值和显示结果都是在一个框中,如何设计才可以检查计算结果是不是正确呢?

[ 本帖最后由 狩猎者 于 2006-5-22 09:22 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2006-5-16 10:28:10 | 只看该作者
可以用pause()这个函数,作为调试来说很好用
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2006-5-16 13:50:25 | 只看该作者
可以说具体点吗?我刚用不久。不太理解怎么用。谢谢了!
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2006-5-16 14:08:55 | 只看该作者
其实我也是新手,大家互相学习,举个简单的例子看解释得对不对
public n=2,m=5,z;
z=n+m;
pause(z);
这样在运行过程中到pause语句就会弹出对话框显示变量z的值
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2006-5-16 15:44:48 | 只看该作者
和我说的意思不一样。
我的意思是:z=n+m,然后我们去检查z 是否计算的正确。
当然如果只是验证一个只要插入一个检查点,我的意思是,建立数据驱动后,面对多次的计算结果,如果验证每次计算的数值是不是正确
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2006-5-16 16:18:32 | 只看该作者
不好意思,理解错了
那把期望值建个表一一验证不就可以了吗
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2006-5-16 17:34:04 | 只看该作者
呵呵,就是这个表怎么建立我不会,不知道怎么弄

你能教教我吗?谢谢了!!!!
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2006-5-16 19:36:13 | 只看该作者
在数据驱动表中增加一列“结果“,与加数和被加数一一对应对应,呵呵
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2006-5-17 08:45:01 | 只看该作者
table="D:\\TABLE操作\\test001.xls";
rc=ddt_open(table);
if (rc==E_OK)
pause("can open table");
else
pause("can't open table");
ddt_get_row_count(table,RowCount);
for(Row=1;Row <= RowCount;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");
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);

借用的etheltim 代码
感觉这应该就是你想达到的效果
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2006-5-17 09:11:33 | 只看该作者
感谢,感谢,我研究下,有问题再请教你啊!有msn吗?留个地址好吗?
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 2006-5-17 10:35:43 | 只看该作者
我在表中加入了结果列,但最后得到的结果都是第一列的数据结果,我看了数据驱动时,数值是按照设定循环的。
例如:执行了4+5=9,5+6=11,但结果信息是2个4+5=9。
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2006-5-17 14:27:36 | 只看该作者
我试了下可以实现的啊,是不是没包进循环,方便的话贴出代码看看
回复 支持 反对

使用道具 举报

该用户从未签到

13#
 楼主| 发表于 2006-5-17 15:59:34 | 只看该作者
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", 4);
                button_press ("Start");
       
        # BaseBar
                set_window ("BaseBar", 11);
                toolbar_select_item ("ToolbarWindow32_1", "程序(P);附件;计算器");
       
        # 计算器
                win_type ("计算器",ddt_val(table, "t1") );
                set_window ("计算器", 0);
                obj_mouse_click ("Button_3", 9, 13, LEFT);
                obj_type ("Button_3",ddt_val(table, "t2") );
                obj_mouse_click ("Button_5", 30, 20, LEFT);
                obj_mouse_click ("Button_1", 34, 14, LEFT);
                win_close ("计算器");
        line1=ddt_val_by_row(table,Row,"t1");
    line2=ddt_val_by_row(table,Row,"t2");
    line3=ddt_val_by_row(table,Row,"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);


帮我看下吧,谢谢了!!
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2006-5-17 16:43:22 | 只看该作者
我现在的系统里面没有计算器,跑不了,你用pause测测变量取值后的情况,应该就能分析出问题
建议,发个短信问下生如火花,他比我强多了
回复 支持 反对

使用道具 举报

该用户从未签到

15#
 楼主| 发表于 2006-5-17 16:50:49 | 只看该作者
恩,好的, 谢谢了!
我先试试用pasue
回复 支持 反对

使用道具 举报

该用户从未签到

16#
 楼主| 发表于 2006-5-17 17:23:23 | 只看该作者
看了看TSL帮助,还是没明白,怎么用pasue测变量取值后的情况?:(
回复 支持 反对

使用道具 举报

该用户从未签到

17#
发表于 2006-5-18 09:59:22 | 只看该作者
原帖由 狩猎者 于 2006-5-17 15:59 发表
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 ...



你这个程序没有判断结果阿

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", 4);
                button_press ("Start");
        
        # BaseBar
                set_window ("BaseBar", 11);
                toolbar_select_item ("ToolbarWindow32_1", "程序(P);附件;计算器");
        
        # 计算器
                win_type ("计算器",ddt_val(table, "t1") );
                set_window ("计算器", 0);
                obj_mouse_click ("Button_3", 9, 13, LEFT);
                obj_type ("Button_3",ddt_val(table, "t2") );
                obj_mouse_click ("Button_5", 30, 20, LEFT);
                obj_mouse_click ("Button_1", 34, 14, LEFT);

               #从计算器的结果显示框中取得结果,保存为test
                 obj_get_text ( object, out_text [, x1, y1, x2, y2 ] )或者edit_get_text ( edit, out_string );

                win_close ("计算器");
        line1=ddt_val_by_row(table,Row,"t1");
    line2=ddt_val_by_row(table,Row,"t2");



    line3=ddt_val_by_row(table,Row,"t3");

#判断结果
if(line3 == test)

report_msg("line1="&line1",line2="&line2",line3="&line3",right.");
else
report_msg("line1="&line1",line2="&line2",line3="&line3",wrong.");


}
ddt_close(table);
回复 支持 反对

使用道具 举报

该用户从未签到

18#
发表于 2006-5-18 10:12:25 | 只看该作者
说实在的,XLS表的处理我现在也忘的差不多了。楼主的想法应该是验证结果是不是正确。如果是确定的数据计算(非随机的)应该是可以做到从一个表中取得期望的结果和实际结果对比。
回复 支持 反对

使用道具 举报

该用户从未签到

19#
 楼主| 发表于 2006-5-18 10:56:07 | 只看该作者
对,对!就是生如火花版主的意思!谢谢大家的帮助!!
我脚本现在的问题就是,它只验证,xls表中第一行的数据,剩下的无法验证。
比如我有3行数据,最后出来的结果是3行都通过了,但都是第一行的数据。

[ 本帖最后由 狩猎者 于 2006-5-18 11:38 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

20#
 楼主| 发表于 2006-5-18 15:56:00 | 只看该作者
哈哈,问题总算解决了!感谢大家的帮助!
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-5-12 17:57 , Processed in 0.080024 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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