performance - QTP 数据表操作*极其*慢(在 MMDRV 批处理执行器下好多了)?

标签 performance datatable qtp

可能是一个精彩的故事——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 下在我的blaster 上执行此操作需要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 下的数据表访问效率非常低效(如 MMDRV.EXE 所示),并对此采取措施吗?
  • 据我所知,所有其他 QTP 功能在 MMDRV 和 QTP 下的速度都相当。有人能承认这一点吗? *还有其他人知道这件事吗?

感谢您的回复,无论它们有多么令人不安。

* 更新 * 在 QTP 不可见的情况下执行需要 1.54 秒。正如答案之一所述,仅通过隐藏 QTP 即可实现 10 倍的改进。叹息。

最佳答案

我们在使用 QTP 时也遇到了同样的性能问题。经过调查,我们将问题集中在两个方面。

  • 数据表(糟糕的性能)
  • 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

您能否分享一下缓存数据表的想法,因为我们正在考虑开发相同的机制,并且如果看到这样的示例将会受益匪浅。

亲切的问候, 阿什拉夫

关于performance - QTP 数据表操作*极其*慢(在 MMDRV 批处理执行器下好多了)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6859323/

相关文章:

MySQL索引导致查询变慢

testing - 我们可以使用 UFT 12.0 自动测试 .apk(Android) 应用程序吗

testing - UFT 未在某些播放中识别窗口

performance - Spark Map(func).cache 慢

performance - 当给定迭代次数和总时间时,如何找到算法的时间复杂度?

android - java.lang.RuntimeException : double ID 错误

vb.net - 为什么说从 Web 服务返回 DataTables 特别糟糕?

apache-flex - 将自动化库添加到 AIR 项目时找不到 Automation_agent 和 qtp_air 资源包

java - 使用 JProfiler 优化 JVM

javascript - 表重新排列后,js 数据表排序错误