在我们开发脚本的时候,发现有些脚本总是重复的出现在各个脚本中。那么我们是不是可以把这些脚本写成一个共享的function,放到一个共享的文件中?然后再给各个脚本调用呢?答案当然是肯定中。其实我在《QTP的一些小知识》中也提到了一个方法,就是利用ExecuteFile函数来调用.vbs文件。如:一个名为test.vbs的文件,我们只要在脚本中写上这么一句代码ExecuteFile("F:\test.vbs") ,就可以来直接执行这个.vbs文件了。
现在我再来介绍另一种方法,这种方法也是QTP本身所提供的。就是设置菜单选项“setting”中的"resource"选项来做到调用共享文件的效果。在"resource"选项中,有三种文件格式是可以被调用的,分别是*.sql;*.vbs;*.txt三种后缀文件。这里我用一个*.txt文件为例。
新建一个名为test.txt的文本文件,其保存内容如下:(注:保存的内容也必须合法)
Function writeorderno(orderno)
Dim fso, myfile
Set fso=CreateObject("scrīpting.FileSystemObject")
Set myfile=fso.openTextFile("C:\result1.txt",8,false)
myfile.writeline orderno
myfile.close
End Function
一个名为writeorderno的Function,其作用是把传进来的值写到C盘名为result1.txt的结果文件中去。(注:结果文件也是事先要准备好的)。共享文件准备完毕,那么就开始设置"resource"选项。打开“setting”窗口,找到"resource"选项。点击“+”的button。选择前面我们建好的文件。如下:
确定关闭窗口。我们就来试验一下,是不是这个共享文件里的Function能够被调用了。在QTP专家视图里写上这么几句代码:
Dim order
order=1
writeorderno order
接下去就按run执行试验,结果测试通过。虽然在脚本中根本没对writeorderno函数做说明,但是当QTP运行到这句代码的时候,在本脚本里没说明的情况下,自己会到"resource"选项里去找。结果QTP能正确识别这个writeorderno 函数。打开c盘里的 result1.txt的结果文件,发现传进函数的值1,被正确的写了进去。预示着整个调用共享文件的成功。
文章来源于领测软件测试网 https://www.ltesting.net/