51Testing软件测试论坛

标题: !!!!!!!!!!!! [打印本页]

作者: chenghan1980    时间: 2008-4-23 10:37
标题: !!!!!!!!!!!!
我在练习测试winrunner自带的Flight 4B程序的脚本逻辑函数时,遇到了一个问题,大家请看下图:
这个是单击菜单栏File-Open Order,在Order No.文本框里输入5,打开窗口,红框里的逻辑本来应该是成功的,但在测试报告里却显示失败。
[attach]41390[/attach]
代码如下:
edit_get_text("# Tickets:",tickets);
edit_get_text("Price:",price);
edit_get_text("Total:",total);
if(tickets*price==total)
tl_step("total",0,"total is correct");
else
tl_step("total",1,"total is incorrect");

下面接着单击菜单栏File-Fax Order,打开窗口,红框里的逻辑是成功的,测试报告里也显示成功,这样的结果是正确的。
[attach]41389[/attach]
代码如下,根上面一样,除了Tickets前面多了一个符号#,这是用Winruner里的Insert—Function捕捉的函数,上面的代码也是通过这个方法获得的:
edit_get_text("# Tickets:",tickets);
edit_get_text("Price:",price);
edit_get_text("Total:",total);
if(tickets*price==total)
tl_step("total",0,"total is correct");
else
tl_step("total",1,"total is incorrect");

大家帮我看看,第一张图片的问题在哪里?我仔细查了下,发现第一张图的price和total文本框里含有美元符号$,会不会和这个有关系?

[ 本帖最后由 chenghan1980 于 2008-4-23 15:29 编辑 ]
作者: chenghan1980    时间: 2008-4-23 10:50
补充:我的WR版本是8.0

[ 本帖最后由 chenghan1980 于 2008-4-23 11:26 编辑 ]
作者: lantianwei    时间: 2008-4-23 20:00
肯定有关系,把那些值打出来 再慢慢调试吧!
作者: chenghan1980    时间: 2008-4-24 08:23
怎样才能打出那些值?我不懂~
作者: snoopyzxbc    时间: 2008-4-24 10:03
原帖由 lantianwei 于 2008-4-23 20:00 发表
肯定有关系,把那些值打出来 再慢慢调试吧!


edit_get_text("Tickets:",out_tickets);
printf("the tickets is %d",out_tickets);#这是调试信息,方便我确认输出
#这里打印出来的值是整型
edit_get_text("Price:",out_prices);
printf("the price is "& out_prices);#这里因为获取到的值是个货币型的数据,所以不能用%d
#这里打印出来的值都是货币型
edit_get_text("Total:",out_total);
printf("the total is " & out_total);
#这里打印出来的值也是货币型

请问lantianwei,LZ使用if(out_tickets * out_prices == out_total),这条语句去判断,肯定是不可以的,因为其中三个值的类型都不一样所以无法比较,这 里想请教lantianwei,我如何将他们的类型都转换成整型呢?
作者: snoopyzxbc    时间: 2008-4-24 10:17
标题: 问题已经搞定。LZ可以参考
function convert_int(in a,out b)
{
        b=substr(a,2,10);
        return b;
}

set_window("Flight Reservation");
edit_get_text("Tickets:",out_tickets);
printf("the tickets is %d",out_tickets);#这是调试信息,方便我确认输出
edit_get_text("Price:",out_prices);
convert_int(out_prices,price);
printf("the price is "& price);#这里因为获取到的值是个货币型的数据,所以不能用%d
edit_get_text("Total:",out_total);
convert_int(out_total,total);
printf("the total is " & total);
if(out_tickets * price == total)
        tl_step("total",0,"total is correct");
else
        tl_step("total",1,"total is incorrect");

欢迎大家提出自己不同的好方法来解决,大家共同进步
作者: chenghan1980    时间: 2008-4-24 15:24
我试试看,谢谢snoopyzxbc!
作者: snoopyzxbc    时间: 2008-4-25 11:40
谢谢斑主送的鲜花,哈!




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