51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 4843|回复: 16
打印 上一主题 下一主题

QQ登陆脚本的录制

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2004-9-16 11:58:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我现在做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的菜鸟.请各位多多指教,谢谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏

该用户从未签到

2#
发表于 2004-9-16 15:06:50 | 只看该作者
你的代码我怎么看不懂的呀?是两个脚本吗?乱呀!看来我得加强学习才好!
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 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);前面吧?
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2004-9-16 23:27:33 | 只看该作者

欢迎大家讨论

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

使用道具 举报

该用户从未签到

5#
发表于 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就已经很好了.
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2004-9-17 10:16:54 | 只看该作者
3.错误的用户名或密码在WR测试时, 一定是FAIL的, 那如何在TD中控制为正确的,因为错误密码时它的期望值是不能登陆的,即是PASS
----------------
winrunner自动化测试本身就是要判断被测试的application是否如你所期望的结果.winrunner自己不会在乎什么是success什么是fail,是需要你去写的.
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2004-9-17 12:06:49 | 只看该作者

非常感谢flower的指导

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

使用道具 举报

该用户从未签到

8#
发表于 2004-9-17 12:11:55 | 只看该作者
flower真是好斑竹,支持一把。^_^
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2004-9-17 13:28:40 | 只看该作者
Testing,

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

Girl04,

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

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 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;
这里有一点不明白,为什么我先定义
static  name=("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 的,将GUI  MAP 保存在脚本的目录下即绝对路绝
5.确定在哪里插入什么检查\\这个我觉得不是太重要,不知道你的意见如何?
  我也作相应的调整.见脚本.

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

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

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 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登陆脚本来.
让小妹开开眼界,谢谢了
回复 支持 反对

使用道具 举报

该用户从未签到

12#
 楼主| 发表于 2004-10-18 11:26:51 | 只看该作者
怎么没人理我???
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2004-10-18 13:15:53 | 只看该作者
4.guimap问题\\我用过
if (gui_load("绝对路绝")!=0)
    {
        report_msg("不能正确加载GUI MAP时, 退出!");
        texit;
     }
也不成功,这样又错了吗?
我是用    Gui Map File per Test Mode 的,将GUI  MAP 保存在脚本的目录下即绝对路j径。


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

[ Last edited by rantisong on 2004-10-18 at 13:17 ]
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2004-10-19 14:22:32 | 只看该作者
static  name=("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;
        }
你试一下吧!
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 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)");
本人测了一次,可以运行!!
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2004-10-19 14:46:59 | 只看该作者
但测了之后,再按清除按这个建就没有用了,(哈哈哈)
不知道怎么搞的,不知道大家有没有这种情况呢?

大家试一下吧.
回复 支持 反对

使用道具 举报

该用户从未签到

17#
 楼主| 发表于 2004-10-23 11:30:43 | 只看该作者
谢了.
其实不用"清除"这一步也是可以的
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-5-1 17:32 , Processed in 0.081341 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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