hiphop_c 发表于 2009-7-16 11:42:47

WinRunner检查点出错!

# Flight Reservation
      win_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 编辑 ]

hiphop_c 发表于 2009-7-16 11:46:36

就是等于2的时候会报错,加了参数化之后,只要是2就报错,其他数字不会报,请问这是为什么?

hiphop_c 发表于 2009-7-16 15:53:03

自己做了下加工 还是不行啊、、

[ 本帖最后由 hiphop_c 于 2009-7-16 15:57 编辑 ]

liujinkui 发表于 2009-7-17 10:13:45

我试了,没有找到原因,关注

dabie 发表于 2009-7-17 10:30:25

计算机中的浮点数比较并非按我们平时书面的比较形式,楼主看下是否这个原因

hiphop_c 发表于 2009-7-17 12:28:01

回复 4# 的帖子

你的WinRunner也会报这个错吗?我还以为是我的WinRunner有问题。。。:(

hiphop_c 发表于 2009-7-17 12:32:00

回复 5# 的帖子

可能是这种原因,让我思考一下:loveliness:

liujinkui 发表于 2009-7-21 20:19:29

我利用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

lijinshui 发表于 2009-7-23 14:43:42

回复 8# 的帖子

我大概看了一下, ORDER NO. 号码是自动产生的,只读的啊
比如说我这里就是从11开始的
C:\11.png


C:\12.png
对话框的标题和你当前订购单的号码是一致的
不知道我说清楚没有
是动态的

[ 本帖最后由 lijinshui 于 2009-7-23 14:53 编辑 ]

lijinshui 发表于 2009-7-23 14:51:47

特地截图2张 居然没有显示出来:(

lijinshui 发表于 2009-7-23 15:00:53

再补一下
那个定单号是按照你操作的顺序产生的,而且是只读的,唯一的 还有哪个对话框的标题名称也是按照你的定单号来命名的,是动态的
只可以用一次,比如说你在录制的时候产生了一个定单号 2
那么,你用QTP来回复的时候2就能用了,因为QTP回复的过程中又一次产生了一个订单号,那将是3

lijinshui 发表于 2009-7-24 09:59:01

我知道了 Tickets*TicketPrice=1942.8
Total =1942.80

lijinshui 发表于 2009-7-24 10:08:42

ifCCur(Tickets*TicketPrice )=CCur(Total ) then
      reporter.ReportEvent micPass,"JieGuo","is OK"
else
      reporter.ReportEvent micFail, "JieGuo","is Error"
end if
这样一来就是大家要的结果了:lol

liujinkui 发表于 2009-7-24 10:59:50

原帖由 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 编辑 ]

liujinkui 发表于 2009-7-24 11:01:18

原帖由 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
这样一来就是大家要的结 ...

难道真的是精度问题?

lijinshui 发表于 2009-7-24 11:21:20

仔细想想 不是精度问题,而是考虑不周
对象不是数字了,是文本啦:P

lijinshui 发表于 2009-7-24 11:25:51

DIM X,Y
X= "4"
Y =2

IF X= Y *2 THEN
    MSGBOX "OK"
ELSE
    MSGBOX "NG"
END IF
你看看结果

hiphop_c 发表于 2009-7-27 13:32:41

回复 8# 的帖子

那么这个“2”一定有一个很大很大的秘密在里面,难道是mercury公司的开发人员不喜欢“2”这个数字:lol
不过这个问题好像一个死结,不解开难过死了,我一定要找出来:loveliness:

hiphop_c 发表于 2009-7-27 13:35:03

回复 9# 的帖子

什么只读的,是动态,不太明白也:(

liujinkui 发表于 2009-7-27 13:44:20

lijinshui   用的是QTP的方式
页: [1] 2
查看完整版本: WinRunner检查点出错!