51Testing软件测试论坛
标题:
使用Call to Existing Action时,如何能保证子脚本中能正确导入excel数据
[打印本页]
作者:
liujintao00
时间:
2012-9-17 11:43
标题:
使用Call to Existing Action时,如何能保证子脚本中能正确导入excel数据
本帖最后由 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项是不可修改的
作者:
hsjzfling
时间:
2012-9-17 15:14
读下代码就知道了,现在的表名已经不叫"AddUser"了,而是叫"AddUser [add_user]". 调用External Action时为了有所区分,都会自动做出这样的修改
作者:
liujintao00
时间:
2012-9-18 09:33
哥哥,你是在重复描述了一下现象。
我是问怎么能保证子脚本能够正确导入数据。总不能先把子脚本的内容改了以后,再进行调用吧
回复
2#
hsjzfling
作者:
geek
时间:
2012-9-18 15:32
同二楼的意思,现在你的Sheet名是"AddUser [add_user]"了.你可以改一下导入语句为
ataTable.ImportSheet "D:\xe\case\用户管理.xls","新建用户","AddUser [add_user]" 试试?..
作者:
liujintao00
时间:
2012-9-18 17:13
回复
4#
geek
使用Call to Existing Action的初衷是连续执行多个子脚本。如果为了迁就主脚本修改的话,子脚本就要大改,所有涉及到sheet名称的地方都要调整。
而且这会导致单独执行子脚本时回报错(同样是找不到sheet)
作者:
liujintao00
时间:
2012-9-18 17:17
问题我已经解决了:
1.在子脚本用DataTable.AddSheet增加一个sheet ,excel的数据导入到这个sheet,使用for循环读取sheet中的值给对应的变量赋值
2.使用EOM直接操作excel
这两种方式都没有使用被重命名的子脚本sheet,不会出现找不到sheet的情况,只不过代码量要稍微增加几行
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2