51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1936|回复: 5
打印 上一主题 下一主题

[原创] 使用Call to Existing Action时,如何能保证子脚本中能正确导入excel数据

[复制链接]
  • TA的每日心情
    开心
    2015-12-22 14:29
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2012-9-17 11:43:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    本帖最后由 liujintao00 于 2012-9-17 14:04 编辑

    我使用的是10.00版本的QTP
    问题具体描述如下:
    1.Call to Existing Action 调用一个子脚本:RunAction "AddUser [add_user]", oneIteration,在datable中出现一个新的sheet:AddUser [add_user]:
    2.子脚本中导入excel数据的语句是DataTable.ImportSheet "D:\xe\case\用户管理.xls","新建用户","AddUser",但是datable中不存在这个sheet,对应的sheet其实是AddUser [add_user]
    这样执行脚本时,DataTable.ImportSheet "D:\xe\case\用户管理.xls","新建用户","AddUser"就不会向期望的sheet中插入数据。

    请问要怎么解决?

    我原本想修改调用子脚本的属性的Action Properties.但是添加Call to Existing Action 时没有“Edit new Action Properties”。子脚本属性的Action Properties项是不可修改的
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    2#
    发表于 2012-9-17 15:14:03 | 只看该作者
    读下代码就知道了,现在的表名已经不叫"AddUser"了,而是叫"AddUser [add_user]". 调用External Action时为了有所区分,都会自动做出这样的修改
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-12-22 14:29
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    3#
     楼主| 发表于 2012-9-18 09:33:43 | 只看该作者
    哥哥,你是在重复描述了一下现象。
    我是问怎么能保证子脚本能够正确导入数据。总不能先把子脚本的内容改了以后,再进行调用吧
    回复 2# hsjzfling
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2012-9-18 15:32:44 | 只看该作者
    同二楼的意思,现在你的Sheet名是"AddUser [add_user]"了.你可以改一下导入语句为ataTable.ImportSheet "D:\xe\case\用户管理.xls","新建用户","AddUser [add_user]"  试试?..
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-12-22 14:29
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    5#
     楼主| 发表于 2012-9-18 17:13:04 | 只看该作者
    回复 4# geek

    使用Call to Existing Action的初衷是连续执行多个子脚本。如果为了迁就主脚本修改的话,子脚本就要大改,所有涉及到sheet名称的地方都要调整。
    而且这会导致单独执行子脚本时回报错(同样是找不到sheet)
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-12-22 14:29
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    6#
     楼主| 发表于 2012-9-18 17:17:12 | 只看该作者
    问题我已经解决了:
    1.在子脚本用DataTable.AddSheet增加一个sheet ,excel的数据导入到这个sheet,使用for循环读取sheet中的值给对应的变量赋值
    2.使用EOM直接操作excel
    这两种方式都没有使用被重命名的子脚本sheet,不会出现找不到sheet的情况,只不过代码量要稍微增加几行
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-23 01:09 , Processed in 0.073702 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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