QTP中使用自定义vbs类

 发现直接在resource中加载含有calss的vbs文件, QTP无法识别类,导致脚本中无法new类对象。
   解决办法有四种:
  1、直接在action脚本中定义类,然后action中任何地方都可以实例化类
  2、用executefile引入类定义文件,然后action中任何地方都可以实例化类
  3、在function lib中定义类,并实例化类,然后再action中直接使用类实例
  4、在function lib中定义类,并定义一个实例化类的函数,然后再action中调用该函数对类进行实例化
  补充:第四种实现方法如下:
  把vbs文件加载到Resources中后,我用以下方法绕过QTP不识别导入的vbs文件中的类的问题。
   在放置class(类)的vbs文件中,放置以下函数:
------------------------------------------------------------------------------------------------------------------
'
'* 功能:由于QTP不识别导入的VBS文件中的类,因此定义此函数来返回相应的对象
'* 输入参数:className  :要建立对象的类名
'* 返回值:返回类对象
'* 编写人:  chenyb
'* 编写日期:2008-10-16
'* 其他说明:以下只是方法,根据需要再扩展
'
Public Function newClass(className)
Dim strSentence,obj
strSentence = strSentence & "set obj = New " & className '创建对象
Execute strSentence  '执行字符串语句
Set newClass = obj   '返回对象
End Function
   参考QTP下vbs伪类构造器的设计:
  有一段时间没上博客了,不过博客还是不能拖呢,每每在我快要放弃的时候总会有许多网友在告诉我该更新了,我们等着你的讲座,虽然讲座写到后来已经有些疲倦,但有了你们的支持,我还会一直继续,讲座还会一直继续。
  进入正题,今天要讲的内容与VBS类关联比较密切,在看本次讲座之前建议大家首先熟悉一下类的组成, 这样对于 学习本次讲座内容会比较轻松。如果平时在 自动化测试过程中经常使用类的朋友应该会清楚,在Resources中引用带有类的vbs函数库之后,是不可以直接在QTP脚本编辑器中直接进行类的初始化的。具体我们来看下例子。
   1.首先我们编写一个vbs函数库,脚本如下:
Class ExcelClass
Sub t1()
MsgBox "t1"
End Sub
Sub t2()
MsgBox "t2"
End Sub
End Class
2.在QTP的File --> Settings --> Resources中引用此函数库


   4.那么对于以上这种情况,我们一般所采用的方式是在函数库中建立一个函数,让此函数返回这个类的实例化。
Class ExcelClass
Sub t1()
MsgBox "t1"
End Sub
Sub t2()
MsgBox "t2"
End Sub
End Class
'定义ExcelClass的无参构造
Function NewExcelClass
Set NewExcelClass = new ExcelClass
End Function
   5. 接着在QTP脚本编辑区中直接把这个函数返回就可以使用了
Set eom  = NewExcelClass
eom.t1
   思考:
  是否可以按照如图所示的方式把New ExcelClass作为函数名进行编写呢,这样我们就可以直接在QTP脚本区中进行new一个类出来,是不是更加直观呢,这一块我们会留到下一讲进行讲解。
   总结:
  这一讲内容比较基础,主要还是为了照顾一些新人,下一讲我们会继续深入讲解类构造器,主要会涉及到带参构造器的设计模式,请大家期待。

最新内容请见作者的GitHub页:http://qaseven.github.io/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值