【问题标题】:Simulate Loadrunner like jmeter scenario with multiple functionalities (thread groups)模拟具有多种功能(线程组)的类似 jmeter 场景的 Loadrunner
【发布时间】:2021-01-26 23:12:29
【问题描述】:

所以,为了简单起见,我有以下 7 个功能。

  1. 创建客户 - 10
  2. 搜索客户 - 100
  3. 删除客户 - 10
  4. 编辑客户 - 30
  5. 开户 - 10
  6. 搜索帐户 - 100
  7. 删除帐户 - 10

现在我想在一个测试计划中一起模拟上述所有功能。对于所有功能,我只需要登录一次,然后在所有功能的所有用户都登录后,继续进行相应的活动 1 小时。

我尝试了什么:

  1. 将每个功能放在单独的线程组中。对于每个线程组,将登录和注销以及所有其他操作分别保存在运行时间为 3600 毫秒的运行时控制器中。这可以达到目的,但所有用户的计时器将不同(基于他们登录的时间),这不允许所有用户同时开始他们的 1 小时时段。
  2. 为每个功能使用最终线程组,并将登录和注销放在单独的一次控制器中(在线程组开始时登录并在结束时注销)和循环控制器中的其他操作,循环计数检查为无限。这工作正常,但它没有在测试结束时仅执行一次控制器注销。

这样做的目的是实现所需用户的并发性,并在所需的持续时间内以实现的并发性运行。

关于如何实现这一目标的任何建议?

【问题讨论】:

    标签: jmeter


    【解决方案1】:

    我会建议以下方法:

    1. 将您的“登录”逻辑放入setUp Thread Group
    2. 将您的“注销”逻辑放入tearDown Thread Group
    3. 通过将它们放入不同的线程组或通过Throughput Controllers 将负载分布到您的“7 个功能”中

    您可以使用以下选项之一传递用户身份(cookie、令牌等):

    1. Inter-Thread Communication Plugin
    2. __setProperty() function 在 setUp 线程组中将标识写入 JMeter 属性,__P() function 在其他线程组中读取值。当然你应该添加__threadNum() function作为属性名前缀/后缀来区分不同用户的身份

    【讨论】:

    • 感谢 Dmitri 的建议。我曾想过使用相同的选项,但发现它要复杂得多,因此认为会有一个更简单的选项。你能告诉我我尝试过的选项,为什么只有控制器没有执行注销一次?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-22
    • 2023-03-30
    • 2011-07-17
    • 2021-01-29
    • 1970-01-01
    • 2017-07-04
    • 1970-01-01
    相关资源
    最近更新 更多