girl04 发表于 2004-9-16 11:58:30

QQ登陆脚本的录制

我现在做QQ登陆脚本的录制,

C:\Program Files\Tencent\qq\QQLdr.exe
# #32770_1
        set_window ("#32770_1", 10);
        list_select_item ("QQ号码:_0", "QQ号码");# Item Number 0;
        password_edit_set("QQ密码:", "密码,为数字");
        obj_mouse_click ("登录", 42, 15, LEFT);
加入两个checkpoint,分别检查QQ号码和QQ密码的正确性.
obj_check_gui("QQ号码:_1", "list1.ckl", "gui1", 1);
obj_check_gui("QQ密码:", "list2.ckl", "gui2", 1);
再用数据驱动:
table = "default.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);
        C:\Program Files\Tencent\qq\QQLdr.exe
       
        # #32770_1
                set_window ("#32770_1", 10);
                list_select_item ("QQ号码:_0", ddt_val(table,"QQ号码_0"));# Item Number 0;
                password_edit_set("QQ密码:", password_encrypt(ddt_val(table,"QQ密码")));
                obj_mouse_click ("登录", 42, 15, LEFT);
        set_window("#32770_2", 1);
        obj_check_gui("QQ号码:_1", "list1.ckl", "gui1", 1);
        obj_check_gui("QQ密码:", "list2.ckl", "gui2", 1);
       
}
ddt_close(table);
再输入多组测试数据, 包括正确和错误的用户名和密码.
我想知道
1.以上这脚本的本身有错吗?怎样修改才能完善!
2. 要实现在测试结果中显示checkpoint的执行正确与否的说明.
用tl_step可以实现吗?还是用其他的方法.
3.错误的用户名或密码在WR测试时, 一定是FAIL的, 那如何在TD中控制为正确的,因为错误密码时它的期望值是不能登陆的,即是PASS

小弟是刚学WR的菜鸟.请各位多多指教,谢谢

依伊卜舍 发表于 2004-9-16 15:06:50

你的代码我怎么看不懂的呀?是两个脚本吗?乱呀!看来我得加强学习才好!

依伊卜舍 发表于 2004-9-16 15:08:25

不过我看出来一个:
      set_window ("#32770_1", 10);
      list_select_item ("QQ号码:_0", "QQ号码");# Item Number 0;
      password_edit_set("QQ密码:", "密码,为数字");
      obj_mouse_click ("登录", 42, 15, LEFT);
加入两个checkpoint,分别检查QQ号码和QQ密码的正确性.
      obj_check_gui("QQ号码:_1", "list1.ckl", "gui1", 1);
      obj_check_gui("QQ密码:", "list2.ckl", "gui2", 1);
两个检查点应该加在obj_mouse_click ("登录", 42, 15, LEFT);前面吧?

girl04 发表于 2004-9-16 23:27:33

欢迎大家讨论

依伊卜舍,两个检查点应该加在obj_mouse_click ("登录", 42, 15, LEFT);前面吧?
这个没关系的,不在重点上呀.欢迎大家讨论.我的MSN是lideshi@hotmail.com

flower 发表于 2004-9-17 10:09:51

设计问题:
1.打开QQ的application没有进行判断.
2.最好将正确和错误的用户名密码表格分开,以使脚本更清晰.
3.格式问题:不明晰
4.guimap问题:你是如何录制gui的,而且脚本中没有load guimap的步骤.
5.确定在哪里插入什么检查点.
6.是否考虑了脚本的可移植性.
脚本问题:
我不知道你的脚本是否执行过.
1.调用QQ:使用invoke_application();并对可能的失败进行判断.
2.检查点:我想你要判断的是数据驱动的结果是否正确.如此设置用户名和密码的检查点好像起不到什么作用.而且密码均显示为掩码,你如何去判断呢.建议你对结果窗口信息进行检查.
3.时间点:你需要加入必要的等待时间.
4.对于结果的输出,你可以使用tl_step();也可以使用report_msg();winrunner还提供了其它许多方式.

建议你看一些winrunner系统的学习资料,而且winrunner本身提供的Flight就已经很好了.

flower 发表于 2004-9-17 10:16:54

3.错误的用户名或密码在WR测试时, 一定是FAIL的, 那如何在TD中控制为正确的,因为错误密码时它的期望值是不能登陆的,即是PASS
----------------
winrunner自动化测试本身就是要判断被测试的application是否如你所期望的结果.winrunner自己不会在乎什么是success什么是fail,是需要你去写的.

girl04 发表于 2004-9-17 12:06:49

非常感谢flower的指导

非常感谢flower的指导,小弟受益匪浅!
“1.打开QQ的application没有进行判断.
2.最好将正确和错误的用户名密码表格分开,以使脚本更清晰”
这两点我没有想到,这对我完善脚本非常有帮助。
还有,你所提出的其他几个设计问题我现在还没有能力去解决。
正如你所说要“看一些winrunner系统的学习资料”。正是我下一步的计划。
一个星期之后我再想办法解决完你所提出来的建议。
在此再次感谢。希望能在MSN上和你交流,请加入。

testing 发表于 2004-9-17 12:11:55

flower真是好斑竹,支持一把。^_^

flower 发表于 2004-9-17 13:28:40

Testing,

 被人夸奖的感觉就是好~~
 项目间歇,还好不忙,兴许忙起来就不得不消失一阵了:)

Girl04,

   我无法上MSN,有任何问题都可以在这里交流.而且这里乐于助人的winrunner expert很多,相信你在这里会有很多收获的.

girl04 发表于 2004-9-24 11:51:47

回复flower的2004-9-16 11:27 PM帖

1.打开QQ的application,我已用上了
if (invoke_application("C:\Program Files\Tencent\qq\QQLdr.exe","","",show)!=0)
           {
             report_msg("QQ启动程序不存在,退出!");
                   texit;
这里有一点不明白,为什么我先定义
staticname=("C:\Program Files\Tencent\qq\QQLdr.exe")
再,if(invoke_application(name,"","",show)!=0) 不成功 , 这样有错吗?

2.最好将正确和错误的用户名密码表格分开,以使脚本更清晰.\\这样非常好我想: 如果是正确用户名+正确的密码, 正确用户名+不正确的密码各为一张表,这样更好一点.

3.格式问题:不明晰\\我已重新调整,请阅.^-^

4.guimap问题\\我用过
if (gui_load("绝对路绝")!=0)
    {
      report_msg("不能正确加载GUI MAP时, 退出!");
      texit;
   }
也不成功,这样又错了吗?
我是用    Gui Map File per Test Mode 的,将GUIMAP 保存在脚本的目录下即绝对路绝
5.确定在哪里插入什么检查\\这个我觉得不是太重要,不知道你的意见如何?
我也作相应的调整.见脚本.

6.是否考虑了脚本的可移植性.\\这是一个大问题我没有考滤到这一点,请再指教.

我写这个脚本的用例是:
检查:
1. 正确用户名+正确密码,
2. 正确用户名+ 不正确密码(空值,非符号, 一位数字等)
验证是否可以登陆成功.
当在TD7.6 用这个脚本运行时, 能正确判断它可以通过.

girl04 发表于 2004-9-24 11:59:41

我再一次录制的脚本.

table = "default.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);
        if (invoke_application("C:\Program Files\Tencent\qq\QQLdr.exe","","",show)!=0)
           {
             report_msg("QQ启动程序不存在,退出!");
                   texit;
           }
       # #32770
                set_window ("#32770", 3);
                list_select_item ("QQ号码:_0", "8164723");# Item Number 0;
                set_window("#32770_1", 1);
          obj_check_gui("QQ号码:_1", "list1.ckl", "gui1", 1);
          password_edit_set("QQ密码:",password_encrypt(ddt_val( table,"QQ密码")));
                if (obj_check_gui("QQ密码:", "list2.ckl", "gui2", 1)!=0)
                  tl_step("QQ密码",0,"QQ密码j是不正确是对的")   
                   obj_mouse_click ("登录", 47, 12, LEFT);
       
       
}
ddt_close(table);

还是有完事,请指导一下,谢了.
我这个星期看完的Oldsidney 的<<WinRunner 7.6 Tutorial>>中文版了.
但实际运行起来还是力不从心.
请恕我冒未,如果可以
请flower或51testing站长,写出正确的QQ登陆脚本来.
让小妹开开眼界,谢谢了

girl04 发表于 2004-10-18 11:26:51

怎么没人理我???

rantisong 发表于 2004-10-18 13:15:53

4.guimap问题\\我用过
if (gui_load("绝对路绝")!=0)
    {
      report_msg("不能正确加载GUI MAP时, 退出!");
      texit;
   }
也不成功,这样又错了吗?
我是用    Gui Map File per Test Mode 的,将GUIMAP 保存在脚本的目录下即绝对路j径。


这个好像没有必要吧。在GUI Map File per Test Mode 下 不能手工加载或卸载GUI map.

[ Last edited by rantisong on 2004-10-18 at 13:17 ]

QA_BAY 发表于 2004-10-19 14:22:32

staticname=("C:\Program Files\Tencent\qq\QQLdr.exe")
再,if(invoke_application(name,"","",show)!=0) 不成功 , 这样有错吗?

你试一下把它们改成这样行吗?
static name="C:\\Program Files\\Tencent\\qq\\QQLdr.exe";
        if(invoke_application(name,"","",SW_SHOW)!=0)
# 如果程序不存在则退出测试
        {
                report_msg("要测试的程序不存在,测试退出.");# 返回一个提示信息
                texit;
        }
你试一下吧!

QA_BAY 发表于 2004-10-19 14:45:45

static app_name="D:\\Program Files\\Tencent\\qq\\QQLdr.exe";
        if(invoke_application(app_name,"","",SW_SHOW)!=0) # 如果程序不存在则退出测试
        {
                report_msg("要测试的程序不存在,测试退出.");# 返回一个提示信息
                texit;
        }

# #32770
        win_mouse_click ("#32770", 69, 89);
        set_window ("#32770", 8);
        edit_set ("QQ号码:_1", "11670222");
        obj_mouse_click ("清除 ...", 15, 11, LEFT);

# 清除记录
        set_window ("清除记录", 3);
        obj_mouse_click ("取消", 19, 10, LEFT);

# #32770
        set_window ("#32770", 10);
        password_edit_set("QQ密码:", "fzetnyjt");
        obj_mouse_click ("登录", 35, 13, LEFT);

# 错误
        set_window ("错误", 4);
        button_press ("否(N)");
本人测了一次,可以运行!!

QA_BAY 发表于 2004-10-19 14:46:59

但测了之后,再按清除按这个建就没有用了,(哈哈哈)
不知道怎么搞的,不知道大家有没有这种情况呢?

大家试一下吧.

girl04 发表于 2004-10-23 11:30:43

谢了.
其实不用"清除"这一步也是可以的
页: [1]
查看完整版本: QQ登陆脚本的录制