51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4362|回复: 23
打印 上一主题 下一主题

[原创] 【已解决】qtp11 独立的action之间相互调用时,datatable的用法

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2012-12-6 15:52:14 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 黑羽祭 于 2012-12-12 17:28 编辑

新建test1: Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").Set DataTable.Value("A","Action1")
新建test2:调用test1:RunAction "Action1 [Test3]", oneIteration


运行test2,报错:


请问不同action之间调用的时候,datatable应如何处理呢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    无聊
    2018-9-27 10:05
  • 签到天数: 36 天

    连续签到: 1 天

    [LV.5]测试团长

    24#
    发表于 2012-12-12 17:28:30 | 只看该作者
    回复 23# robinpipi


        呵呵  慢慢来吧~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    23#
     楼主| 发表于 2012-12-12 17:15:14 | 只看该作者
    回复 22# 黑羽祭


        好的。谢谢黑羽。
    我是一个新手,目前还不太会写外部可以重复使用的vbs之类的,基本都是按步骤一句一句的完成,接下来使用熟练了,就该考虑抽出可重用的函数之类的,现在自己看自己写的脚本都有点惨不忍睹的感觉,呵呵。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2018-9-27 10:05
  • 签到天数: 36 天

    连续签到: 1 天

    [LV.5]测试团长

    22#
    发表于 2012-12-12 16:58:11 | 只看该作者
    回复 21# robinpipi


        每个人的做法不同吧,根据你们项目组的情况,找到更符合你们那情况的方案。
    我的话,我并没有将每个模块写入每个Action这样。因为我不是已模块进行脚本分划分,我的脚本是以各种类型表单为主,所以我是根据表单进行划分的脚本,一个脚本只有一个Action,这个Action包括了这个表单的所有操作,通过一张外部Excel进行设置与控制,那些常用的函数是写在外部vbs文件,通过Function Library进行加载并使用。对应模块的对象库导出,如要使用该模块,则加载这个模块的对象库。然后就是直接使用了。说的可能有点乱,不过在我的项目中用的很方便,几个外部vbs文件写的比较大,而每个脚本Action中的内容反而比较少。都交给这些vbs文件自己完成了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    21#
     楼主| 发表于 2012-12-12 16:46:51 | 只看该作者
    回复 20# 黑羽祭


        哦,真是空格的原因。看来这么写太不方便了。
    改了之后,被调用的actiion自己就不能运行了,
    如果不改,调用的action会报错。
    还是用excel比较方便,datatable还是有很多限制。
    我再请教一下:这种独立的action调用方法好吗?我们在做项目的时候,会这样子做吗?
    比如有多个人在做项目,或者说分模块做,一般情况下都会是单独的action,然后在统一的main中调用。
    我现在就是写了多个模块的功能,现在在一个acttion里面调用,这样子,执行main就可以把所有的模考执行。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2018-9-27 10:05
  • 签到天数: 36 天

    连续签到: 1 天

    [LV.5]测试团长

    20#
    发表于 2012-12-12 16:07:24 | 只看该作者
    回复 19# robinpipi


        Action1和[Test3]之间少个空格
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
     楼主| 发表于 2012-12-12 14:53:26 | 只看该作者
    回复 17# 黑羽祭
    不行的。
    这是修改后运行的错误。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
     楼主| 发表于 2012-12-12 14:52:08 | 只看该作者
    回复 17# 黑羽祭


        不行。这是修改后运行报的错误

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2018-9-27 10:05
  • 签到天数: 36 天

    连续签到: 1 天

    [LV.5]测试团长

    17#
    发表于 2012-12-12 12:52:56 | 只看该作者
    回复 1# robinpipi


        你在Test1中的Action1写了DataTable.Value("A","Action1"),这样运行是可以的。
    当你用Test2来调用Action1的时候,你注意DataTable,Test1的Action1表的名字变为了Action1 [Test3],表的sheet名都变了,自然就找不到你要的内容。
    如果你在Test2中使用DataTable.Value("A","Action1 [Test3]"),我相信是可以使用的。

    你想多Action调用,并读表格,如果是我的话,就调用外部的Excel,不使用DataTable。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2018-9-27 10:05
  • 签到天数: 36 天

    连续签到: 1 天

    [LV.5]测试团长

    16#
    发表于 2012-12-12 11:56:58 | 只看该作者
    回复 15# robinpipi


        好吧,我帮你看看。等等
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
     楼主| 发表于 2012-12-12 11:40:42 | 只看该作者
    问过几个人,都没彻底解决
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
     楼主| 发表于 2012-12-12 11:40:06 | 只看该作者
    没有,这个肯定不是脚本错误造成的,就是简单的一句,然后就直接调用。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2018-9-27 10:05
  • 签到天数: 36 天

    连续签到: 1 天

    [LV.5]测试团长

    13#
    发表于 2012-12-12 11:27:29 | 只看该作者
    回复 12# robinpipi


        还没有查出原因么?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
     楼主| 发表于 2012-12-12 11:06:35 | 只看该作者
    求解决啊,求解决啊
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
     楼主| 发表于 2012-12-11 13:44:14 | 只看该作者
    就是2个test,无论是1和2,还是3和5,只不过是命名不同。因为楼上的提出了我是因为调用了test3,所以做了一下解释。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2012-12-11 12:03:07 | 只看该作者
    你到底有几个test啊?到底是不是现有调用?如果是现有调用的化,应该只有test1和test2,怎么会出来什么test3和test5呢?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
     楼主| 发表于 2012-12-11 10:11:09 | 只看该作者
    用print 打出来是 Action1【Test3】,而在test3中把Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").Set DataTable.Value("A","Action1")中的“Action1”改成“Action1 [Test3]”后,在test5中运行,会报Action1【Test3】工作表不存在。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2012-12-11 10:04:57 | 只看该作者
    本帖最后由 robinpipi 于 2012-12-11 10:07 编辑

    我描述的名称有问题,就是test5调用test3。目前test5调用test3就会报A列不存在
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2012-12-7 21:01:55 | 只看该作者
    你说调用test1,但脚本却是调用test3,脚本写的是RunAction "Action1 [Test3]", oneIteration。

    无论是副本调用还是现有脚本调用,我说的原因都是正确的,你可以在test1的脚本中增加以下内容,然后在test2中运行:
    print DataTable.LocalSheet.Name
    你就能看到在test2中运行时的第三个sheet的名称是:Action1 [Test3]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2012-12-7 16:48:51 | 只看该作者
    自己顶一下
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-9-27 19:25 , Processed in 0.105058 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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