【问题标题】:Load distribution in LoadRunnerLoadRunner 中的负载分布
【发布时间】:2018-02-17 23:40:23
【问题描述】:

我想使用 HP LoadRunner 控制 TPH / TPS。在 JMeter 中,我们可以使用 恒定吞吐量计时器 来实现,如果有人有其他方法,请分享。

例如:

  1. 事务 A-登录 (100 TPH)
  2. 交易 B-搜索产品 (1000 TPH)
  3. 交易 C-将产品添加到购物车 (200 TPH)
  4. 交易 D-支付 (200 TPH)
  5. 事务电子注销 (100 TPH)

【问题讨论】:

  • - 您是否参加过 LoadRunner 培训、阅读过 LoadRunner 教程或阅读过与运行时设置相关的书籍? - 你试过什么?当您进行试验时,您可能对您的更改将如何工作有一个假设,观察到的行为与您的更改行动假设有何不同?
  • 您的答案包含在 LoadRunner 的培训材料中,包括提供的讲师、教程和与使用运行时设置相关的文档

标签: c performance-testing loadrunner


【解决方案1】:

如果所有这些事务都在不同的脚本中,没问题,因为您可以为每个脚本设置不同的步调和运行时间设置。

我认为您的问题是所有这些交易都在同一个脚本中。在这种情况下,唯一的解决方案是在你的脚本中创建一个参数,让我们将此参数称为iterator,并将其类型设置为迭代次数。这样,该参数在第一次迭代中的值为 1,在第二次迭代中值为 2,依此类推。

现在您可以在调用每个事务之前使用此参数。

假设您的最大 TPH 为 1,000。然后将脚本的运行时设置速度设置为 1,000 TPH。但是,如果您希望某个事务的运行少于此值,假设仅 100 TPH,那么您只需每 10 次迭代运行一次(1,000 / 100 = 10)。

为此,您可以在脚本中使用iterator % 10

// Cast the iterator parameter to an int
var i;
i = atoi(lr_eval_string("{iterator}"));

// This  will run 100 TPH
if ((i % 10) == 0) 
{
     lr_start_transaction("Login");

     // Do login
     ...

     lr_end_transaction("Login", LR_AUTO);
}

另一个例子,要运行 200 TPH,你可以使用iterator % 5

// This  will run 200 TPH
if ((i % 5) == 0) 
{
     lr_start_transaction("Add Product");

     // Do Add Product
     ...

     lr_end_transaction("Add Product", LR_AUTO);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-23
    • 1970-01-01
    • 2010-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多