51Testing软件测试论坛

标题: 关于winrunner中数据池的问题请教 [打印本页]

作者: jasmine2000    时间: 2006-11-9 16:38
标题: 关于winrunner中数据池的问题请教
对于像button_set ( button, state );例如:button_set ("Ketchup", ON);
如果我要用数据池中的数据来取代state,即ON
我是这样写的,我用state栏位来存放:ON或者OFF
table="default.xls";
state = ddt_val(table,state);#其他函数一般都会在state上加上引号,但因为在button_set ("Ketchup", ON);中ON上没有“”,所以这里我也没有加
button_set("state",state);#读取数据池中的state栏位
但是好像这样做,那个栏位不会自动打勾,没有起到效果,加上以后也没有用
请教高手,我该怎样做????谢谢:)

[ 本帖最后由 jasmine2000 于 2006-11-9 16:40 编辑 ]
作者: gp_jl    时间: 2006-11-9 21:43
首先,这个双引号不需要加;
其次,对于 button_set("state",state); 没有打勾的问题,需要问下:是否存在逻辑名或描述为 “state” 的 button ?按照上面的 button_set ("Ketchup", ON),  此处应该修改为:button_set ("Ketchup", state)。
作者: jasmine2000    时间: 2006-11-10 09:56
原帖由 gp_jl 于 2006-11-9 21:43 发表
首先,这个双引号不需要加;
其次,对于 button_set("state",state); 没有打勾的问题,需要问下:是否存在逻辑名或描述为 “state” 的 button ?按照上面的 button_set ("Ketchup", ON), ...


谢谢,不好意思哈,你说的是正确的,应该为 button_set ("Ketchup", ON),我写错了:)可是我没有加引号,为什么他还是不能正确引用数据池里的内容呢,好像默认的都是OFF,即使数据池中是ON
作者: shyfish    时间: 2006-11-10 21:16
ON算是常量,不是变量值,LEFT,RIGHT之类的类似
你用state是把它作变量值了,从Data Table里取出来是把它当作变量值而不是常量
作者: gp_jl    时间: 2006-11-10 23:01
标题: 回复 #3 jasmine2000 的帖子
以下脚本可运行(WR自带的Flight 4A,WR V7.6,WinXP SP2):
        table = "text.xls";
        rc = ddt_open(table, DDT_MODE_READ);
        if (rc!= E_OK && rc != E_FILE_OPEN)
                pause("Cannot open table.");
        ddt_get_row_count(table,table_RowCount);
        
        for(table_Row = 1; table_Row <= table_RowCount; table_Row ++)
        {
                ddt_set_row(table,table_Row);
               
                # Flight Reservation
                        set_window ("Flight Reservation", 4);
                        menu_select_item ("File;Open Order...");
               
                # Open Order
                        set_window ("Open Order", 1);
                        state=ddt_val(table, "State");
                        pause(state);
                        if(state =="ON")
                        {                                         
                                button_set ("Order No.",state);
                                edit_set ("Edit", 3);
                                button_press ("OK");
                                
                                
                        # Flight Reservation
                                set_window ("Flight Reservation", 2);
                                menu_select_item ("File;Fax Order...");
                        
                        # Fax Order No. 3
                                set_window ("Fax Order No. 3", 1);
                                edit_get_text("# Tickets:",tickets);
                                edit_get_text("Ticket Price:",price);
                                edit_get_text("Total:",total);
                        
                        #        check that the total ticket price is calculated correctly.
                                if(tickets*price == total)
                                        tl_step("total", 0, "Correct. "tickets" Tickets at $"price" cost $"total".");
                                else
                                        tl_step("total", 0, "Error. "tickets" Tickets at $"price" does not equal $"total".");
                                       
                                button_press ("Cancel");
                        }
                        else{
                                  win_close("Open Order");
                        }
        }
        ddt_close(table);
text.xls数据如下:
  State
  OFF
  ON
仅供参考!

[ 本帖最后由 gp_jl 于 2006-11-10 23:02 编辑 ]
作者: jasmine2000    时间: 2006-11-13 13:53
谢谢大家,问题解决了:)




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