51Testing软件测试论坛

标题: 请教一个初级问题 [打印本页]

作者: xandon01    时间: 2006-10-30 11:21
标题: 请教一个初级问题
本人接触测试有1个多星期了,现在学习winruuner, 现在做一个登陆的测试,
当输入了错误的用户名和密码,系统弹出错误提示对话框;输入正确时,系统成功显示主界面,
我是这样录制的,
(1)打开登录框口
(2)点击wr的record
(3)在登录框口输入错误的用户名和密码,点击“确定“,弹出错误提示
(4)插入了GUI check point
(5)点击wr的stop

在进行vrity时,输入正确的用户名和密码时,由于没有弹出错误提示对话框,WR在处理时须等待一段时间
总觉得这样不妥

不知道在wR里,可以不可以这样判断
(在判断是否存在错误提示框时,是否还有存在等待一段时间的情况)
   if(存在错误提示框)
    {
           打印 PASS
    }
     else
         {
             打印 FAIL
         }




还有现在哪儿有免费的《junit in action》电子书?
作者: xandon01    时间: 2006-10-30 11:47
我现在想到另外个方法,不知道可不可以?
作者: xandon01    时间: 2006-10-30 11:50
做两个测试用例,
其中一个是登陆失败的
另外一个是登陆成功的
作者: 重新开赌    时间: 2006-10-30 12:50
可以使用win_exists()函数,至于用法看一下帮助手册吧
作者: xandon01    时间: 2006-10-30 14:07
谢谢  开赌
作者: picture    时间: 2006-10-30 14:30
标题: 同样新手
我也是一个测试新手,前断时间自己做了一个用户登录脚本,运行了没问题,


static app_name="d:\\3KGame\\ALobby.exe";
    if (invoke_application(app_name,"","",SW_SHOW)!=0)   
      {
     report_msg("被测试的应用程序不存在.退出测试脚本");
     texit;}
     else
             {wait(2);
       report_msg("游戏客户端运行成功");
  
# 3KGame
set_window ("3KGame", 2);
list_select_item ("SysListView32", "ALobby.exe", RIGHT);
menu_select_item ("打开(O)");
   


table_用户名 = "e:\\winrunner8.2\\3K游戏测试脚本\\游戏登录\\用户名登录表.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", 6);
   edit_set ("Edit_1", "");
   obj_type ("Edit_1","<kCtrl_L>");
   edit_set ("Edit_1",ddt_val(table_用户名,"Edit_1") );
   edit_set("Edit_2", ddt_val(table_用户名,"Edit_2"));
   button_press("virtual_push_button_登录");
   
#win_exists("3K游戏公社",0);
if (win_exists("3K游戏公社",1)==E_OK)
{  
# 3K游戏公社
       set_window ("3K游戏公社", 2);   
    static_get_text("登陆失败的对话框中的显示信息(static)",text);
    report_msg(text);
       # 3K游戏公社
       set_window ("3K游戏公社", 2);
       button_press ("确定");
    }
else   
{ report_msg("登录成功");
     wait(1);  
    # 游戏大厅
    set_window("游戏大厅", 10);
    button_press("virtual_push_button_注销");
}
}
ddt_close(table_用户名);
}

主要思路:  在输入帐号密码后,用win_exists()去判断是否有登陆失败的对话框,如果有,可以利用应用程序已经判断后的错误结果使用static_get+text()函数输出到脚本的测试结果信息中,如果没有登陆失败的对话框出现在截面上,那么说明程序登陆成功,当然我这里还用了一个数据驱动,最后不要忘了在判断完了要做一下小的细节处理,比如这里的 登陆失败对话框的确定处理和正常登陆后的退出处理..

[ 本帖最后由 picture 于 2006-11-15 16:58 编辑 ]
作者: xandon01    时间: 2006-10-30 17:44
后来我加载了数据驱动,
                edit_set ("Texts(0)", name);
        password_edit_set("Texts(1)", password)
          有的时候出现异常: 说我的参数是非法.我在EXECL里放置了一些诸如"~!@#$%^'符号
          有的时候正常
不知道是什么原因!

[最后不要忘了在判断完了要做一下小的细节处理,]
PICTURE给的正是我没想到的,我在运行时,老是自己手工点那个弹出对话框:(




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