51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

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

[原创] QTP告别COM编程(转)

[复制链接]
  • TA的每日心情
    开心
    2017-7-4 15:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2009-3-10 15:42:25 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
    现QTP中现在已经不用使用Scripting.FileSystemObject 来进行文件的操作了,因为它引入了.net  
    以前用Scripting.FileSystemObject判断文件否存在:
    Public function sFileExists(sFileName)
       Dim fso, msg
       Set fso = CreateObject("Scripting.FileSystemObject")
       If (fso.FileExists(sFileName)) Then
          sFileExists = true
       Else
          sFileExists = false
       End If
    End Function

    现在可以使用.net里的类了,方法如:


    Set var_CreateInstance = DotNetFactory.CreateInstance("System.IO.File", "")
    dim filepath
    filepath = "E:\Excel_VBA.txt"
    dim b
    b  = var_CreateInstance.Exists(filepath)
    msgbox b

    可以达到同样的效果,这样我们不需要在为脚本语言不能实现的功能而头疼了,你直接用.net里的类就可以了.
    我们的做法是,把在QTP时实现比较困难的功能,先在.net下写一个针对于自动化的库,然后通过上面的做法来引用自己写的库,就可以实现很多功能...
    ...
    ...
    ...
    有了对.net 的支持,就不会说XXX功能在QTP下无法实现,因为编程.net可以,所以QTP可以
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    6#
    发表于 2009-3-12 11:11:41 | 只看该作者
    这个功能通过DLL文件的调用应该更好,要不然,你就要一本CSDN的作为参考了。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-7-4 15:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    5#
     楼主| 发表于 2009-3-11 09:31:39 | 只看该作者
    3楼正解。2楼朋友可以参考这个地址
    http://msdn.microsoft.com/zh-cn/library/system.io.file(VS.80).aspx
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2009-3-10 23:49:13 | 只看该作者

    这不是告别,我称之为Enhancement.

    这不是告别,我称之为Enhancement.

    看来有此想法的不止我一个啊,同道中人!

    多向你学习。

    至于楼上说的研究那么细,有能力当然是好。

    [ 本帖最后由 kakamissyou 于 2009-3-10 23:51 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2009-3-10 19:05:11 | 只看该作者

    回复 1# 的帖子,标题不对,其实仍然是对COM的封装

    感觉实际仍然是用VBScript支持的CreateObject封装完成,可以用Oleview.exe来查看本机已注册的COM对象。
    把楼主的脚本头一个例子改为:
    CreateObject("System.IO.File")也是能work的,解释见http://technet.microsoft.com/zh- ... eyscriptingguy.aspx

    System.IO.File
    可以用Visual studio新建C#工程,使用using System.IO.File找到。

    http://www.sqaforums.com/showflat.php?Number=372206
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2#
    发表于 2009-3-10 16:48:55 | 只看该作者
    高手啊。
    不过我一直有个疑问,使用DotNetFactory可以调用自己写好的.NET类,但是DotNetFactory.CreateInstance("System.IO.File", "")
    中的参数“System.IO.File”我应该去哪里找呢?是不是有什么资料啊?
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-8 23:04 , Processed in 0.062412 second(s), 26 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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