发现直接在resource中加载含有calss的vbs文件,QTP无法识别类,导致脚本中无法new类对象。
解决办法有四种:
1、直接在action脚本中定义类,然后action中任何地方都可以实例化类
2、用executefile引入类定义文件,然后action中任何地方都可以实例化类
3、在function lib中定义类,并实例化类,然后再action中直接使用类实例
4、在function lib中定义类,并定义一个实例化类的函数,然后再action中调用该函数对类进行实例化
补充:第四种实现方法如下:
有一段时间没上博客了,不过博客还是不能拖呢,每每在我快要放弃的时候总会有许多网友在告诉我该更新了,我们等着你的讲座,虽然讲座写到后来已经有些疲倦,但有了你们的支持,我还会一直继续,讲座还会一直继续。
进入正题,今天要讲的内容与VBS类关联比较密切,在看本次讲座之前建议大家首先熟悉一下类的组成, 这样对于学习本次讲座内容会比较轻松。如果平时在自动化测试过程中经常使用类的朋友应该会清楚,在Resources中引用带有类的vbs函数库之后,是不可以直接在QTP脚本编辑器中直接进行类的初始化的。具体我们来看下例子。
1.首先我们编写一个vbs函数库,脚本如下:
2.在QTP的File --> Settings --> Resources中引用此函数库
3.我们知道创建一个类的实例方法是通过以下方式来进行的
此时如果直接在QTP中进行创建类的话会直接报错:
4.那么对于以上这种情况,我们一般所采用的方式是在函数库中建立一个函数,让此函数返回这个类的实例化。
思考:
是否可以按照如图所示的方式把New ExcelClass作为函数名进行编写呢,这样我们就可以直接在QTP脚本区中进行new一个类出来,是不是更加直观呢,这一块我们会留到下一讲进行讲解。
这一讲内容比较基础,主要还是为了照顾一些新人,下一讲我们会继续深入讲解类构造器,主要会涉及到带参构造器的设计模式,请大家期待。