51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

测试开发精英班,通向高级软件测试工程师2021招募论坛版主项目为王,自动化测试提升加速器 !横扫BAT,Python全栈测试开发技能大全
【第124期】:怎样快速掌握测试工作中需用到..参与调查问卷 缔造行业趋势 大数据测试到底测什么? 【活动】为视频UP主打CALL,互动领福利!
查看: 1391|回复: 5

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

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

    连续签到: 1 天

    [LV.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项是不可修改的
    回复

    使用道具 举报

    该用户从未签到

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

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

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

    使用道具 举报

    该用户从未签到

    发表于 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]测试小兵

     楼主| 发表于 2012-9-18 17:13:04 | 显示全部楼层
    回复 4# geek

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

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

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

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2022-1-17 15:12 , Processed in 0.068758 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2022 Comsenz Inc.

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