51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

楼主: dyjyhx
打印 上一主题 下一主题

登陆界面的测试程序

[复制链接]

该用户从未签到

21#
发表于 2004-12-29 11:55:27 | 只看该作者
哈哈哈,
如果PASSWORD错误三次,那个程序会自己的退出的.
所以你先用DEBUG调试吧.
应该是那个名字,你再改一改,或者重新录制一下!
总之做多了也就熟了!
回复 支持 反对

使用道具 举报

该用户从未签到

22#
 楼主| 发表于 2004-12-29 14:25:19 | 只看该作者
To QA_BAY
不是这个原因,当第二个数据驱动时,Password不能完全输入,只输入了2个字符
回复 支持 反对

使用道具 举报

该用户从未签到

23#
发表于 2004-12-29 15:36:12 | 只看该作者
obj_type ("Agent Name:","<kCtrl_L>");
<kCtrl_L>"是键盘上的哪个键?
回复 支持 反对

使用道具 举报

该用户从未签到

24#
 楼主| 发表于 2004-12-29 15:53:31 | 只看该作者
是不是我没有用通配符的原因?多个数据驱动必须用通配符吗?如果要用,这个例子在什么地方用通配符?
回复 支持 反对

使用道具 举报

该用户从未签到

25#
 楼主| 发表于 2004-12-29 15:57:19 | 只看该作者
我也没找到kCtrl_L是哪个键,这一句用处不大,可以不要
回复 支持 反对

使用道具 举报

该用户从未签到

26#
发表于 2004-12-29 16:00:48 | 只看该作者
Originally posted by dyjyhx at 2004-12-29 03:53 PM:
是不是我没有用通配符的原因?多个数据驱动必须用通配符吗?如果要用,这个例子在什么地方用通配符?

应该不用阿!是不是说PASSWORD是非法呢?
我没有这个问题阿!
一开始我没有改名字就有你说的那个问题,现在修改过来之后就没有了!
我回去再试试!
回复 支持 反对

使用道具 举报

该用户从未签到

27#
发表于 2004-12-29 16:02:31 | 只看该作者
Originally posted by lousia at 2004-12-29 03:36 PM:
obj_type ("Agent Name:","<kCtrl_L>");
<kCtrl_L>"是键盘上的哪个键?

哦,<kCtrl_L>这个是CTRL+空格
你可以在输入方框试一下!
回复 支持 反对

使用道具 举报

该用户从未签到

28#
 楼主| 发表于 2004-12-29 16:02:52 | 只看该作者
斑竹帮忙,多谢了
回复 支持 反对

使用道具 举报

该用户从未签到

29#
发表于 2004-12-30 23:01:58 | 只看该作者
回到宿舍调试了一下,
发现到第三个数据时,password_edit_set()就出现illegal number!很奇怪
想不通!

调出程序出来调试一下,很复杂,看不明白,
你自己看一下吧!

table = "e1.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);
       
        # Login
                set_window ("Login", 3);
                obj_type ("Agent Name:","<kCtrl_L>");
                edit_set ("Agent Name:", ddt_val(table,"Name_1"));
                edit_set ("Agent Name:", ddt_val(table,"Name_1"));
                password_edit_set("Password_1:", ddt_val(table,"pwd"));
                button_press ("OK");
        # 字符输入错误,弹出错误窗口

            if  (win_exists("Flight Reservations")==E_OK)
                   {
                          win_mouse_click ("Flight Reservations", 120, 13);
                          set_window ("Flight Reservations", 3);
                          button_press ("确定");
                                                               }
                #如果用户名和密码都为用空
                                                                                   
            if(ddt_val(table,"Name_1")== ""||ddt_val(table,"pwd") == "")
                        {
                              tl_step("用户名和密码",0,"用户名和密码都为空!");
                                                  }
                                                 
                                                                                          else
                                                    {
                                                                                                   #sprintf("%." & Agent Name: & "f","Name_1");
                                                                                                   tl_step("用户名和密码",1,"用户名和密码都可能为空!");
                                                            #pause(ddt_val(table,"Name_1"));#如果不为空就输出
                                                           # pause(ddt_val(table,"pwd"));
                                                                                                                }
}
ddt_close(table);
public function password_edit_set(edit, text)
{
        auto text_buf, i, timeout,old_report_name;
        auto status;

        web_get_timeout(timeout);
       
       
        if (nargs() != 2)
                return(report_param_msg());

    get_report_info(old_report_name);
        save_report_info("edit_set");

        if (Y2K && getvar("sysmode") != "replay")
                Y2K_edit_translate(edit, text, text_buf);
        else
                text_buf = text;

        if (window_is_a_browser_or_frame())
        {
                ns_dont_pop_wizard = TRUE;
                for (i=0;i<timeout;i++)
                {
                         status = activate_function(TOBJ, edit, "web_password_edit_set", text_buf);

                        if (status == E_AREA_OUT)
                                set_window(GUI_get_window(),1);
                        else
                                break;               
                }
                ns_dont_pop_wizard = FALSE;
                 status = activate_function(TOBJ, edit, "web_password_edit_set", text_buf);
        }
        else
                status = activate_function(TOBJ, edit, "_password_edit_set", text_buf);

        save_report_info(old_report_name);
        return(status);
}
public function edit_set(in edit, in str, in date_source, in date_target)
{
        auto desc, file;

        if(getvar("sysmode") == "replay") {
                GUI_map_get_desc (GUI_get_window(), edit, desc, file);
                return (_edit_set(desc, str));
        }
        else {
                if(nargs() == 4)
                        return(Y2K_edit_set(edit, str, date_source, date_target));
                else if(nargs() == 3)
                        return(Y2K_edit_set(edit, str, date_source));
                else
                        return(Y2K_edit_set(edit, str));
        }
}

public function Y2K_edit_set(in edit, in new_text, in date_source, in date_target)
{
        auto trans_text;

        if(nargs() == 4)
                Y2K_edit_translate(edit, new_text, trans_text, date_source, date_target);
        else if(nargs() == 3)
                Y2K_edit_translate(edit, new_text, trans_text, date_source);
        else
                Y2K_edit_translate(edit, new_text, trans_text);

        return (activate_function(TEDIT, edit, "_edit_set", trans_text));
}

public function Y2K_edit_translate(in edit, in new_text, out trans_text, in date_source, in date_target)
{
        auto source, target, file, rcs, rct, win_name, class, desc;
        auto age_type, age_d, age_m, age_y, rca, rcd, rcm, rcy;

        rca = rcd = rcm = rcy = 1;
        age_type = DEFAULT_AGING;
        age_d = age_m = age_y = 0;
        win_name = GUI_get_window();

        source = "";
        if (nargs() == 5) {
                source = date_source;
                target = date_target;
                rcs = rct = 0;
        }
        else {
                if(nargs() == 4) {
                        source = date_source;
                        rcs = 0;
                }

                if (get_Y2K_type_mode() == DISABLE_OVERRIDE ||
                        (TE && Y2K_get_capture_mode() != FIELD_METHOD)) {
                        rcs = rct = 1;
                        if(nargs() == 4) rcs = 0;
                }
                else {
                        win_get_info(win_name,"class",class);
                        if (class == "mic_if_win")
                                rcs=rct=1;
                        else {
                                GUI_map_get_desc (win_name, edit, desc, file);
                                if(source == "")
                                        rcs=GUI_buf_get_data_attr(file,win_name,edit,"date_source",source);
                                rct=GUI_buf_get_data_attr(file,win_name,edit,"date_target",target);
                                rca = GUI_buf_get_data_attr(file,win_name,edit,"age_type",age_type);
                                if (!rca) {
                                        rcd = GUI_buf_get_data_attr(file, win_name, edit, "age_days", age_d);
                                        rcm = GUI_buf_get_data_attr(file, win_name, edit, "age_months", age_m);
                                        rcy = GUI_buf_get_data_attr(file, win_name, edit, "age_years", age_y);
                                }
                                if (rca || rcd || rcm || rcy)
                                        age_type = DEFAULT_AGING;
                        }
                }
        }

        type_translate(source, target, new_text, trans_text, rcs, rct, age_type, age_d, age_m, age_y, FALSE);
}
#
#       Popup an error message about illegal number of parameters.
#
public function report_param_msg(in func_name)
{
  auto doagain;

  process_return_value(E_ILLEGAL_NUM_OF_PARAMS, func_name, TWINDOW, 0, doagain);
  return(E_ILLEGAL_NUM_OF_PARAMS);
}



#--------------------------------------------------------------------------------------------------#
public function window_is_a_browser_or_frame(win, timeout)
{
        auto hWnd, rc;
        if (nargs() == 0 )
                rc = current_window_is_a_browser_or_frame(0);
        else  if (nargs() < 3 ) {
            ns_dont_pop_wizard = TRUE;
                rc = win_get_info(win,"handle",hWnd);
                ns_dont_pop_wizard = FALSE;
                if (rc != E_OK) {
                        return FALSE;
                }
                rc = current_window_is_a_browser_or_frame(hWnd);
        }
        else
        {
                report_param_msg();
                return FALSE;
        }
        return rc;
}

[ Last edited by QA_BAY on 2005-1-1 at 20:37 ]
回复 支持 反对

使用道具 举报

该用户从未签到

30#
发表于 2004-12-30 23:03:38 | 只看该作者
以上需要的程序我都调出来了,
你要用DEBUG程序来调试一下才行!
如果看不明白的就到HELP查找吧!
回复 支持 反对

使用道具 举报

该用户从未签到

31#
发表于 2004-12-31 08:46:55 | 只看该作者
password_encrypt试一下
回复 支持 反对

使用道具 举报

该用户从未签到

32#
发表于 2004-12-31 09:12:23 | 只看该作者
另<kCtrl_L>应该是左边的Ctrl键的意思
回复 支持 反对

使用道具 举报

该用户从未签到

33#
 楼主| 发表于 2005-1-4 15:43:31 | 只看该作者
在WinRunner的例子里找到了了示例脚本。按它的方法就没有这种问题。原因还是不太明白。

另外,它用到了自定义函数,并且把自定义函数放到了类似链接库(*Lib)的文件里。不知道怎么创建这种文件。请高手指点
回复 支持 反对

使用道具 举报

该用户从未签到

34#
发表于 2005-1-4 16:18:42 | 只看该作者
Originally posted by dyjyhx at 2005-1-4 03:43 PM:
在WinRunner的例子里找到了了示例脚本。按它的方法就没有这种问题。原因还是不太明白。

另外,它用到了自定义函数,并且把自定义函数放到了类似链接库(*Lib)的文件里。不知道怎么创建这种文件。请高手指点

你打开WR之后,点FILE---TEST PROPERTIES
把TEST TYPE的MAIN改为 COMPLIED MODULE就行了
然后你自己写的自定义程序就可以保存在LIB下面了!
回复 支持 反对

使用道具 举报

该用户从未签到

35#
 楼主| 发表于 2005-1-5 08:34:04 | 只看该作者
谢谢QA_BOY
回复 支持 反对

使用道具 举报

该用户从未签到

36#
发表于 2005-10-26 19:50:48 | 只看该作者
我的老天啊,怎么这么麻烦,我看后边的都看不懂,能不能请教一下和这个相关的问题 呢?
回复 支持 反对

使用道具 举报

该用户从未签到

37#
发表于 2005-11-4 17:47:47 | 只看该作者
你把 password_edit_set 改成edit_set.试试看。这个问题,我也碰到过的。 password_edit_set会自动加密的
回复 支持 反对

使用道具 举报

该用户从未签到

38#
发表于 2006-3-20 17:09:13 | 只看该作者
原帖由 QA_BAY 于 2004-12-28 15:39 发表
问题已经解决!
本人已经在机子上试过了,可以做到!
现在我是这样做的.
先录制,然后做数据驱动!
数据就是这以下几个
name      password1
asd           asdfasdf
空格          空格
sdfwerw    sdfsdf
...

我在debug的时候很正常的,但是在run的时候老是跳过对“ Flight Reservations”的判断语句,不能关闭Flight Reservations,这是为什么啊?
回复 支持 反对

使用道具 举报

该用户从未签到

39#
发表于 2006-3-29 15:50:41 | 只看该作者
win_activate ("&Ouml;&ETH;&ETH;&Ccedil;&Ecirc;&Agrave;&Iacute;¨&Icirc;&THORN;&Iuml;&szlig;&micro;&ccedil;&frac14;à&sup2;&acirc;&Iuml;&micro;&Iacute;&sup3; Ver 4.0 (&micro;&yen;&Otilde;&frac34;°&aelig;)");
# AfxFrameOrView42
table = "login.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);
                set_window ("AfxFrameOrView42", 0);
                edit_set("&Oacute;&Atilde;&raquo;§&Atilde;&ucirc;",ddt_val(table,"username"));
                edit_set("&Oacute;&Atilde;&raquo;§&Atilde;&Uuml;&Acirc;&euml;",ddt_val(table,"userpass"));
                edit_set_selection ("·&thorn;&Icirc;&ntilde;&AElig;÷±à&ordm;&Aring;_1", 0, 0, 0, 12);
                edit_set ("·&thorn;&Icirc;&ntilde;&AElig;÷±à&ordm;&Aring;_1", ddt_val(table,"server_id"));
                button_press ("&micro;&Ccedil;&Acirc;&frac12;");

        wait(3);
        if (win_exists("AfxFrameOrView42")==E_OK)
       
        {
        report_msg("&Oacute;&Atilde;&raquo;§&Atilde;&ucirc;"&ddt_val(table,"username")&"&raquo;ò&Atilde;&Uuml;&Acirc;&euml;&acute;í&Icirc;ó");
        wait(25);
        }
       
        else
        {
        report_msg("coming system username"&ddt_val(table,"username"));
       
        }
       
       
       
}
ddt_close(table);
这是调试通过了的
回复 支持 反对

使用道具 举报

该用户从未签到

40#
发表于 2006-5-2 11:40:42 | 只看该作者
data table:
            df;
safff   fdfs ;
daffd         ;
safas   mercury


table = "login2.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);
       
        # Login
                set_window ("Login", 2);
                edit_set ("Agent Name:", ddt_val(table,"Login_Name"));
                edit_get_row_length("Agent Name:",4,len);
                if(len < 4)
                  {
                   tl_step("login",1,"name is incorrect");
                   continue;
                  }
                else
                  tl_step("login",0,"name is correct");
                 

                password_edit_set("Password:", ddt_val(table,"Password"));
                edit_get_row_length("Password:",4,len);
                if(len < 4)
                  {
                   tl_step("password",1,"password length incorrect");
                   continue;
                   }
        else
                  {
                   edit_get_text("Password:",text);
                   if(text!="mercury")
                   {
                     tl_step("password",1,"password is incorrect");
                         continue;
                        }
                        else
                     tl_step("password",0,"password is correct");
                   }
                button_press ("OK");
       
        # Flight Reservation
                win_close ("Flight Reservation");
       
        # Shell_TrayWnd
                set_window ("Shell_TrayWnd", 0);
                button_press ("开始");
       
        # BaseBar
                set_window ("BaseBar", 3);
                toolbar_select_item ("ToolbarWindow32_1", "程序(P);WinRunner;Sample Applications;Flight 4A");
       
}
ddt_close(table);
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-5-11 16:34 , Processed in 0.085157 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表