可能是一个精彩的故事——QTP 似乎无缘无故地浪费了你的工作时间:
考虑这个脚本,其中的数据表只有一个全局行,有 26 列,名为“A”到“Z”,填充了任意值:
Print "Started"
Services.StartTransaction "Simpletest"
Set G=DataTable.GetSheet ("Global")
For J=1 to 26
For I=1 to 100
Set P=G.GetParameter (Chr (J+64))
If P.Value = "Hi" Then
End If
Next
Next
Services.EndTransaction "Simpletest"
Print "Ended"
在 QTP 10 下执行此操作需要15.1秒在我的冲击波上。 (当然,动画运行已关闭。)
现在,我使用 QTP 的 bin 文件夹中的 mmdrv.exe 执行此操作,为其提供参数“-usr ''”,其中包含 QTP 测试 .usr 文件的全名。
这需要0.07秒.
你好?性能提升了 215 倍,但功能相同。怎么会?
我正在这里挖掘,因为我们用 QTP 数据表做了一些奇怪的事情,并且在 QTP 下面临严重的性能问题。我相信已经找到了 DataTable.GetSheet 和 DTSheet.GetParameter 属性/方法的原因。
现在我看到用于在 LoadRunner 场景中执行 QTP 测试的 MMDRV 没有这种性能损失,我想知道以下问题:
- 是否有访问 xls 文件的 1:1 替代方案?
- Ex-Mercury/HP 的人难道不应该注意到 QTP 下的数据表访问是very效率低下,如 MMDRV.EXE 所示,并对此采取措施?
- 据我所知,所有其他 QTP 功能在 MMDRV 和 QTP 下的速度都相当。有人能承认这一点吗?
*还有其他人知道这件事吗?
感谢您的任何回复,无论它们有多么令人不安。
* 更新 *使用 QTP 隐形执行需要 1.54 秒。正如答案之一所述,仅通过隐藏 QTP 即可实现 10 倍的改进。叹。
我们在使用 QTP 时也遇到了同样的性能问题。经过调查,我们将问题集中在两个方面。
我们发现QTP隐藏时运行速度快5-6倍
我们制作了一个小脚本来在开发/调试时切换 QTP 可见性(因为您始终可以强制 QTP 在远程代理设置中隐藏)
'该脚本用于显示/隐藏QTP窗口
'QTP 隐藏时运行速度更快
Dim qtApp
Set qtApp = CreateObject("QuickTest.Application")
qtApp.Launch ' Start QuickTest
If qtApp.Visible = False Then ' Make the QuickTest application invisible/visible
qtApp.Visible = True
Else
qtApp.Visible = False
End If
您能否分享一下缓存数据表的想法,因为我们正在考虑开发相同的机制,并且看到这样的示例将会受益匪浅。
亲切的问候,
阿什拉夫
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)