51Testing软件测试论坛

标题: QTP 调用function的改写 [打印本页]

作者: 1316016    时间: 2010-12-13 18:12
标题: QTP 调用function的改写
本帖最后由 1316016 于 2010-12-17 11:13 编辑

一般情况下,如果某function不存在,QTP则会直接报错并终止操作。

QTP是否有开接口,重写此操作呢? 如果function不存在,则将function所在的vbs自动加载,然后再次判断是否存在? function名和vbs名字和路径的关联,是已经准备好的..
作者: 1316016    时间: 2010-12-14 10:32
??
作者: 1316016    时间: 2010-12-16 18:08
这个..没有吗?
作者: 1316016    时间: 2010-12-17 11:13
这个没有人遇到吗
作者: lantianwei    时间: 2010-12-17 15:00
override QTP肯定是不支持的 可以考虑用出错处理来实现 即当出错时就进行加在VBS文件 只是思路 QTP好久不用 可行性不知
作者: 1316016    时间: 2010-12-21 14:36
出错处理? 可以捕获到这个异常吗? 然后想recovery一样做吗?
作者: 1316016    时间: 2010-12-30 13:57
???
作者: hsjzfling    时间: 2010-12-31 10:44
lz的想法很有趣啊,就算是能改写,那也要加载该改写的代码吧,function你都懒得去加载,何况是还要额外加载个重写的代码
作者: lantianwei    时间: 2010-12-31 10:47
正如LS所说,LZ的思路确实有点怪 你为何不一次性全部加载所要的类库呢?
作者: lyscser    时间: 2010-12-31 23:36
Dim QTPQTPApplicationlication
Set QTPApplication = CreateObject("QuickTest.QTPApplicationlication")
QTPApplication.Launch
QTPApplication.Visible = True

With QTPApplication.Test.Settings
        .Launchers("Web").CloseOnExit = True
        .Launchers("Windows QTPApplicationlications").Active = False
        .Launchers("Windows QTPApplicationlications").QTPApplicationlications.RemoveAll
        .Launchers("Windows QTPApplicationlications").RecordOnQTDescendants = False
        .Launchers("Windows QTPApplicationlications").RecordOnExplorerDescendants = False
        .Launchers("Windows QTPApplicationlications").RecordOnSpecifiedQTPApplicationlications = False

        With .Run
                .IterationMode = "rngAll"
                .StartIteration = 1
                .EndIteration = 1
                .ObjectSyncTimeOut = 30000
                .DisableSmartIdentification = True
                .OnError = "Stop"
        End With

        With .Resources
                .DataTablePath = "<Default>"
                .Libraries.RemoveAll
                .Libraries.Add("E:\MyATProjects\System_001\Function\fileOper.vbs")
                .Libraries.Add("E:\MyATProjects\System_001\Function\ErrorHandle.vbs")
                .Libraries.Add("E:\MyATProjects\System_001\Function\qc_field_modify_test.vbs")
        End With
End With

QTPApplication.Test.Environment.LoadFromFile "E:\MyATProjects\System_001\Environment\MyEnv.xml"
作者: 1316016    时间: 2011-1-6 11:03
正如LS所说,LZ的思路确实有点怪 你为何不一次性全部加载所要的类库呢?
lantianwei 发表于 2010-12-31 10:47



   我们当前的操作方式就是一次性导入所有的vbs在QTP9.2中,vbs和函数很多,升级到QTP10后,如果继续全部导入的化,QTP性能很慢,运行好久,甚至卡死....

是不是QTP 10的树形结构很耗内存?是否有其他配置修改?
作者: wugecat    时间: 2011-1-6 11:19
你这种可以实现,但是没必要判断function的存在,将方法和文件名保存然后实现动态加载想要的就行了
作者: zzxxbb112    时间: 2011-1-6 16:28
可以利用函数指针字符化函数名并结合wugecat说的方法即可解决问题
作者: 1316016    时间: 2011-5-6 18:03
函数指针字符化函数名? 这个vbs也可以吗? 有代码吗?
作者: zzcheng0414    时间: 2011-12-28 16:19
强烈关注此贴。
我也有类似需求,希望将vbs中的函数名称和参数写到EXCEL中,在用excle做案例的时候使用做校验函数名称的有效性。
作者: zzcheng0414    时间: 2011-12-28 16:19
强烈关注此贴。
我也有类似需求,希望将vbs中的函数名称和参数写到EXCEL中,在用excle做案例的时候使用做校验函数名称的有效性。
作者: lifr    时间: 2012-1-10 21:16
强烈关注此贴。
我也有类似需求,希望将vbs中的函数名称和参数写到EXCEL中,在用excle做案例的时候使用做校 ...
zzcheng0414 发表于 2011-12-28 16:19


你的需求用 动态执行 可以解决。

好像是 Execute 关键字。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2