51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1687|回复: 1
打印 上一主题 下一主题

[原创] QTP外部资源导入的的问题

[复制链接]
  • TA的每日心情
    奋斗
    2016-1-13 11:18
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2015-7-24 13:54:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    新建一个工程  导入 外部资源 dll或者VBS文件,如下图








    在重新打开新的工程,在File-Settings-Resource 下面就看看不到刚才导入的资源,如图






    现在想在新工程也使用刚才的外部资源,不需要再次导入,麻烦问下有啥好的方法,谢谢!

    本帖子中包含更多资源

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

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

    使用道具 举报

  • TA的每日心情
    慵懒
    2015-1-18 20:39
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    2#
    发表于 2015-7-30 10:27:36 | 只看该作者
    这个在前台手工快速设置目前也没有找到好的方法,不过新工程的话,可以通过vbs脚本启动自动加载外部资源及相应设置,使用Dictionary创建数组来管理外部资源,源码如下,可以参考下

    Function Add_ARRAY_Library(pathName, byref itemCount)
      Call ARRAY_Library.Add(cstr(itemCount), pathName)
      itemCount = itemCount + 1
    End Function

    Function Add_ARRAY_Library_Delete(pathName, byref itemCount)
      Call ARRAY_Library_Delete.Add(cstr(itemCount), pathName)
      itemCount = itemCount + 1
    End Function

    Function IsExist(pathName)
      IsExist  = false
      For j= 0 to ARRAY_Library.Count -1
        If ARRAY_Library.Item(cstr(j)) =  pathName Then
          IsExist  = true
          Exit function
        End If
      Next
    End Function

    Dim MainPath, fso
    Dim ARRAY_Library
    Set ARRAY_Library = CreateObject("Scripting.Dictionary")
    Dim ARRAY_Library_Delete
    Set ARRAY_Library_Delete = CreateObject("Scripting.Dictionary")
    MainPath = createobject("wscript.shell").currentdirectory & "\Main"
    Set fso = CreateObject("scripting.filesystemobject")
    Set qtApp = CreateObject("QuickTest.Application")
    If not qtApp.Launched Then
      If not fso.FolderExists(MainPath) then
        MsgBox MainPath & "路径不存在!" & vbCr & "请将VBS文件放到与Main平级的目录下执行!" & vbCr & "谢谢!", ,"Main路径错误"
        Wscript.Quit
      End If
      qtApp.Launch
      qtApp.Open MainPath
      qtApp.Visible = true
    End If
    Set fso = nothing
    qtApp.Folders.RemoveAll
    qtApp.Folders.Add(createobject("wscript.shell").currentdirectory & "\Addin")
    qtApp.Folders.Add(createobject("wscript.shell").currentdirectory & "\Private")
    qtApp.Folders.Add(createobject("wscript.shell").currentdirectory & "\Scripts")

    '清除所有资源
    qtApp.Test.Settings.Resources.Libraries.RemoveAll
    '加载私有项目资源
    Dim pos, delete_pos
    pos = 0
    delete_pos = 0
    Call Add_ARRAY_Library("ProjectInit.vbs", pos)

    '加载公共项目资源
    Call Add_ARRAY_Library("ICall.dll", pos)
    Call Add_ARRAY_Library("Recovery.vbs", pos)

    '加载项目脚本
    Call Add_ARRAY_Library("PUB\DosOracleExp.vbs", pos)


    For i = 0 to ARRAY_Library.Count - 1
      pathName = ARRAY_Library.Item(cstr(i))
      If cstr(qtApp.Test.Settings.Resources.Libraries.Find(pathName)) = cstr(-1) then
        call qtApp.Test.Settings.Resources.Libraries.Add(pathName)
      end if
    Next

    '原来类库中存在的则删除
    For i = 1 to qtApp.Test.Settings.Resources.Libraries.Count
      If not IsExist(qtApp.Test.Settings.Resources.Libraries.Item(i)) then
        Call Add_ARRAY_Library_Delete(qtApp.Test.Settings.Resources.Libraries.Item(i), delete_pos)
      end if
    Next

    For i = 0 to ARRAY_Library_Delete.Count - 1
      call qtApp.Test.Settings.Resources.Libraries.Remove(ARRAY_Library_Delete.Item(cstr(i)))
    next

    '直接运行
    qtApp.Test.Run
    Set qtApp = nothing
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-23 10:21 , Processed in 0.064340 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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