== 动态函数库加载的两种方式 ==
2011-11-10 07:23
267 查看
作者:zzxxbb112
时间:2011/11/9 版权所有,侵权必究。
出处:http://blog.csdn.net/zzxxbb112
QTP函数库动态加载两种方式:
1. ExecuteFile - 动态调用VBS文件方式
2. LoadFunctionLibrary 动态调用函数方式 (QTP11最新加入的新函数)
实例1:
本例准备一个vbs函数库文件在c盘根目录,定义了两个函数,文件内容如下:
ExecuteFile:
dawadw
LoadFunctionLibrary :
当你在执行以上两种动态调用方式之后你会发现这两个执行结果是一模一样的,你完全看不出它们之间的区别在什么地方。那么 它们之间的区别究竟在哪里呢?
ExecuteFile VS [b]LoadFunctionLibrary ?[/b]
让我们来看几个例子:
实例2:
我们在QTP中使用快捷键Shift + Alt + O 打开函数库文件
在打开之后在如图位置设置断点,接着回到test主脚本编辑区
使用ExecuteFile方式:
'动态调用函数库ExecuteFile 方式
ExecuteFile "c:\iquicktest.vbs"
'调用函数库中的q1方法
Call q1
还是刚才的脚本同样执行一遍,你会发现使用ExecuteFile方式对于函数库文件调试无效[/u]
使用LoadFunctionLibrary方式:
'动态调用函数库LoadFunctionLibrary 方式 LoadFunctionLibrary "c:\iquicktest.vbs" '调用函数库中的q1方法 Call q1把ExecuteFile改成LoadFunctionLibrary后,执行脚本,你会发现可以正常的调试
脚本自动停留在了设置断点处。
那么第一局 LoadFunctionLibrary 以 1比0 暂时领先对象 ExecuteFile
实例3:
修改之前的函数库文件
class iquicktest
function q1
msgbox "iquicktest1"
end function
function q2
msgbox "iquicktest2"
end function
end class
Test主脚本区中输入以下脚本:
'动态调用函数库ExecuteFile 方式
ExecuteFile "c:\iquicktest.vbs"
'实例化函数库中的iquicktest类
Set qtp = new iquicktest
'调用iquicktest类中的q1方法
qtp.q1
结果:脚本执行完毕后顺利实例化函数库文件中的类,并调用了q1方法
而如果使用LoadFunctionLibrary方式则会报错:
分析:说明LoadFunctionLibrary根本不支持函数库中的类,因此此方法本身只能读取到函数,从名称上就能得知。
这一局是ExecuteFile赢了,最终双方还是打成了平手。
总结:本文通过简单的例子和大家一起分析了两种动态调用函数库方式的区别,其实两种方式没有谁好谁坏,只有适合和不适合,如果你的测试设计过程中需要使用到类,那么推荐你使用ExecuteFile方法,但是如果你使用的是纯函数库并没有类,那么LoadFunctionLibrary的调试功能能让更快的定位错误。
时间:2011/11/9 版权所有,侵权必究。
出处:http://blog.csdn.net/zzxxbb112
QTP函数库动态加载两种方式:
1. ExecuteFile - 动态调用VBS文件方式
2. LoadFunctionLibrary 动态调用函数方式 (QTP11最新加入的新函数)
实例1:
本例准备一个vbs函数库文件在c盘根目录,定义了两个函数,文件内容如下:
Function q1 msgbox "iquicktest1" End Function Function q2 msgbox "iquicktest2" End Function接着我们通过qtp的两种动态的调用方式分别来调用此函数库
ExecuteFile:
dawadw
'动态调用函数库ExecuteFile方式 ExecuteFile "c:\iquicktest.vbs" '调用函数库中的q1方法 Call q1
LoadFunctionLibrary :
'动态调用函数库LoadFunctionLibrary 方式 LoadFunctionLibrary "c:\iquicktest.vbs" '调用函数库中的q1方法 Call q1分析:
当你在执行以上两种动态调用方式之后你会发现这两个执行结果是一模一样的,你完全看不出它们之间的区别在什么地方。那么 它们之间的区别究竟在哪里呢?
ExecuteFile VS [b]LoadFunctionLibrary ?[/b]
让我们来看几个例子:
实例2:
我们在QTP中使用快捷键Shift + Alt + O 打开函数库文件
在打开之后在如图位置设置断点,接着回到test主脚本编辑区
使用ExecuteFile方式:
'动态调用函数库ExecuteFile 方式
ExecuteFile "c:\iquicktest.vbs"
'调用函数库中的q1方法
Call q1
还是刚才的脚本同样执行一遍,你会发现使用ExecuteFile方式对于函数库文件调试无效[/u]
使用LoadFunctionLibrary方式:
'动态调用函数库LoadFunctionLibrary 方式 LoadFunctionLibrary "c:\iquicktest.vbs" '调用函数库中的q1方法 Call q1把ExecuteFile改成LoadFunctionLibrary后,执行脚本,你会发现可以正常的调试
脚本自动停留在了设置断点处。
那么第一局 LoadFunctionLibrary 以 1比0 暂时领先对象 ExecuteFile
实例3:
修改之前的函数库文件
class iquicktest
function q1
msgbox "iquicktest1"
end function
function q2
msgbox "iquicktest2"
end function
end class
Test主脚本区中输入以下脚本:
'动态调用函数库ExecuteFile 方式
ExecuteFile "c:\iquicktest.vbs"
'实例化函数库中的iquicktest类
Set qtp = new iquicktest
'调用iquicktest类中的q1方法
qtp.q1
结果:脚本执行完毕后顺利实例化函数库文件中的类,并调用了q1方法
而如果使用LoadFunctionLibrary方式则会报错:
分析:说明LoadFunctionLibrary根本不支持函数库中的类,因此此方法本身只能读取到函数,从名称上就能得知。
这一局是ExecuteFile赢了,最终双方还是打成了平手。
总结:本文通过简单的例子和大家一起分析了两种动态调用函数库方式的区别,其实两种方式没有谁好谁坏,只有适合和不适合,如果你的测试设计过程中需要使用到类,那么推荐你使用ExecuteFile方法,但是如果你使用的是纯函数库并没有类,那么LoadFunctionLibrary的调试功能能让更快的定位错误。
相关文章推荐
- 【软件测试自动化-QTP系列讲座 44】== 动态函数库加载的两种方式 ==
- [原]【软件测试自动化-QTP系列讲座 44】== 动态函数库加载的两种方式 ==
- 使用web.xml方式加载Spring时,获取Spring context的两种方式
- Struts1.x加载Spring的两种方式
- js前端实现图片懒加载(lazyload)的两种方式
- Spring加载properties文件的两种方式
- Loading页的两种加载方式
- iOS 图片加载的两种方式
- 懒加载常用的两种方式
- 百度地图测加载的两种 方式 直接加载和异步加载
- php两种include加载文件方式效率比较
- 详解bootstrap的modal-remote两种加载方式【强化】
- ios 图片的两种加载方式
- 简单的两种Extjs formpanel加载数据的方式
- Android动画Animation的两种加载执行方式
- Spring加载properties文件的两种方式
- 页面加载JS两种方式
- 动态链接库dll的两种加载方式
- Python加载csv文件的两种方式
- Spring加载properties文件的两种方式