0

我有一个场景,需要负载运行器给我一个特定格式的报告。

场景:我有一个包含 1000 个 SQL 的 Excel 表。每行 1 个 SQL。我希望加载运行器选择这个 SQL 并同时与不同的用户(比如一次 3 个用户)一起运行它。例如,用户 1 选择 SQL1,用户 2 选择 SQL2,用户 3 选择 SQL3。现在先完成的用户将选择下一个 SQL,例如 User2 先完成,然后它将选择 SQL4,依此类推,直到所有 SQL 都用完。

报告:在最终报告中,我需要以下内容:对于每个 SQL - 执行 SQL、SQL、开始时间、结束时间、响应时间的用户。对于所有 SQL(总体):服务器的 CPU 使用率、内存使用率、磁盘使用率。报告格式可以是任何格式,txt 或 excel。

谢谢,阿洛克

4

3 回答 3

0

你是说你创造了这个场景并且遇到了麻烦吗?如果是这样,您具体遇到了什么问题?或者你问这是否可能?

您描述的场景当然是可能的,您可以在脚本的参数列表中设置一个数据文件,其中包含您的 SQL 命令,并使用“唯一”设置来划分运行的 SQL 语句并确保它们不使用相同的那些。也可以在 LoadRunner 中创建自定义报告输出。您可以在脚本中创建函数以使用 lr_user_data_point() 函数输出自定义报告数据。输出看起来像分析工具中的任何其他时间线数据跟踪报告。

于 2013-03-01T14:27:41.777 回答
0

鉴于这是您的第一个问题,自然要问的问题是,您对该工具的培训水平如何?该解决方案集利用了作为工具培训的一部分广泛涵盖的参数化引擎,以及作为标准产品培训的一部分也涵盖的事务时序模型。如果您被要求在没有工具、流程和一段时间指导的情况下完成此任务,那么您的成功几率将逐渐接近零。

解决途径:VB Template 虚拟用户。您需要验证您的许可证是否允许使用模板虚拟用户选项。这也是一种编程解决方案,因此您需要具备适当的 VB 技能。使用 Java 虚拟用户和 C 虚拟用户也可以完成同样的任务,但难度更大。标准数据库虚拟用户在这里不合适,因为您的 SQL 在结果集中可能具有不同数量的列,因此您需要一个解决方案集,该解决方案集允许灵活地接收结果,而不是在本机中找到的硬编码期望模型数据库虚拟用户。

有一个包含两列的参数文件:第 1 列是事务的简称,第 2 列是查询。在您的虚拟用户之间唯一地分配您的 SQL 查询。

您的虚拟用户 pcode

Init
{
Establish connection to the database server
}

Action
{
Rendezvous (policy, wait for at least 3)
delay a random number of milliseconds between 250 and 500 to account for human chaotic behavior
Start Transaction (Column 1)
Run My Query (Column 2)
Logic to pass pass|fail of transaction (End Transaction - PASS|FAIL)
}

End
{
Close my database connection
}

您应该知道,用户不会同时操作,每个人都在完全相同的时间做某事。可能有用户彼此同时运行,但真正的同时性,即每个人同时做同样的事情需要同步到时钟滴答声。人类是混乱的仪器,不受与他人同步的内部时钟的束缚。

对于与您的 SQL 相关的 CPU、磁盘和其他指标,您将希望利用可用于您的数据库平台的 SQL 分析工具。对于 ORACLE,这是一份 AWR 报告。对于 Microsoft SQL Server,它是恰当命名的 SQL Profiler 工具。Sybase、DB2、MySQL 等...都具有相同的工具功能,只是从他们的管理工具包中挖掘出来。

如果您只是想在测试期间监控服务器,那么这很简单。查看 SiteScope 与 LoadRunner 的集成。自 8.1 版以来,每个版本的 LoadRunner 都附带了 500 点 Sitecope。您还可以直接查询表,例如 ORACLE 中的 V$ 表或 Microsoft/Sybase SQL 服务器中的系统表,然后为您希望跟踪的信息创建数据点。

于 2013-03-01T15:08:00.160 回答
0

单击资源管理器中的参数选项,现在单击新参数并将其命名为 sql 查询。

  1. 点击使用记事本编辑
  2. 填充您的 sql 查询。
  3. 保存并将参数设置设置为每次迭代唯一,并在其下方中止 vuser。4 现在每个用户都将按照您的意愿依次选择唯一值,如果值用完将停止运行
于 2015-07-16T17:45:40.910 回答