51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 12630|回复: 30
打印 上一主题 下一主题

如何用winrunner调用excel中的值

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-7-24 11:08:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如何用winrunner调用excel中的值?
比如我要调用一个123.xls中的值,如何调用。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2006-7-24 13:45:10 | 只看该作者
比如,我要测试一个东西的登录。
我把登录的用户名和密码都写在D盘的123.xls文档中。
我现在要winrunner从123.xls一遍遍的读用户名和密码。
不知如何啊?
sdlkfj9哪位大虾帮帮忙。
最好举一个有代码的例子。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2006-7-24 14:06:22 | 只看该作者
参考ddt系列的函数吧,具体的例子我手上没有
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2006-7-24 16:07:26 | 只看该作者
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);
          
       
        # workspace
                set_window("workspace",4);
                button_press("添加");
                web_sync(6);
               
                edit_set("rolename",ddt_val(table,"rolename"));
                pause(ddt_val(table,"rolename"));
                edit_set("rolenote",ddt_val(table,"rolenote"));
                button_press("确定");
                button_set("check",ON);
                button_press("删除");

                }
        ddt_close(table);
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2006-7-24 17:19:01 | 只看该作者
楼上的,可否说明一下,看的不太懂
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2006-7-25 09:41:13 | 只看该作者
你用Table->Data Driver Wizard加入数据驱动,很多代码就自动生成了。然后再在excel表中添加你要测试的数据即可。
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2006-7-25 10:47:54 | 只看该作者

给你我写的一个数据表练习题课件

给你我写的一个数据表练习题课件:
问题:
1:在D盘根目录下建立两个Excel表
   命名为table1 和 table2。
2:在table1表中建立id和name两列。
   并输入数据如:id列中输入1~5,name列中输入a~e共5行。
   关闭两个表。
   以上两步不用WR。

3:用WR打开两个表,并用语句来判断表是否被打开。
   提示:注意路径中使用\\
4:利用偱环语句将table1中的name列的值全部改写为你的名字。
   提示:重点是要获取表中的行数来作为循环的次数。
5:保存table1。
6: 把table1数据完全导入空表table2中。
7:保存table2。
8:关闭所有的表。

9:查验结果。
提示同一个表不能被连续两次打开!

答案代码:
ddt_close_all_tables();
table1="d:\\table1.xls";
table2="d:\\table2.xls";
if(ddt_open(table1,DDT_MODE_READWRITE)==E_OK)
{pause("table1_open");}
if(ddt_open(table2,DDT_MODE_READWRITE)==E_OK)
{pause("table2_open");}
ddt_get_row_count(table1,row_count);
for(i=1;i<=row_count;i++)
{
ddt_set_val_by_row(table1,i,"name","Liuxuedong");
}

ddt_save(table1);
ddt_export(table1,table2);
ddt_save(table2);
ddt_close_all_tables();
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2006-7-25 11:00:06 | 只看该作者
那请问如何将数据库中的数据导入到数据表中呢
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2006-7-25 14:17:15 | 只看该作者
太感谢“梦醒十分”了,后来经过反复练习,发现是tools->DataDriver Wizard这个使用数据导入,就会自动产生一些代码。
挺方便的。
上面的例子,我也再练习练习。
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2006-8-28 10:31:21 | 只看该作者
梦醒十分 ,你好!我在机子上运行了你写的代码,对用到的这些函数有了解了,呵呵谢谢!有一个问题不太明白,在执行过程中弹出过这个框,这是不是在提示是否打开表的意思呢?不是错误提示吧?
还有,如果两张表都是打开的,也能执行,但什么也没做,这是怎么处理的?为什么这样处理??
代码中的第一句,ddt_close_all_tables();,关闭的是哪些表,如果我打开了D盘下的表,执行代码后它怎么不关闭呢?是不是有问题啊???
期望回答!!!
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2006-8-29 15:16:14 | 只看该作者

我来说俩句

如果这俩表都是打开的话,俩个pause()语句就没有执行,说明 if 语句判断的结果是假,则说明程序没有打开这俩个表,所以没有对表做任何操作.

改一下判断条件,如果有对话框弹出就说明该表在程序执行中没有被打开:
if(ddt_open(table1,DDT_MODE_READWRITE)!=E_OK)
{pause("table1_open");}
if(ddt_open(table2,DDT_MODE_READWRITE)!=E_OK)
{pause("table2_open");}
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2006-8-30 09:07:45 | 只看该作者
楼上的,你好!你说的意思我明白了。但还有一点,如果两张表是打开的,执行代码开头一句ddt_close_all_tables();,应该可以把打开的所有表关闭。不是吗?可实际却没有???是我理解有问题吗???
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2015-11-17 09:09
  • 签到天数: 7 天

    连续签到: 1 天

    [LV.3]测试连长

    13#
    发表于 2006-9-30 23:38:51 | 只看该作者
    楼上的:ddt_close_all_tables() 是可以把 “使用ddt_open或ddt_show”打开的所有表关闭。

    The ddt_close_all_tables function closes all open tables in all open tests.   Note that this includes any tables that are open in the table editor, tables that were opened using the ddt_open or ddt_show functions or/and using the DataDriven Tests Wizard.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2006-10-10 14:29:36 | 只看该作者
    噢,明白了!:)
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2006-10-10 15:08:40 | 只看该作者
    都是高手啊~~~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2006-10-10 16:46:13 | 只看该作者
    哎~!高手
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2007-2-3 17:00:05 | 只看该作者
    真是高手如云呀!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2007-3-17 16:06:41 | 只看该作者

    参考数据驱动

    参考数据驱动
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2007-3-19 17:58:32 | 只看该作者
    问个问题
    我用DataDriver Wizard加入,然后读取里面的数据(也是登陆的例子)
    数据是自己手动加的
    如果登陆的密码是加密了的,那怎么办
    有什么解决的方法不,要不的话就是录制的那个用户名和密码是正确的
    其他的都是错误的,因为手动加的密码都是明文


    求解
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
    发表于 2007-3-19 22:28:28 | 只看该作者
    你录制密码输入的地方是否是password_edit_set()这个函数?如果想做数据驱动就把这块改为edit_set(),这样输入的密码就不是加密的了,可以循环
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-14 22:29 , Processed in 0.084723 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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