zoukankan      html  css  js  c++  java
  • 外部VBS的调用

    一.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: est.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: est.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的, 运行脚本时会提示“找不到文件”。

  • 相关阅读:
    字体下载大宝库:30款好看的免费英文字体
    jQuery Mapael – 呈现动态的矢量地图
    Qt:用 __thread 关键字让每个线程有自己的全局变量
    从C++到Qt(舍弃IDE或qmake、cmake等工具的束缚,尝试通过几个例子)
    C++11(及现代C++风格)和快速迭代式开发
    EventBus + Redis发布订阅模式
    并发、并行和高并发
    Span<T>和Memory<T>
    Lucene.Net做一个简单的搜索引擎-全文索引
    技术架构演变
  • 原文地址:https://www.cnblogs.com/jinjiangongzuoshi/p/3483070.html
Copyright © 2011-2022 走看看