多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

QTP中使用自定义vbs类-自动化测试

更新时间:2022-05-12 09:03:50 作者:多测师 浏览:57

  发现直接在resource中加载含有calss的vbs文件,QTP无法识别类,导致脚本中无法new类对象。

QTP中使用自定义vbs类-自动化测试

  解决办法有四种:

  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中引用此函数库

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

  Set 实例名 = New 类名

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

  Set eom = new ExcelClass

  eom.t1

  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

  以上内容为大家介绍了自动化测试中的QTP中使用自定义vbs类,本文由多测师亲自撰写,希望对大家有所帮助。了解更多自动化测试相关知识:https://www.aichudan.com/xwzx/

联系电话

17727591462

返回顶部