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

2023-12-12

可能是一个精彩的故事——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 可见/不可见

我们发现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(使用前将#替换为@)

QTP 数据表操作*极其*慢(在 MMDRV 批处理执行器下好多了)? 的相关文章

  • DataTable:通过 LINQ 或 LAMBDA 进行动态 Group By 表达式

    我有一个数据表 我想在其中对未指定数量的字段进行分组 发生这种情况的原因是用户可以选择他想要分组的字段 所以 实际上 我将选择推入列表中 在这个选择上 我必须对我的数据表进行分组 想象一下这段代码 VB 或 C 都一样 public voi
  • 以 UTF8 而不是 UTF16 输出 DataTable XML

    我有一个 DataTable 我正在使用 WriteXML 创建一个 XML 文件 尽管我在以 UTF 16 编码导出它时遇到问题 并且似乎没有明显的方法来更改它 我了解 NET 在字符串内部使用 UTF 16 这是正确的吗 然后 我通过
  • 循环内的局部变量会被垃圾收集吗?

    我想知道将循环内引用的任何变量放在循环外是否更有效 或者它们可以像函数内的变量一样被垃圾收集吗 var obj key val for var i 0 i lt 10 i console log obj or for var i 0 i l
  • jQuery - 提高处理 XML 时的选择器性能

    我正在处理一个 XML 文件 当使用 XPath 样式选择器选择节点时 该文件的性能非常慢 这是运行特别慢的部分代码 for i 0 i
  • 数据表“footerCallback”函数未在页脚中显示结果

    我尝试获取每列的总和并将结果显示在页脚中 我在用着 页脚回调 https datatables net reference option footerCallbackDatatables提供的功能 但是它在页脚中没有显示任何内容 数据表解释
  • iPhone 3GS 上的 ARM 与 Thumb 性能比较,非浮点代码

    我想知道是否有人有关于 iPhone 3GS 上 ARM 与 Thumb 代码性能的硬性数据 特别是对于非浮点 VFP 或 NEON 代码 我知道 Thumb 模式下的浮点性能问题 更大的 ARM 指令的额外代码大小是否会在某个时刻成为性能
  • R data.table 多个条件连接

    我设计了一种解决方案 用于从两个单独数据表的多个列中查找值 并添加基于新列的值计算 多个条件比较 代码如下 它涉及在计算两个表中的值时使用 data table 和联接 但是 这些表没有联接在我正在比较的列上 因此我怀疑我可能无法获得 da
  • linq2sql,存储库模式 - 如何从两个或多个表查询数据?

    我使用存储库模式 和 linq2sql 作为数据访问 并拥有例如 ProductsRep 和 CustomersRep 在非常简单的场景中 数据库有两个表 产品 产品 ID 客户 ID 产品名称 日期 和顾客 客户 ID 名字 姓氏 每个存
  • Android 性能:SharedPreferences 的成本

    当我的应用程序启动时 我使用分片首选项中的值填充容器类 这个想法是处理 SharedPreferences 和 PreferenceManager 一次 因为我猜它们很重 这是一个示例 SharedPreferences prefs Pre
  • C# 数据表来保存表格(无限嵌套)

    我相对较新C 但来自C C 背景 我需要一个类似于的数据类型 类 DataTable 但允许存储的列保存 简单 类型 int float boolean string 以及相同类型的数据 以便一个列可以保存另一个表 该表也具有存储表等的列
  • 为什么 Web Worker 性能在 30 秒后急剧下降?

    我正在尝试提高在网络工作人员中执行时脚本的性能 它旨在解析浏览器中的大型文本文件而不会崩溃 一切都运行得很好 但我注意到使用网络工作者时大文件的性能存在严重差异 于是我做了一个简单的实验 我在同一输入上运行脚本两次 第一次运行在页面的主线程
  • 在 C 中复制两个相邻字节的最快方法是什么?

    好吧 让我们从最明显的解决方案开始 memcpy Ptr const char a b 2 调用库函数的开销相当大 编译器有时不会优化它 我不会依赖编译器优化 但即使 GCC 很聪明 如果我将程序移植到带有垃圾编译器的更奇特的平台上 我也不
  • 过度使用委托对性能来说是一个坏主意吗? [复制]

    这个问题在这里已经有答案了 考虑以下代码 if IsDebuggingEnabled instance Log GetDetailedDebugInfo GetDetailedDebugInfo 可能是一个昂贵的方法 因此我们只想在调试模式
  • 对 data.table 中的列表列执行操作

    假设我有一个data table 例如dt lt data table foo list 1 3 4 6 bar c 2 7 如何使用 dt 框架对 foo 向量列表执行操作 操作可能是将 bar 添加到 foo 返回列表 3 5 11 1
  • 为 PostgreSQL 查询选择正确的索引

    简化表 CREATE TABLE products product no integer PRIMARY KEY sales integer status varchar 16 category varchar 16 CREATE INDE
  • 为什么n++执行速度比n=n+1快?

    在C语言中 为什么n 执行速度快于n n 1 int n n int n n n 1 我们的老师在今天的课堂上问了这个问题 这不是家庭作业 如果您正在开发一个 石器时代 编译器 的情况下 石器时代 n比n 比n n 1 机器通常有incre
  • 加快网络抓取速度

    我正在使用一个非常简单的网络抓取工具抓取 23770 个网页scrapy 我对 scrapy 甚至 python 都很陌生 但设法编写了一个可以完成这项工作的蜘蛛 然而 它确实很慢 爬行 23770 个页面大约需要 28 小时 我看过scr
  • 为什么在展开的 ADD 循环内重新初始化寄存器会使其运行速度更快,即使循环内有更多指令?

    我有以下代码 include
  • Javascript 定时通知 - setTimeout、setInterval

    我正在创建一个网络应用程序 允许用户管理日历 CRUD 事件 任务 提醒等 我正在尝试实现一个功能 他们将在事件 任务前 x 分钟收到弹出提醒 根据我的理解 使用 javascript 确实只有一种方法可以做到这一点 登录时 检查数据库中是
  • 将DataTable批量插入postgreSQL表中

    在 SQL 中 我们执行类似的操作来批量插入数据表 SqlBulkCopy copy new SqlBulkCopy sqlCon copy DestinationTableName strDestinationTable copy Wri

随机推荐

  • AdSense IAB TCF 错误 3.3:如何删除旧字符串并重新获得同意

    我的网站已经上线几年了 使用 AdSense 及其集成的 GDPR 内容功能 即在 IAB TCF 术语中 Google 充当 CMP 在过去的几周里 我收到了以下消息 我们检测到您的一个或多个网站或应用程序上的 IAB TC 字符串存在问
  • 为什么java无法从死锁中恢复?

    我正在读 Java Concurrency in Practice 一书 里面是关于死锁的内容 JVM无法从死锁中恢复 只有摆脱死锁的方法 lock就是重启服务器 还提到了JVM使用graph 搜索其中线程充当两个线程 A 之间的图节点和边
  • Oracle SQL - 识别顺序值范围

    这是我的桌子 ID Name Department 1 Michael Marketing 2 Alex Marketing 3 Tom Marketing 4 John Sales 5 Brad Marketing 6 Leo Marke
  • 调用窗口加载事件 - javascript

    我将尽力在这里不使用 jsfiddle 清楚地解释我的问题是什么 因为 window on load 不会在他们的 IDE 中触发 我有一个 html 包装器 它动态加载 ajax html 到div content div class h
  • 在 ASP.NET MVC 3 中添加您自己的 HtmlHelper

    我是 MVC 新手 我正在尝试创建自己的扩展方法 以便我可以添加到我的 razor 视图中可用的 html 帮助器中 Html DropDownListFor 允许您为模型上的任何属性创建下拉列表 我想创建一个名为的助手Html State
  • 替换 jQuery 中选定的 HTML 文本

    我有这个代码用于替换选定的文本 它在选定的文本之前和之后放置 1 和 2 var content text html if window getSelection not IE case var selObj window getSelec
  • 如何获取Meteor包中文件的路径?

    我知道怎么做从 Meteor 包中获取当前目录 但是如何获取项目中特定文件的路径呢 node s dirname and filename在流星中不起作用 这很复杂 meteor run将您的项目文件复制到内部的目录树中
  • --oaa 2 和 --loss_function=logistic 在 Vowpal Wabbit 中的效果

    我应该在 VW 中使用哪些参数来执行二元分类任务 例如 让我们使用rcv1 small dat I thought最好使用逻辑损失函数 或铰链 但使用没有意义 oaa 2 然而 经验结果 所有 4 个实验中报告的渐进验证 0 1 损失 表明
  • 如何防止为未实现方法的对象生成模板

    因此 出于示例的目的 假设我有 3 个简单的struct是 其中第二个不包含bar method struct one void foo const int void bar struct two void foo const int st
  • 每个物种使用多个条目的系统发育模型

    我对系统发育回归模型比较陌生 过去 当我的树中每个物种只有 1 个条目时 我使用 PGLS 现在我有一个包含 9 个物种的数千条记录的数据集 我想运行一个系统发育模型 我阅读了最常见的软件包 例如 caper 的教程 但我不确定如何构建模型
  • jQuery 在第一个 11 后停止“单击”操作

    有两个嵌套元素 两者都有不同的click行动 单击内部元素时 我需要停止外部元素操作 HTML div div div div jQuery out click function alert OUT div is pressed in cl
  • 读取 Magic Mouse 和 Apple 无线键盘的电池百分比

    我想问您是否有人知道在 Mac 操作系统中访问鼠标和键盘电池状态的简单方法 有一些API可以访问这些信息吗 谢谢 对于键盘来说是 ioreg n IOAppleBluetoothHIDDriver grep i batterypercent
  • Ruby:仅在某些情况下重载运算符行为

    我的问题是 如何在内置类 例如 Integer new 上重载运算符 但仅限于某些情况 具体取决于第二个操作数的类 这是我正在寻找的行为 myObject myClass new 1 myObject gt special behaviou
  • 移动向量

    我有一个数据框 我想 对齐 每一列 以便每列的最大值位于同一行 我试图使用基本功能来做到这一点 但得到了错误的结果 即 只是覆盖而不转移 我刚刚在 Hmisc 中找到了 Lag 函数 但是 我确信有一种方法可以在基础上做到这一点 我只是想错
  • 函数式语言中的“模式匹配”是什么?

    我正在阅读有关函数式编程的内容 我注意到模式匹配许多文章都提到它是函数式语言的核心特性之一 有人可以为 Java C JavaScript 开发人员解释一下这是什么意思吗 理解模式匹配需要解释三个部分 代数数据类型 什么是模式匹配 为什么它
  • 如何在 javascript 中使用 i18next 中的翻译

    我知道我可以使用 i18next 来翻译 html 中的语言 例如 div div 但是有没有办法在 JS 中使用它 例如 如果我想做类似的事情 alert someKey 它应该是alert t someKey see http i18n
  • 打开 dfm 文件时出错 - 未找到类 xxxx

    通过双击打开 dfm 文件时 出现以下错误 Class TMyClass not found Ignore the error and continue Note Ignoring the error may cause component
  • 你要在c#中获取windows安装SID吗?

    我知道这个问题已经被问过很多次了 但没有人回答我的问题 我从 Comptiat A 的研究中了解到 当使用自动化 无人值守 安装时 技术人员总是必须返回并更改机器 SID 然后才能在每台计算机上激活操作系统 似乎有很多关于如何通过网络获取S
  • 如何匹配 powershell 中的 wsl 输出? [复制]

    这个问题在这里已经有答案了 我想查看我是否正在运行特定的 wsl 发行版 Windows 10 Home WSL 2 PS C Users User gt wsl list running Windows Subsystem for Lin
  • QTP 数据表操作*极其*慢(在 MMDRV 批处理执行器下好多了)?

    可能是一个精彩的故事 QTP 似乎无缘无故地浪费了你的工作时间 考虑这个脚本 其中的数据表只有一个全局行 有 26 列 名为 A 到 Z 填充了任意值 Print Started Services StartTransaction Simp