方式1:Executefile
方式2:加到QTP的Resorece
方式3:ExecuteGlobal方法
在比较之前先简明叙述一下使用方法,以给初学者由浅入深的理解
比如我们有一个函数Terry.vbs放在了C:盘下, 其中有如下函数(获取本机的IP地址):
Function GetIPAddr()
Set bjWMI = GetObject("winmgmts://./root/cimv2")
Set colIP = objWMI.ExecQuery("Select * from
Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
For Each IP In colIP
temp = IP.IPAddress(0)
Exit For
Next
GetIPAddr = temp
End Function
|
方式1的使用方法:
直接在QTP中打:
Executefile "c:\Terry.vbs"
随后就可以引用wally.vbs中的任意函数了,如 msgbox GetIPAddr()
方式2的使用方法:
点击QTP菜单的File->Settings->Resources,之后添加Terry.vbs到QTP的resource中
随后就可以引用Terry.vbs中的任意函数了,如 msgbox GetIPAddr()
方式3的使用方式:
ExecuteGlobal是VBS的函数而非QTP特有的函数,ExecuteGlobal的功能可以引入其它vbs文件的函数,就和C++的include,Java的import一样。使用范例:
dim fso : set fso =
createobject("scripting.filesystemobject")
executeglobal
fso.opentextfile("c:\Terry.vbs", 1).readall
set fso = nothing
大家可以看到其实它是把Terry.vbs全部读入内存中
随后就可以引用Terry.vbs中的任意函数了,如 msgbox GetIPAddr()
下面是一些我使用中的心得:
方式1:Executefile的好处:
QTP可以使用这个函数方便了自己写语句来引入函数,灵活性非常高
方式1:Executefile的缺点和解决方案:
1.会使得QTP的语句执行的黄色指针工作异常,狂跳
2.Debug很头疼。我以前的上周有一段经历,一个很小的Bug,调试的时候Step into不进正确的函数体,竟然跳到了一行空行。后来这个小Bug竟然足足花了我3整天的时间。这个应该是QTP的Bug,希望它后续的版本可以改进
3.会莫名其妙的执行一些本不应该有的操作,大大降低QTP执行时间效率,之间屏幕在闪,但是不知道在执行些什么。我曾经遇到过这样的情况:任其自然执行,屏幕狂闪,执行了半小时;我单步执行,只花了5分钟执行完毕。可见这会使得原本就受质疑的QTP的Performance更受谴责
解决方案:
以上三点我找不出解决方案,属于Hp的严重Bug还是需要HP来完善
方式2:加到QTP的Resorece的好处:
毕竟是QTP自带的引用外部VBS函数的,非常稳定
方式2:加到QTP的Resorece的缺点和解决方案:
灵活程度大打折扣,经常的情况是使用同一个测试框架对于不同的项目需要引入不同的VBS文件,非常不灵活
解决方案:
不过这也是有方法可以解决的:在外部调用AOM的函数中添加:
Set bj =
CreateObject("QuickTest.Application")
Set qtLibraries = obj.Test.Settings.Resources.Libraries
' Get the libraries collection object
If qtLibraries.Find("C:\Terry.vbs") = -1 Then
qtLibraries.Add "C:\Terry.vbs", 1
End If
|
这样子就可以通过外部文件调用QTP对象模型来加载指定的VBS,也可以非常灵活
方式3:ExecuteGlobal方法的优势:
1.自己写代码,非常灵活
2.外部函数由于从内存中读取,避免了I/O,执行速度加快,而且通过这个方法调用其它文件函数非常稳定
方式3:ExecuteGlobal方法的缺点:
1.一下子把可能需要用到的VBS文件全部读入内存,势必会增加内存开销
2.Debug时候Step into不到指定的函数,调试不方便
解决方案:
对于1的解决方案的答案是没有解决方案,因为采取了ExecuteGlobal方法后内存开销增大是不可避免的。但是这点内存对于运行QTP来说并不是个不可承受的内存,微不足道
对于2的解决方案其实可以在需要调试的时候手工加入到QTP专家视图窗口,调试完毕后再采用ExecuteFile调用
事实上如果要我排个序的话我的优先顺序是:
方式2:加到QTP的Resorece >>方式3:ExecuteGlobal>> 方法方式1:Executefile
分享到:
相关推荐
下面将详细解释如何使用`Extern.Declare`来加载和调用外部文件,并讨论其相关参数和使用技巧。 `Extern.Declare`函数是QTP提供的一个声明机制,用于调用Windows API或者其他非托管代码(如C或C++编译的DLL)。该...
DataTable是QTP中另一种强大的参数化手段,它允许测试人员将测试数据存储在外部文件中,如Excel或CSV文件。这样,同一测试脚本可以使用不同的数据集运行,大大提高了测试的灵活性和覆盖率。使用DataTable时,通常...
### QTP调用外部动态库的方法详解 #### 引言 在软件测试领域,自动化测试已成为提高测试效率和质量的关键手段。Mercury公司的QuickTest Professional(QTP),凭借其强大的功能和用户友好的界面,成为了自动化测试...
9. **调用Windows API**:QTP可以调用Windows API函数,扩展其功能,例如文件操作、系统交互等。 10. **Action调用与参数化**:Action是QTP中的可重用测试模块,可以带参数调用,实现模块化测试设计。 11. **对象...
- **用途**: 适用于从外部文件中读取测试数据的情况。 #### 7. `FunctionMakeString(inputlength)` - **功能**: 生成指定长度的随机字符串。 - **参数**: - `inputlength`: 字符串的长度。 - **用途**: 用于测试...
QTP(QuickTest Professional)是HP公司推出的一种自动化测试工具,主要用于功能测试和回归测试。它基于VBS(Visual Basic Script)语法,能够录制并回放用户在应用程序上的操作,实现对软件功能的自动化测试。在这...
17. **QTP Plus**:QTP Plus是一些第三方工具或插件,扩展了QTP的功能,如自动化测试报告生成。 18. **键盘模拟**:通过函数模拟键盘事件,实现对应用程序的交互操作。 19. **测试报告**:了解如何自定义和生成...
- **数据表**:QTP中的数据表可以链接到外部数据源,实现测试用例和数据的分离,提高测试的灵活性和可复用性。 6. **事务**: - **事务**:用于测量整个操作的时间,例如登录过程或页面加载时间,帮助评估系统...
2. **录制与回放**:QTP提供了一种简单的方法来创建测试脚本,即录制用户在应用程序上的操作,然后回放这些操作以执行测试。这种方式便于快速创建测试脚本,但可能需要后期优化以提高脚本的健壮性。 3. **脚本语言*...
3. **函数库**:QTP提供了丰富的内置函数,用于脚本编程,如检查点、设置值、同步等。 4. **数据驱动测试**:利用外部数据源(如Excel)驱动测试,实现参数化测试。 5. **Keyword View 和 Expert View**:两种不同的...
数据驱动测试是一种测试策略,其中测试案例的输入数据来源于外部文件,如Excel。QTP支持数据驱动测试,允许将测试数据从Excel导入并驱动测试执行。 **4. QTP场景恢复** 在测试过程中遇到异常时,QTP的场景恢复功能...
- **概念介绍**:数据驱动测试是一种自动化测试方法,其中测试脚本依赖于外部数据源执行测试用例。构建有效的数据框架对于提升自动化测试的效率至关重要。 - **核心要点**: - 数据源管理:确保测试数据的准确性和...
- QTP支持数据驱动测试,即测试用例的数据来源于外部文件(如Excel)。这有助于实现参数化测试,提高测试覆盖率。 5. **事务管理**: - 用于测量特定操作的时间性能,例如网页加载时间。在脚本中正确设置事务边界...
【QTP(QuickTest Professional)】是HP公司推出的一种功能强大的自动化测试工具,主要用于软件功能自动化测试。QTP采用录制、回放和脚本编辑的方式,适用于多种应用程序,包括Web、Windows、Java等。该工具支持多种...
6. **数据驱动测试**:QTP支持数据驱动测试,可以从外部数据源(如Excel文件)读取测试数据,实现同一脚本对不同数据的多次测试。 7. **事务管理**:QTP允许定义事务,用于衡量特定操作的性能,例如页面加载时间。 ...
- CAF允许使用外部文件来存储配置信息、数据等,以提高灵活性和可配置性。 #### 五、架构和设计概念 ##### 3.1 CSL (CAF Services Linker) - **初始化**:初始化阶段负责设置CAF的基本环境。 - **locInit**:定义...
3. **获取并安装QTP文件**:可通过公司内部的测试中心FTP服务器下载QTP9.0的安装文件,地址为`ftp://10.10.72.18/测试工具/MercuryTools/QuickTestPro/QTP9.0/`,支持匿名访问。 - **脚本调试器版本选择**:根据...