51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4646|回复: 6
打印 上一主题 下一主题

[原创] 如何在QTP中调用vbs脚本的类和函数

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-2-5 07:58:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的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)"
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 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也是一样的,你可以试试。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2010-2-5 09:33:06 | 只看该作者
在lib中加入实例化类的函数接口

例如

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



QTP中直接调用此函数并返回就可以获取实例
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2010-2-5 10:10:31 | 只看该作者
楼上正解,凡是有CLASS的,需要实例化下,QTP不直接认CLASS的
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 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
可是我实在不知道问题在哪儿了?
没有人帮我看看代码吗?
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2010-2-5 13:05:32 | 只看该作者
找到原因了。代码是对的,login.vbs脚本中CheckProperty属性需要括号,错误就报到了这一句:ExecuteFile "login.vbs"。多谢大家的方案!
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2011-6-22 19:36:49 | 只看该作者
受益匪浅啊,谢谢LZ
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-9-27 21:24 , Processed in 0.073457 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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