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函数库,脚本如下:

  1. Class ExcelClass  
  2.     Sub t1()  
  3.         MsgBox "t1"  
  4.     End Sub  
  5.       
  6.     Sub t2()  
  7.         MsgBox "t2"  
  8.     End Sub  
  9. End Class  

2.在QTP的File --> Settings --> Resources中引用此函数库


3.我们知道创建一个类的实例方法是通过以下方式来进行的

  1. Set 实例名 = New 类名  

此时如果直接在QTP中进行创建类的话会直接报错:

  1. Set eom  = new ExcelClass  
  2. eom.t1  

4.那么对于以上这种情况,我们一般所采用的方式是在函数库中建立一个函数,让此函数返回这个类的实例化。

  1. Class ExcelClass  
  2.     Sub t1()  
  3.         MsgBox "t1"  
  4.     End Sub  
  5.       
  6.     Sub t2()  
  7.         MsgBox "t2"  
  8.     End Sub  
  9.       
  10. End Class  
  11.   
  12. '定义ExcelClass的无参构造  
  13. Function NewExcelClass  
  14.    Set NewExcelClass = new ExcelClass  
  15. End Function  

5. 接着在QTP脚本编辑区中直接把这个函数返回就可以使用了

  1. Set eom  = NewExcelClass  
  2. eom.t1  


思考:

是否可以按照如图所示的方式把New ExcelClass作为函数名进行编写呢,这样我们就可以直接在QTP脚本区中进行new一个类出来,是不是更加直观呢,这一块我们会留到下一讲进行讲解。



总结:

这一讲内容比较基础,主要还是为了照顾一些新人,下一讲我们会继续深入讲解类构造器,主要会涉及到带参构造器的设计模式,请大家期待。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值