51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3987|回复: 8
打印 上一主题 下一主题

数据驱动的问题?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-11-3 15:30:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天学WR的课程,用的是自带的那个飞机票预定程序,加了一个数据驱动,表里输入几个值,使每次回放时的order_num的值不一样,(不知道我说清楚了没),然后计算tickets*price是否等于total,输入num为2时,它总是报错,可是明明乘积是等于total的,很奇怪,不知道为什么,试了很多次都这样. 3*647.60=1942.80明明就是正确的啊???
------------------------
那天的确没说清楚哦,真是对不起看得人啊,重新说一下.脚本是这样的:
table = "lesson8.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);
        
        # Flight Reservation
                set_window ("Flight Reservation", 4);
                menu_select_item ("File;Open Order...");
        
        # Open Order
                set_window ("Open Order", 0);
                button_set ("Order No.", ON);
                edit_set ("Edit", ddt_val(table,"order_num"));
                button_press ("OK");
        
        # Flight Reservation
                set_window ("Flight Reservation", 3);
                menu_select_item ("File;Fax Order...");
        
        # Fax Order No. 4
                set_window ("Fax Order No. 4", 3);
                edit_get_text("# Tickets:",tickets);
            edit_get_text("Ticket Price:",price);
            edit_get_text("Total:",total);
        #    check that total tickets price is calculated correctly
                if(tickets*price == total)
                     tl_step("total",0,"total is correct,"tickets"乘"price"等于"total"");
                else tl_step("total",1,"total is incorrect,"tickets"乘"price"不等于"total"");        
            button_press ("Cancel");
        
}
ddt_close(table);

运行到标红的地方时,就从表里提取不同的order_num值(订单号),比如:2、4、6,每个值就打开相应的订单内容,里面包括单张机票价、共订了几张,合计多少钱等信息,然后,脚本的末尾处有个简单的判断,看合计是否等于票价*张数,当打开2号订单时,price=647.60,tickets=3,total=1942.80,可是实际运行结果为“total is incorrect,3乘647.60不等于1942.80”,不知道为什么会报错误,乘积是对的阿?其他几个订单的乘积就没有问题。
不知道这次说清楚,我是自己学的测试,没有给公司或谁上报过bug,更不知道怎样上报才是符合规范的,所以请大家谅解了,我也非常希望哪位大虾可以指点下阿,偶将不胜感激。

[ 本帖最后由 testzhu 于 2006-11-6 10:21 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2006-11-3 17:35:54 | 只看该作者
你工作时就是这样上报BUG的吗? 最基本的你也要把BUG出现的环境, BUG 状态, 以即你的操作描

述清楚吧, 否则别人怎么修改BUG.
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2006-11-6 10:38:22 | 只看该作者
顶上去
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2006-11-6 12:02:25 | 只看该作者

I copy your script and run it , the result is OK, no any error showing up.

I copy your script and run it , the result is OK, no any error showing up.


win_activate("Fax Order No. 56");
                set_window ("Fax Order No. 56", 3);
                edit_get_text("# Tickets:",tickets);
            edit_get_text("Ticket Price:",price);
            edit_get_text("Total:",total);
        #    check that total tickets price is calculated correctly
                if(tickets*price == total)
                     tl_step("total",0,"total is correct,"tickets"乘"price"等于"total"");
                else tl_step("total",1,"total is incorrect,"tickets"乘"price"不等于"total"");        
       #     button_press ("Cancel");

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2006-11-6 14:41:18 | 只看该作者
我输入其他的任何一个order_num都成功,但是order_num为2的时候就不行,能不能帮我试一下2号订单的结果还是correct吗?拜谢~~~~sdlkfj1
回复 支持 反对

使用道具 举报

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

    连续签到: 1 天

    [LV.3]测试连长

    6#
    发表于 2006-11-6 22:40:40 | 只看该作者
    以前,有过类似的帖子。输入2的时候,确实failed。
    关注ing。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2006-11-10 21:25:06 | 只看该作者
    以前也有过类似的帖子讨论,可能是计算机在处理浮点类型变量的时候不精确所致。一般可以设定一个容错范围:比如1.0e-5,2个浮点值的差值小于这个值认为是二者相等。试一下吧
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2006-11-15 15:19:05 | 只看该作者
    确实是由于浮点类型的精度问题所引起的,你可以把tickets*price的值取出来,再把total的值取出来进行比较,就会发现原来只是差小数点后面一个0而已
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2012-8-3 17:07:36 | 只看该作者
    这个问题我也遇到了,没有人能解决吗?
    我将2这个订单数量修改成4,测试通过了,但改成3测试不通过,,真不知道为什么,。
    为什么这里没有一个转换为浮点的函数,只有INT,,
    真不知道如何解决!
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-15 13:53 , Processed in 0.074876 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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