chenghan1980 发表于 2008-4-23 10:37:05

!!!!!!!!!!!!

我在练习测试winrunner自带的Flight 4B程序的脚本逻辑函数时,遇到了一个问题,大家请看下图:
这个是单击菜单栏File-Open Order,在Order No.文本框里输入5,打开窗口,红框里的逻辑本来应该是成功的,但在测试报告里却显示失败。

代码如下:
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,打开窗口,红框里的逻辑是成功的,测试报告里也显示成功,这样的结果是正确的。

代码如下,根上面一样,除了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:29

补充:我的WR版本是8.0

[ 本帖最后由 chenghan1980 于 2008-4-23 11:26 编辑 ]

lantianwei 发表于 2008-4-23 20:00:34

肯定有关系,把那些值打出来 再慢慢调试吧!

chenghan1980 发表于 2008-4-24 08:23:12

怎样才能打出那些值?我不懂~

snoopyzxbc 发表于 2008-4-24 10:03:10

原帖由 lantianwei 于 2008-4-23 20:00 发表 http://bbs.51testing.com/images/common/back.gif
肯定有关系,把那些值打出来 再慢慢调试吧!

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:04

问题已经搞定。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:29

我试试看,谢谢snoopyzxbc!:)

snoopyzxbc 发表于 2008-4-25 11:40:11

谢谢斑主送的鲜花,哈!
页: [1]
查看完整版本: !!!!!!!!!!!!