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

时间:2018-06-19 14:37:32

标签: jmeter

执行登录并更新多个用户的用户测试。

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

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

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

与100个用户运行相同的请求,我可以登录并更新用户的详细信息。

与200个用户一起运行同一请求。

  1. 获取连接超时异常。

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

我还在测试计划中添加了Authorization,Cookie,Cache和Header Manager。 登录请求后,还将使用常量计时器。

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

1 个答案:

答案 0 :(得分:0)

很可能您的被测应用程序只是被重载,因此无法及时响应。

对于未能获取CSRF令牌的CSS / JQuery提取器-我的期望是在失败的采样器的响应中不存在该令牌。

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

  1. 完全删除HTTP Request Defaults中的“连接和响应”超时,因此JMeter将永远等待响应。
  2. 将JMeter配置为通过将以下两行添加到 user.properties 文件中来保存失败的采样器的响应:

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

    这样,您将能够查看失败请求的响应情况。请参阅Results File Configuration用户手册一章,以了解哪些其他指标可能对您的分析有用。

  3. 检查您的应用程序和中间件(Web /应用程序/数据库服务器/负载均衡器日志)
  4. 确保在受测侧的应用程序上设置基线OS运行状况度量标准的监视。您可以使用JMeter PerfMon Plugin
  5. 以防万一您再次关注JMeter Best Practices