girl04 发表于 2004-10-30 11:20:27

如何进行参数化呀?!

这是一个类似于QQ的聊天软件,大家可以QQ用来修改一下如下我写的这个脚本.再进行讨论这样会明白一点.

#如果QNL启动程序不存在,退出!
if(invoke_application("C:\Program Files\Call Me\StartUp.exe","","",show)!=0)
{
    report_msg("QNL启动程序不存在,退出!");
        texit;
   }



# Call Me 用户登录
        #输入用户名
        set_window ("Call Me 用户登录", 4);
        list_select_item ("cmbUserName", "用户名XXXX");# Item Number 1;
        #用户名验证
        rc=obj_check_gui("Edit", "list3.ckl", "gui3", 1);
    if (rc != E_OK)
        tl_step ("用户名验证", FAIL, "不正确!");
else
        tl_step ("用户名验证", PASS, "正确!");
        #输入正确密码
        password_edit_set("txtPassword", "密码XXXX");
        #验证密码
        rc=obj_check_gui("txtPassword", "list4.ckl", "gui4", 1);
    if (rc != E_OK)
        tl_step ("密码验证", FAIL, "不正确!");
else
        tl_step ("密码验证", PASS, "正确!");
       
    #是否隐身,可修改参数,验证隐身键是否可用
        button_set ("隐身登录", ON);

        button_press ("ThunderRT6CommandButton");
       

# Call Me
        set_window ("Call Me", 11);
        obj_mouse_click ("picInfo", 10, 18, LEFT);
        rc=win_check_gui("Call Me", "list2.ckl", "gui2", 1);
        if (rc != E_OK)
        tl_step("登陆后窗口", FAIL, "不能正常显示");
else
    tl_step ("登陆后窗口", PASS, "能正常显示");

girl04 发表于 2004-10-30 11:29:39

续上:
以上是此聊天软件的正常登陆过程.
现在我想先参数化用户名,以便输入一个正确的用户名和多个不正确的用户名来验证.
我是用datadriver wizard来参数化,用了两种方法,但都不行.
1.list_select_item ("cmbUserName", "用户名XXXX");# Item Number 1;
用datadriver wizard来参数化:
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);
        list_select_item ("cmbUserName", ddt_val(table,"cmbUserName"));# Item Number 1;
}
ddt_close(table);
2.把第一张帖子全部datadriver wizard来参数化,只参数化用户名.参数化后的脚本我不写出来了.

这两种方法都不行.
为了达到可以输入一个正确的用户名和多个不正确的用户名来验证.
还有什么有效的方法来解决吗?

QA_BAY 发表于 2004-10-30 15:42:52

这人问题我有兴趣,我会帮你想的!大家一起研究吧!!!

QA_BAY 发表于 2004-10-30 19:14:03

# #32770_3
    win_mouse_click ("#32770_3", 42, 86);
        set_window ("#32770_3", 16);
        edit_set ("QQ号码:_1", "11670222");

# #32770_3
        set_window("#32770_3", 1);
        obj_check_gui("QQ号码:_1", "list1.ckl", "gui1", 1);
if (obj_check_gui("QQ号码:_1", "list1.ckl", "gui1", 1) == E_OK)
       tl_step ("QQ号码:_1",0, "用户名验证正确!");
       else
          tl_step ("QQ号码:_1",1, "用户名验证不正确!");
# #32770_3
        set_window ("#32770_5", 17);
        password_edit_set("QQ密码:", "fzetnyjtazctnzesbvcshv");

# #32770_3
        set_window("#32770_3", 1);
        obj_check_gui("QQ密码:", "list2.ckl", "gui2", 1);
if (obj_check_gui("QQ密码:", "list2.ckl", "gui2", 1)== E_OK)
       tl_step ("QQ密码:",0, "用户名验证正确!");
       else
          tl_step ("QQ密码:",1, "用户名验证不正确!");
           obj_mouse_click ("登录", 23, 13, LEFT);
           iResult = win_exists("错误");
if (iResult == E_OK)
{   set_window ("错误", 6);
        button_press ("否(N)");
}
    set_window("#32770");
    password_edit_set("QQ密码:", "fzetnyjtazctnzesbvcshvds");
        obj_mouse_click ("登录", 38, 9, LEFT);


我试过了,可以的,我的前提是用户名是正确的,如果不正确,我要再加多一条程序.由于时间不够,这个星期比较忙,所以大家帮忙看一下吧

girl04 发表于 2004-10-30 20:12:58

非常感谢QA_BAY,你写的这个QQ登录脚本是可以的,我知道了,谢了!

但我写这张帖的目的是怎样把用户名参数化.以便加以测试多个测试数据,如正确和不正确的用户名.

看了你的帖,我有一点感想:
1.你写脚本有个习惯,如每验证一处地方时,先点击QQ筐,如:# #32770_3
   这和我的写法有点不一样. 请说一下,你这样做有什么好处.还是只是习惯而已.哈哈...
2.看了你很多帖,在你身上也学也很多.也加了你的MSN,下次有机会在MSN上聊吧

girl04 发表于 2004-10-30 20:26:08

欢迎大家讨论.

QA_BAY 发表于 2004-10-31 12:15:07

Originally posted by girl04 at 2004-10-30 08:12 PM:
非常感谢QA_BAY,你写的这个QQ登录脚本是可以的,我知道了,谢了!

但我写这张帖的目的是怎样把用户名参数化.以便加以测试多个测试数据,如正确和不正确的用户名.

看了你的帖,我有一点感想:
1.你写脚本有个习惯 ...
很谢谢你的夸奖,我只是一个WR的爱好者!我很喜欢WR这个软件,觉得它非常有用,很想去学好它,可惜,会的人太少,都要靠自己,
写脚本每个人都有自己的风格,各有各的特点,学习久了习惯也就养成了,我也不知道这个是不是自己的风格,没有太在意!!

你在我的MSN叫什么呢?

girl04 发表于 2004-10-31 21:48:16

回应我的题目吧,谁会的, 请教!

QA_BAY,我的MSN名是:飞马

girl04 发表于 2004-11-5 10:12:00

没人理的?
急呀

happytll 发表于 2004-11-8 16:06:48

你的问题有点难度,呵呵,关注!!!:d

tone 发表于 2004-11-8 20:38:37

会不会是这个原因

你在代码里面用的是 list_select_item ,这个函数是在列表框中选择值,如果列表框中没有对应的值,肯定就选择不到。请确认一下你的xls文件里面的所有用户名都是在列表框中吗,如果不在,可以用edit_set试一下。
我也使刚学wr,有很多东西也在摸索当中,并不一定正确,你的代码我没有运行,以上只是我的一点看法,有空多交流了。

girl04 发表于 2004-11-8 21:23:54

不是这个原因,我肯定!

lizhipengmail 发表于 2004-11-9 10:26:32

我用腾讯的BQQ试了一下,可以通过data driver wizard实现参数化,和其它软件没有什么不同。我想可能是girl04你的操作或是环境有些问题,如果方便,留个软件下载网址,有时间帮你试一下。

girl04 发表于 2004-11-9 23:12:08

这个问题我已经解决了,谢谢诸位.

正如楼上所说,我的想法是正确的,是操作过程中出了点问题.

QA_BAY 发表于 2004-11-9 23:57:31

到今天晚上才有点时间出来想你的问题,
我自己也想出一个,我写上来你看一下,
不知跟你一样吗?如果不一样发MSN给我吧,
我们再看一下!


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);
       
        # Program Manager
                set_window ("Program Manager", 2);
                list_activate_item ("SysListView32", "腾讯QQ珊瑚虫版");
       
        # #32770
                set_window ("#32770", 6);
                edit_set ("QQ号码:_1", ddt_val(table,"number"));
                list_get_selected("QQ号码:_0",item,number);
               
                if (item=="11670222")
                  {
                   set_window ("#32770", 18);
                   password_edit_set("QQ密码:", "fzetnyjtazctncshvdhjkhjkhhs");
                   obj_mouse_click ("登录", 30, 11, LEFT);
                   }
                  
               else
                  {
                        set_window ("#32770", 18);
                   password_edit_set("QQ密码:", "fzetnyjtsdcshvds");
                   obj_mouse_click ("登录", 30, 11, LEFT);
                   set_window ("详细资料", 5);
                   button_press ("下一步(N) >");
                   button_press ("下一步(N) >");
                   button_press ("下一步(N) >");
                   button_press ("返回登录框");
                  
          #32770
                   set_window ("#32770", 6);
             win_close ("#32770_2");
                                        }
               
                  
       
       
}
ddt_close(table);

[ Last edited by QA_BAY on 2004-11-9 at 23:59 ]

QA_BAY 发表于 2004-11-10 15:37:34

我收到你的脚本了,今天晚上回去帮你想一下,想一条可以合起来的.不用分好多步!

totomylove 发表于 2004-11-11 15:23:03

#32770_3
是什么?

QA_BAY 发表于 2004-11-11 16:44:33

Originally posted by totomylove at 2004-11-11 03:23 PM:
#32770_3
是什么?
这个是点窗口的注释
有#的都不执行,是给程序员看的!就好像其它语言的注释一样
页: [1]
查看完整版本: 如何进行参数化呀?!