如何使用交易 QTP/UFT

⚡ 智能摘要

交易在 UFT 一种方法是衡量测试中选定部分运行所需的时间,通过包装来实现。ping 在开始语句和结束语句之间报告运行结果持续时间的步骤。

  • 🔘 目的: 一次交易乘以一个业务流程,例如预订航班,而不是整个测试。
  • ☑️ 插入: “插入”菜单会在选定的步骤周围添加“开始事务”和“结束事务”语句。
  • 声明: Services.StartTransaction 和 Services.EndTransaction 直接在编辑器中执行相同的操作。
  • 🧪 结果: 最终报表会报告姓名、状态、总时长和浪费的时间。
  • 🛠️ 嵌套: 交易可以嵌套,但两个未完成的交易绝不能使用同一个名称。
  • ⚠️ 集成化: LoadRunner 和 Business Process Monitor 只能读取事务中记录的数据。

如何使用交易 QTP UFT

In UFT 一个/QTP您可以通过定义事务来衡量测试某个部分的运行时间。您可以在测试中定义事务,方法是用开始和结束事务语句将测试的相应部分括起来。

事务可以插入脚本中的任何位置,并且添加到测试中的事务数量没有限制。

⚠️ 产品命名: 该工具以 HP QuickTest Professional 的名义发布(QTP),后来成为惠普公司,之后又成为Micro Focus统一功能测试公司,如今由……出售。 OpenText其当前帮助页面称之为 OpenText 功能测试。在所有版本中,事务的工作方式都相同。

如何在[此处应填写具体内容]插入交易 QTP?

您还可以在交易中插入交易

以下视频将引导您完成插入交易的步骤 UFT 一。

点击 开始 如果视频无法访问

例如,你可能想记录 订机票.

  1. In QTP请选择您要开始交易的相应州。
  2. 选择插入开始交易。开始交易对话框 Box 打开
  3. 给交易起一个合适的名字,比如“预订时间”
  4. 测试中添加了start transaction语句
  5. 选择您想要结束交易的州
  6. 点击插入 > 结束交易
  7. 结束交易对话框 Box 打开后会显示所有可用交易的列表
  8. 单击“确定”。将添加结束交易声明
  9. 让我们运行测试
  10. 在结果中,最终交易声明给出了插入订单所需的时间

注意: 从以下位置可以访问相同的对话框: 关键词浏览以及步骤 Generator 无需打开“插入”菜单即可插入相同的语句。

编辑器中的交易报表

上面的对话框会输出两个信息。 VBScript中 将行输入测试。谢谢ping 一旦熟悉了模式,在编辑器中自己编写会更快,而且当步骤由代码生成时,这是唯一的选择。

Services.StartTransaction "Booking Time"

' the steps that book the flight go here

Services.EndTransaction "Booking Time"

这两个方法都属于 Services 对象。start 语句接受一个参数,end 语句接受一个可选的第二个参数。

个人陈述 参数 它做什么
服务.开始交易 姓名 从运行的该点开始计时。
服务.结束交易 姓名,[状态] 停止测量并记录结果

可选状态决定了交易的评分方式。省略此状态与通过相同。 Auto.

  • Auto 除非两条语句之间发生错误,否则此操作将通过。这是默认设置。
  • 通过 — 总是以通过状态结束。
  • 失败 — 总是以失败状态结束。
Services.StartTransaction "Booking Time"
Wait 1
Services.EndTransaction "Booking Time", Pass

读取交易结果

测试完成后,运行结果中的“结束事务”步骤会包含四个值,用于解释测量结果。

结果字段
交易名称 起始语句中提供的名称
结束状态 通过或失败,由状态参数或自动决定。
总时长 开始语句和结束语句之间的时间间隔
浪费时间 持续时间内的时间 UFT 其中一个本身就增加了

浪费的时间很重要,因为该工具会在事务打开期间运行后台进程。trac从总时长中估算出单独运行该应用程序所需的时间,这个数字才是值得在不同版本之间进行比较的。

单用户持续时间是功能性基准测试,而非负载指标。并发性是通过以下方式衡量的: 性能测试 工具,对于一个用户来说没问题的交易,在一百个用户中仍然可能崩溃。

嵌套和分布式交易

源步骤列表指出,一个事务可以嵌套在另一个事务中,这样就能在不影响整个流程时序的情况下隔离速度较慢的子步骤。外部事务会持续运行,而内部事务则会打开和关闭。

两条规则确保筑巢安全。

  • 每个名称都需要一个匹配的对子,并且开始语句必须出现在结束语句之前。
  • 同一时间只能有一个同名事务处于打开状态。如果打开第二个同名事务,第一个事务将以“失败”状态结束。

分布式事务更进一步,需要经过两项测试: 服务.启动分布式事务 在第一次测试中打开它, 服务.结束分布式事务 它在第二个窗口中关闭,匹配依据是唯一的 ID 而不是名称。它存在于业务流程监视器中。 加载程序 仅读取事务中记录的数据,而忽略事务之外的所有内容的场景。

当交易中的某个步骤可能合法失败时,将该交易与一个 恢复方案 因此,程序运行到了结束语句而不是停止语句。ping 半。

常见问题

事务会将带有状态的命名结果报告到运行结果和 LoadRunner 中。 Mercury计时器仅测量脚本内部经过的毫秒数,然后由您自行报告或转换。

用一个时间点来执行无关的操作 Mercury先设置计时器,然后将值传递给 Services.AddWastedTime。浪费的时间会从每个未完成的事务中扣除,因此报告的持续时间仅反映被测流程的持续时间。

默认情况下,如果在结束语句之前发生错误,运行将停止。在“测试设置”的“运行”窗格中,将错误选项设置为继续执行下一步,这样仍然可以执行到结束语句并记录事务。

在 LoadRunner 控制器窗口中,而不是在“运行结果”窗口中。只有包含在事务中的步骤才会被发送,因此任何不在开始和结束对中的步骤都不会出现在性能报告中。

是的。Services.SetTransaction 接受一个名称、一个以秒为单位的持续时间和一个状态,它允许脚本记录它自己计算的测量值,而不是工具计时的测量值。

机器学习模型会对每个命名事务在各个版本中进行基线测试,并在持续时间超出正常范围时发出警报,从而发现仅凭通过或失败状态无法察觉的缓慢退化。

是的。 GitHub 副驾驶 根据注释完善 Services.StartTransaction 和 Services.EndTransaction 对,但事务名称和状态常量仍需根据使用的命名约定进行检查。

技术上没有限制,但每个业务流程只记录一笔交易能保证报告的可读性。几十笔细小的交易会将真正重要的数据淹没在测量噪声中。

总结一下这篇文章: