CSS/JQuery 提取器正在为随机线程提取负载测试时的默认值



与多个用户一起执行登录和更新用户测试。

我创建了一个包含 200 个用户名和密码的 CSV 文件。运行 200 个线程

执行登录和更新用户,具有 200 个用户。

我在登录请求后在变量中提取csrf令牌的值。然后,我在用户更新、后请求中传递该csrf变量。

对 100 个用户运行相同的请求,我能够登录并更新用户的详细信息。

对 200 个用户运行相同的请求。

  1. 获取连接超时异常。

  2. 某些更新用户发布请求失败,因为csrf变量正在提取 CSS/JQuery 提取器的默认值。CSRF 令牌的实际值未提取到变量中。

我还在测试计划中添加了授权、Cookie、缓存和标头管理器。 常量计时器也在登录请求后使用。

我在 HTTP 请求默认值中将超时值设置为120000。即使我增加超时,也会得到相同的异常。

很可能您正在测试的应用程序只是过载,因此它无法及时响应。

关于无法获得CSRF令牌的CSS/JQuery提取器 - 我的期望是令牌不存在于失败采样器的响应中。

因此,我建议采取以下故障排除步骤:

  1. 完全删除 HTTP 请求默认值中的连接和响应超时,以便 JMeter 将永远等待响应。
  2. 配置 JMeter 以通过将接下来的 2 行添加到user.properties文件中来保存失败采样器的响应:

    jmeter.save.saveservice.output_format=xml
    jmeter.save.saveservice.response_data.on_error=true
    

    这样,您将能够看到失败请求的响应情况。请参阅"结果文件配置用户手册"一章,了解哪些其他指标可能对您的分析有用。

  3. 检查应用程序和中间件(Web/应用程序/数据库服务器/负载均衡器日志(
  4. 请确保在受测端的应用程序上设置基线 OS 运行状况指标的监视。您可以使用JMeter PerfMon插件来执行此操作
  5. 以防万一仔细检查您是否遵循JMeter最佳实践

最新更新