solidedge 发表于 2010-2-5 07:58:58

如何在QTP中调用vbs脚本的类和函数

我的vbs脚本是这样的结构:
Class login
   Function login(Sheetname)
   ...
   End Function
   Function logout(Sheetname)
   ...
   End Function
End Class

我想在QTP中导入一个数据表,然后传给函数,我是这样写的,但是不成功,高手能帮忙改改吗?多谢了!
call DataTable.AddSheet(TestSheet)
call DataTable.ImportSheet(TestCaseExcelFile,1, TestSheet)

ExecuteFile "login.vbs"
Execute "Set objlogin = new login"
Execute "Call objlogin.login(TestSheet)"

topor 发表于 2010-2-5 09:10:45

我只写过VBS的function,方法如下:
   Function login(Sheetname)
   ...
   End Function
1.保存为login.vbs脚本
2.用QTP 创建一个test,在file->setting->Resource把这个vbs脚本加到Associated Function Libraries里面。
3.在QTP test中call login(Sheetname) 即可。
应该vbs class也是一样的,你可以试试。

zzxxbb112 发表于 2010-2-5 09:33:06

在lib中加入实例化类的函数接口

例如

function newClass()
    Set objlogin = new login
    set newClass=objlogin
end function



QTP中直接调用此函数并返回就可以获取实例

yujie6832 发表于 2010-2-5 10:10:31

楼上正解,凡是有CLASS的,需要实例化下,QTP不直接认CLASS的

solidedge 发表于 2010-2-5 11:28:16

我觉得我这段代码就是在用实例化对象:
ExecuteFile "login.vbs"
Execute "Set objlogin = new login"
Execute "Call objlogin.login(TestSheet)"

但是我现在在ExecuteFile "login.vbs"就停住了,给我的错误就是:
Expected end of statement
可是我实在不知道问题在哪儿了?
没有人帮我看看代码吗?

solidedge 发表于 2010-2-5 13:05:32

找到原因了。代码是对的,login.vbs脚本中CheckProperty属性需要括号,错误就报到了这一句:ExecuteFile "login.vbs"。多谢大家的方案!

hzr2006 发表于 2011-6-22 19:36:49

受益匪浅啊,谢谢LZ
页: [1]
查看完整版本: 如何在QTP中调用vbs脚本的类和函数