WinRunner检查点出错!
# Flight Reservationwin_activate ("Flight Reservation");
set_window ("Flight Reservation", 1);
menu_select_item ("File;Open Order...");
# Open Order_1
win_mouse_click ("Open Order_1", 31, 154);
win_mouse_click ("Open Order_1", 41, 154);
set_window ("Open Order_1", 0);
button_set ("Order No.", ON);
edit_set ("Edit", "2");
button_press ("OK");
# Flight Reservation
set_window ("Flight Reservation", 2);
menu_select_item ("File;Fax Order...");
# Fax Order No. 4
set_window ("Fax Order No. 4", 1);
edit_get_text("# Tickets:",tickets);
edit_get_text("Ticket Price:",price);
edit_get_text("Total:",total);
# Check that Total Tickets Price is Calcualted Correctly.
if (tickets * price == total)
tl_step("total",0,"Total is correct.");
else
tl_step("total",1,"Total is incorrect.");
button_press ("Cancel");
不知道为什么order no 等于2时 检查点总是报错,其他数字都可以pass
[ 本帖最后由 hiphop_c 于 2009-7-16 11:44 编辑 ] 就是等于2的时候会报错,加了参数化之后,只要是2就报错,其他数字不会报,请问这是为什么? 自己做了下加工 还是不行啊、、
[ 本帖最后由 hiphop_c 于 2009-7-16 15:57 编辑 ] 我试了,没有找到原因,关注 计算机中的浮点数比较并非按我们平时书面的比较形式,楼主看下是否这个原因
回复 4# 的帖子
你的WinRunner也会报这个错吗?我还以为是我的WinRunner有问题。。。:(回复 5# 的帖子
可能是这种原因,让我思考一下:loveliness: 我利用QTP 如果也只是 Order 2 不能通过Dim Tickets,TicketPrice,Total
Window("Flight Reservation").Activate
Window("Flight Reservation").WinButton("Button_5").Click 'new
Window("Flight Reservation").WinMenu("Menu").Select "File;Open Order..."
Window("Flight Reservation").Dialog("Open Order").WinCheckBox("Order No.").Set "ON"
Window("Flight Reservation").Dialog("Open Order").WinEdit("Edit_2").Set "2"
Window("Flight Reservation").Dialog("Open Order").WinButton("OK").Click
Window("Flight Reservation").WinMenu("Menu").Select "File;Fax Order..."
Window("Flight Reservation").Dialog("Fax Order No. 2").Activate
Tickets=Window("Flight Reservation").Dialog("Fax Order No. 2").WinEdit("# Tickets:").GetROProperty("Text")
TicketPrice=Window("Flight Reservation").Dialog("Fax Order No. 2").WinEdit("Ticket Price:").GetROProperty("Text")
Total=Window("Flight Reservation").Dialog("Fax Order No. 2").WinEdit("Total:").GetROProperty ("Text")
if Tickets*TicketPrice=Total *1 then
reporter.ReportEvent micPass,"JieGuo","is OK"
else
reporter.ReportEvent micFail, "JieGuo","is Error"
end if
Window("Flight Reservation").Dialog("Fax Order No. 2").WinButton("Cancel").Click
回复 8# 的帖子
我大概看了一下, ORDER NO. 号码是自动产生的,只读的啊比如说我这里就是从11开始的
C:\11.png
C:\12.png
对话框的标题和你当前订购单的号码是一致的
不知道我说清楚没有
是动态的
[ 本帖最后由 lijinshui 于 2009-7-23 14:53 编辑 ] 特地截图2张 居然没有显示出来:( 再补一下
那个定单号是按照你操作的顺序产生的,而且是只读的,唯一的 还有哪个对话框的标题名称也是按照你的定单号来命名的,是动态的
只可以用一次,比如说你在录制的时候产生了一个定单号 2
那么,你用QTP来回复的时候2就能用了,因为QTP回复的过程中又一次产生了一个订单号,那将是3 我知道了 Tickets*TicketPrice=1942.8
Total =1942.80 ifCCur(Tickets*TicketPrice )=CCur(Total ) then
reporter.ReportEvent micPass,"JieGuo","is OK"
else
reporter.ReportEvent micFail, "JieGuo","is Error"
end if
这样一来就是大家要的结果了:lol 原帖由 lijinshui 于 2009-7-24 09:59 发表 http://bbs.51testing.com/images/common/back.gif
我知道了 Tickets*TicketPrice=1942.8
Total =1942.80
Tickets*TicketPrice=Total *1
把下面两个表达式放到watch list 中观察:
Tickets*TicketPrice
Total *1
结果是一样的
[ 本帖最后由 liujinkui 于 2009-7-24 12:57 编辑 ] 原帖由 lijinshui 于 2009-7-24 10:08 发表 http://bbs.51testing.com/images/common/back.gif
ifCCur(Tickets*TicketPrice )=CCur(Total ) then
reporter.ReportEvent micPass,"JieGuo","is OK"
else
reporter.ReportEvent micFail, "JieGuo","is Error"
end if
这样一来就是大家要的结 ...
难道真的是精度问题? 仔细想想 不是精度问题,而是考虑不周
对象不是数字了,是文本啦:P DIM X,Y
X= "4"
Y =2
IF X= Y *2 THEN
MSGBOX "OK"
ELSE
MSGBOX "NG"
END IF
你看看结果
回复 8# 的帖子
那么这个“2”一定有一个很大很大的秘密在里面,难道是mercury公司的开发人员不喜欢“2”这个数字:lol不过这个问题好像一个死结,不解开难过死了,我一定要找出来:loveliness:
回复 9# 的帖子
什么只读的,是动态,不太明白也:( lijinshui 用的是QTP的方式
页:
[1]
2