WinRunner检查点出错!

上一篇 / 下一篇  2009-07-29 13:57:42 / 个人分类:WinRunner

查看( 640 ) / 评论( 37 )
# 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 编辑]

WinRunner错误截图.jpg

TAG: WinRunner

开不了口就安静 hiphop_c 发布于2009-07-16 11:46:36
就是等于2的时候会报错,加了参数化之后,只要是2就报错,其他数字不会报,请问这是为什么?
开不了口就安静 hiphop_c 发布于2009-07-16 15:53:03
自己做了下加工 还是不行啊、、

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

image002.jpg

春暖花开 liujinkui 发布于2009-07-17 10:13:45
我试了,没有找到原因,关注
dabie发布于2009-07-17 10:30:25
计算机中的浮点数比较并非按我们平时书面的比较形式,楼主看下是否这个原因
开不了口就安静 hiphop_c 发布于2009-07-17 12:28:01
回复 4# 的帖子
你的WinRunner也会报这个错吗?我还以为是我的WinRunner有问题。。。
开不了口就安静 hiphop_c 发布于2009-07-17 12:32:00
回复 5# 的帖子
可能是这种原因,让我思考一下
春暖花开 liujinkui 发布于2009-07-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的个人空间 lijinshui 发布于2009-07-23 14:43:42
回复 8# 的帖子
我大概看了一下, ORDER NO. 号码是自动产生的,只读的啊
比如说我这里就是从11开始的




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

[ 本帖最后由 lijinshui 于 2009-7-23 14:53 编辑 ]
lijinshui的个人空间 lijinshui 发布于2009-07-23 14:51:47
特地截图2张 居然没有显示出来
lijinshui的个人空间 lijinshui 发布于2009-07-23 15:00:53
再补一下
那个定单号是按照你操作的顺序产生的,而且是只读的,唯一的 还有哪个对话框的标题名称也是按照你的定单号来命名的,是动态的
只可以用一次,比如说你在录制的时候产生了一个定单号 2
那么,你用QTP来回复的时候2就能用了,因为QTP回复的过程中一次产生了一个订单号,那将是3
lijinshui的个人空间 lijinshui 发布于2009-07-24 09:59:01
我知道了 Tickets*TicketPrice=1942.8
Total =1942.80
lijinshui的个人空间 lijinshui 发布于2009-07-24 10:08:42
if  CCur(Tickets*TicketPrice )=CCur(Total ) then
        reporter.ReportEvent micPass,"JieGuo","is OK"
else
        reporter.ReportEvent micFail, "JieGuo","is Error"
end if
这样一来就是大家要的结果了
春暖花开 liujinkui 发布于2009-07-24 10:59:50

QUOTE:

原帖由 lijinshui 于 2009-7-24 09:59 发表
我知道了 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-07-24 11:01:18

QUOTE:

原帖由 lijinshui 于 2009-7-24 10:08 发表
if  CCur(Tickets*TicketPrice )=CCur(Total ) then
        reporter.ReportEvent micPass,"JieGuo","is OK"
else
        reporter.ReportEvent micFail, "JieGuo","is Error"
end if
这样一来就是大家要的结 ...
难道真的是精度问题?
lijinshui的个人空间 lijinshui 发布于2009-07-24 11:21:20
仔细想想 不是精度问题,而是考虑不周
对象不是数字了,是文本啦
lijinshui的个人空间 lijinshui 发布于2009-07-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-07-27 13:32:41
回复 8# 的帖子
那么这个“2”一定有一个很大很大的秘密在里面,难道是mercury公司的开发人员不喜欢“2”这个数字
不过这个问题好像一个死结,不解开难过死了,我一定要找出来
开不了口就安静 hiphop_c 发布于2009-07-27 13:35:03
回复 9# 的帖子
什么只读的,是动态,不太明白也
春暖花开 liujinkui 发布于2009-07-27 13:44:20
lijinshui   用的是QTP的方式
开不了口就安静 hiphop_c 发布于2009-07-27 14:17:49
不知道为什么就是不行,其他可以呀,都是两位小数的运算
image001.png

image001.png

image003.png

image003.png

image005.png

image005.png

我来说两句

(可选)

我的栏目

日历

« 2024-05-05  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 1488
  • 日志数: 1
  • 建立时间: 2009-04-19
  • 更新时间: 2009-07-29

RSS订阅

Open Toolbar