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的菜鸟.请各位多多指教,谢谢 你的代码我怎么看不懂的呀?是两个脚本吗?乱呀!看来我得加强学习才好! 不过我看出来一个:
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);前面吧?
欢迎大家讨论
依伊卜舍,两个检查点应该加在obj_mouse_click ("登录", 42, 15, LEFT);前面吧?这个没关系的,不在重点上呀.欢迎大家讨论.我的MSN是lideshi@hotmail.com 设计问题:
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就已经很好了. 3.错误的用户名或密码在WR测试时, 一定是FAIL的, 那如何在TD中控制为正确的,因为错误密码时它的期望值是不能登陆的,即是PASS
----------------
winrunner自动化测试本身就是要判断被测试的application是否如你所期望的结果.winrunner自己不会在乎什么是success什么是fail,是需要你去写的.
非常感谢flower的指导
非常感谢flower的指导,小弟受益匪浅!“1.打开QQ的application没有进行判断.
2.最好将正确和错误的用户名密码表格分开,以使脚本更清晰”
这两点我没有想到,这对我完善脚本非常有帮助。
还有,你所提出的其他几个设计问题我现在还没有能力去解决。
正如你所说要“看一些winrunner系统的学习资料”。正是我下一步的计划。
一个星期之后我再想办法解决完你所提出来的建议。
在此再次感谢。希望能在MSN上和你交流,请加入。 flower真是好斑竹,支持一把。^_^ Testing,
被人夸奖的感觉就是好~~
项目间歇,还好不忙,兴许忙起来就不得不消失一阵了:)
Girl04,
我无法上MSN,有任何问题都可以在这里交流.而且这里乐于助人的winrunner expert很多,相信你在这里会有很多收获的.
回复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 用这个脚本运行时, 能正确判断它可以通过.
我再一次录制的脚本.
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登陆脚本来.
让小妹开开眼界,谢谢了 怎么没人理我??? 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 ] 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;
}
你试一下吧! 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)");
本人测了一次,可以运行!! 但测了之后,再按清除按这个建就没有用了,(哈哈哈)
不知道怎么搞的,不知道大家有没有这种情况呢?
大家试一下吧. 谢了.
其实不用"清除"这一步也是可以的
页:
[1]