【问题标题】:JSR223 Preprocess performance issue JmeterJSR223 预处理性能问题 Jmeter
【发布时间】:2016-04-27 07:26:35
【问题描述】:

我有一个测量登录功能性能的场景,因为我使用 JSR223 预处理器使用 Javascript 加密我的密码,它大约 2000 行代码它工作正常它成功加密密码,我可以使用我的脚本登录它工作在少数用户中很好。

如果我们要处理大量用户,脚本一旦到达 JSR223 预处理器线程就会非常快地完成前 3 个步骤,处理时间会很长,这会导致性能测试延迟。

有什么建议可以微调这个过程吗?

我已经将缓存大小配置为 1024,即使执行需要很长时间。

对于 600 个用户,需要 1 小时 +++ 时间才能完成 1 个主和 3 个从属环境的过程。

【问题讨论】:

  • 你运行jmeter的机器cpu使用率是多少?您是否尝试过使用多个 jmeter 代理?
  • 我想要第二个 satkumar,因为我使用带有 Groovy (2.4.8/ Engine 2.0) 的 JSR223 预处理器,并且我有 140 行创建线程池的脚本,它需要 20-23在触发 JSR223 请求之前只需几秒钟即可处理。

标签: jmeter jsr223


【解决方案1】:

JavaScript 不是与 JSR223 PreProcessor 一起使用的最佳语言,它通过 RhinoNashorn 引擎运行,并且您的表达式一直在使用不太高效的方式从头开始评估。

根据JMeter Best Practices建议使用Groovy脚本引擎。假设配置良好,您将能够将 groovy 脚本编译成本机 JVM 字节码,因此性能将远高于 JavaScript。

为了在 Jmeter 中获得 Groovy 支持,您只需要

  1. 下载groovy-all.jar
  2. 将文件拖放到 JMeter 安装的“lib”文件夹中
  3. 重启 JMeter

请参阅Beanshell vs JSR223 vs Java JMeter Scripting: The Performance-Off You've Been Waiting For! 指南以获取更详细的说明和脚本编写最佳实践。

【讨论】:

    【解决方案2】:

    负载测试应避免使用 Javascript。

    最好的选择是使用:

    • 时髦

    • 检查缓存编译键

    • 为每个测试元素输入一个唯一键

    这将使 JMeter 编译脚本以获得最佳性能,请阅读以下内容了解更多信息:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-05
      相关资源
      最近更新 更多