与多个用户一起执行登录和更新用户测试。
我创建了一个包含 200 个用户名和密码的 CSV 文件。运行 200 个线程
执行登录和更新用户,具有 200 个用户。
我在登录请求后在变量中提取csrf令牌的值。然后,我在用户更新、后请求中传递该csrf变量。
对 100 个用户运行相同的请求,我能够登录并更新用户的详细信息。
对 200 个用户运行相同的请求。
-
获取连接超时异常。
-
某些更新用户发布请求失败,因为csrf变量正在提取 CSS/JQuery 提取器的默认值。CSRF 令牌的实际值未提取到变量中。
我还在测试计划中添加了授权、Cookie、缓存和标头管理器。 常量计时器也在登录请求后使用。
我在 HTTP 请求默认值中将超时值设置为120000。即使我增加超时,也会得到相同的异常。
很可能您正在测试的应用程序只是过载,因此它无法及时响应。
关于无法获得CSRF令牌的CSS/JQuery提取器 - 我的期望是令牌不存在于失败采样器的响应中。
因此,我建议采取以下故障排除步骤:
- 完全删除 HTTP 请求默认值中的连接和响应超时,以便 JMeter 将永远等待响应。
-
配置 JMeter 以通过将接下来的 2 行添加到user.properties文件中来保存失败采样器的响应:
jmeter.save.saveservice.output_format=xml jmeter.save.saveservice.response_data.on_error=true
这样,您将能够看到失败请求的响应情况。请参阅"结果文件配置用户手册"一章,了解哪些其他指标可能对您的分析有用。
- 检查应用程序和中间件(Web/应用程序/数据库服务器/负载均衡器日志(
- 请确保在受测端的应用程序上设置基线 OS 运行状况指标的监视。您可以使用JMeter PerfMon插件来执行此操作
- 以防万一仔细检查您是否遵循JMeter最佳实践