【问题标题】:How to fix "one or more test threads won't exist" in JMeter如何在 JMeter 中修复“一个或多个测试线程将不存在”
【发布时间】:2018-12-25 10:22:11
【问题描述】:

我在JMeter里面设计了一个测试线程,有时候,当通过GUI运行它时,测试线程只是挂了,永远不会结束。

  1. 点击“STOP”或“Shutdown”会显示“正在关闭所有测试线程。GUI右上角可以看到活动线程数。请耐心等待。”,线程永远不会停止停止了。
  2. 关闭对话框会显示“一个或多个测试线程将不存在;查看日志文件。”,但 jmeter.log 中没有错误日志。

JMeter的结构:

  • 测试计划
  • ----用户定义变量
  • ----HTTP 请求默认值
  • ----线程
  • --------HTTP Cookie 管理器
  • --------HTTP 请求
  • --------循环控制器
  • ------------CSV 数据集配置
  • ------------HTTP 请求
  • ----------------Beanshell 预处理器
  • ----------------HTTP 标头管理器
  • ----------------响应断言
  • ----------------Beanshell 断言
  • --------HTTP 请求
    1. 如何找到此错误的根本原因? --“一个或多个测试线程将不存在;查看日志文件。”
    2. 我该如何解决?

    【问题讨论】:

      标签: jmeter


      【解决方案1】:

      也就是说,您至少违反了 2 个 JMeter 最佳实践:

      1. 您正在使用 JMeter GUI 运行负载测试,should execute it in non-GUI mode
      2. 您正在使用 Beanshell 测试元素,您应该改用 JSR223 Test Elements and Groovy 语言

      根据您的测试计划的性质、请求和响应大小以及线程数,您可能还需要对 JMeter 执行更精细的调整(即增加 JVM 堆大小、使用 GC 参数等)查看9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure有关充分利用 JMeter 实例的更多详细信息。

      如果您仍然遇到问题,这可能表明机器缺少资源(您可以使用 JMeter PerfMon Plugin 进行检查),如果是这种情况 - 您将不得不使用 distributed testing

      【讨论】:

        【解决方案2】:

        很可能您没有在“高级”选项卡中的 HTTP 请求默认值中设置:

        • 连接超时:合理值 500
        • 响应超时:合理值30000

        所以一些http请求挂起,线程没有退出

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-05-11
          • 2021-05-21
          • 1970-01-01
          • 1970-01-01
          • 2016-11-21
          • 1970-01-01
          • 1970-01-01
          • 2010-10-17
          相关资源
          最近更新 更多