51Testing软件测试论坛

标题: QTP告别COM编程(转) [打印本页]

作者: peterz    时间: 2009-3-10 15:42
标题: QTP告别COM编程(转)
现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可以
作者: xhhuang1618    时间: 2009-3-10 16:48
高手啊。
不过我一直有个疑问,使用DotNetFactory可以调用自己写好的.NET类,但是DotNetFactory.CreateInstance("System.IO.File", "")
中的参数“System.IO.File”我应该去哪里找呢?是不是有什么资料啊?
作者: shanxi    时间: 2009-3-10 19:05
标题: 回复 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
作者: kakamissyou    时间: 2009-3-10 23:49
标题: 这不是告别,我称之为Enhancement.
这不是告别,我称之为Enhancement.

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

多向你学习。

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

[ 本帖最后由 kakamissyou 于 2009-3-10 23:51 编辑 ]
作者: peterz    时间: 2009-3-11 09:31
3楼正解。2楼朋友可以参考这个地址
http://msdn.microsoft.com/zh-cn/library/system.io.file(VS.80).aspx
作者: heqingbluesky    时间: 2009-3-12 11:11
这个功能通过DLL文件的调用应该更好,要不然,你就要一本CSDN的作为参考了。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2