外部VBS的调用

简介: 一.QTP调用外部VBS的方法 加到QTP的Resource中 在QTP菜单中设置, 菜单FileàSettingsàResource,将要加载的VB脚本添加进来。   举例: 步骤1:在D盘下新建一个VBS文件,叫“ test.

一.QTP调用外部VBS的方法

加到QTPResource

QTP菜单中设置, 菜单FileàSettingsàResource,将要加载的VB脚本添加进来。

 

举例:

步骤1:在D盘下新建一个VBS文件,叫“ test.vbs”,脚本内容如下:

Function fun(a, b)

fun=a+b

End Function

步骤2:在QTP 里新建一个Test, 叫“Test1“,点击菜单FileàSettingsàResource,将要加载的VB脚本“ test.vbs加进来

 

步骤3:在脚本里调用这个函数:

msgbox "1+2= &fun(1,2)

 

运行结果:

使用QTP函数ExecuteFile

通过ExecuteFile方法将要加载的VBS脚本加载进来。

语法:ExecuteFile  “Filename”

参数说明:Filename-是要执行的文件的名称,包括文件路径。最好用绝对路径。

 

举例:

步骤1:在D盘下新建一个VBS文件,叫“ test.vbs”,脚本内容如下:

Function fun(a, b)

fun=a+b

End Function

步骤2:在QTP里加载这个VBS脚本:

executefile "D:\test.vbs"

步骤3:在脚本里调用这个函数:

msgbox "1+2= &fun(1,2)

 

运行结果:

使用VBS函数ExecuteGlobal

ExecuteGlobalVBS的函数而非QTP特有的函数,ExecuteGlobal的功能可以引入其它vbs文件的函数

语法:ExecuteGlobal statement 

参数说明:statement-可以是一段函数体或一个字符串变量

 

举例:

步骤1:在D盘下新建一个VBS文件,叫“ test.vbs”,脚本内容如下:

Function fun(a, b)

fun=a+b 

End Function

步骤2:在QTP里加载这个VBS脚本:

dim fso : set fso = createobject("scripting.filesystemobject")

executeglobal fso.opentextfile("D:\test.vbs ", 1).readall

set fso = nothing

步骤3:在脚本里调用这个函数:

msgbox "1+2= &fun(1,2)

 

运行结果:

3种方法的优缺点

方法一:加到QTPResource中。 优点:是QTP自带的引用外部VBS函数的方法,非常稳定,同一个测试脚本的所有action都可以调用;缺点:不够灵活,经常的情况是使用同一个测试框架对于不同的项目需要引入不同的VBS文件。

 

方法二:使用QTP函数ExecuteFile。优点:灵活性好,方便自己写语句来引入函数;缺点:只能被当前的action调用,不能垮action调用,调试时黄色指针跳动混乱。

 

方法三:使用VBS函数ExecuteGlobal。优点:1.自己写代码,非常灵活

2.外部函数由于从内存中读取,避免了I/O,执行速度加快,而且通过这个方法调用其它文件函数非常稳定;缺点:一下子把可能需要用到的VBS文件全部读入内存,势必会增加内存开销。

实践

分别以导入文件的方式和使用ExecuteFile的方式关闭所有的浏览器和记事本

导入文件的方式

步骤1:新建脚本文件,另存为scritp.vbs 

脚本如下:

Sub CloseIE()

   systemutil.CloseProcessByName("IEXPLORE.EXE")

End Sub

Sub CloseNotepad()

   systemutil.CloseProcessByName("Notepad.exe")

End Sub

File-->Settings-->Resources“Associated function libraries”

 步骤二:导入该文件

可以使用绝对路径,也可以使用相对路径,建议使用相对路径,如下图

 

步骤三:在QTP的专家视图中输入如下语句,执行,发现QTP把所有的浏览器和记事本都关闭了。

CloseIE()

CloseNotepad()

ExecuteFile的方式

步骤一:同上

步骤二:

executefile "..\script.vbs"

CloseIE()

CloseNotepad()

总结

在写VBS脚本时,为了避免语法错误.可以先在QTP里编写脚本,运行通过了,再保存成外部VBS脚本。

新建VBS脚本时,先新建一个文本文件,再将其后缀改成.VBS,注意,要先将文件的扩展名显示出来:工具à文件夹选项à查看, 把“隐藏已知文件类型的扩展名 ”的勾去掉。

否则, 文件的类型还是.txt的, 运行脚本时会提示“找不到文件”。

技术改变世界! --狂诗绝剑
目录
相关文章
|
C#
C# 调用外部exe,且带参数
C# 调用外部exe,且带参数
711 0
|
Shell C#
C#使用Process打开外部程序或外部文件的使用总结
执行一个外部的第三方应用的原理,和调用cmd执行命令是一样的,只不过可以添加程序的启动参数(`StartInfo.Arguments`)等。调用第三方应用,在其启动后,关于程序的操作、处理、是否...
1441 0
C#使用Process打开外部程序或外部文件的使用总结
vbs操作IE对象
Dim fso,filepath,i 'Dim ExcelBook,ExcelSheet,MyExcelBook,MyExcelSheet Dim ie Set ie=WScript.CreateObject("internetexplorer.
974 0
|
JavaScript Shell Windows
在silverlight中打开调用外部程序的几种方式
原文 http://www.cnblogs.com/subway-2008/archive/2010/08/15/1799949.html 在silverlight中调用外部程序的几种方法总结如下: 1.silverlight不支持oob模式的时候,silverlight调外部应用程序只能通过activex来实现。
933 0
C#中调用PowerShell代码
在C#中调用PowerShell代码,很多时候Add是不好使的!要用AddScript!记录一下!        using (Runspace runspace = RunspaceFactory.
1397 0
VBS 脚本对象
Dictionary对象(1) 1.        属性: a)        compareMode b)       count c)        key d)       item 2.
748 0