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

Jmeter CSS/JQuery提取器正在为随机线程提取负载测试时的默认值,jmeter,Jmeter,对多个用户执行登录和更新用户测试 我已经创建了一个CSV文件,其中包含200个用户名和密码。运行200个线程 正在执行登录和更新用户,共有200个用户 我在登录请求后提取变量中的csrf标记值。然后,我在用户更新post请求中传递该csrf变量 运行100个用户的相同请求,我可以登录并更新用户的详细信息 使用200个用户运行相同的请求 正在获取连接超时异常 一些更新用户post请求失败,因为csrf变量正在提取CSS/JQuery提取器的默认值。CSRF令牌实际值未提取到变量中 我还在测试计划中

对多个用户执行登录和更新用户测试

我已经创建了一个CSV文件,其中包含200个用户名和密码。运行200个线程

正在执行登录和更新用户,共有200个用户

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

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

使用200个用户运行相同的请求

  • 正在获取连接超时异常

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

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


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

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

    关于CSS/JQuery提取器,它无法获取CSRF令牌-我的期望是,对于失败的采样器,令牌不会出现在响应中

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

  • 完全删除中的连接和响应超时,这样JMeter将永远等待响应
  • 通过在user.properties文件中添加以下两行,配置JMeter以保存失败采样器的响应:

    通过这种方式,您将能够看到失败请求的响应是什么样子的。请参阅用户手册一章,了解哪些其他指标对您的分析有用

  • 检查应用程序和中间件(web/应用程序/数据库服务器/负载平衡器日志)
  • 确保在测试端的应用程序上设置基线操作系统运行状况指标的监视。您可以使用
  • 以防万一你仔细检查了一下

  • 谢谢,Dmitri T。但是为什么提取器在某些情况下会将默认值传递给变量呢。我增加了常量计时器中的时间值,用于登录后和更新请求,但面临相同的问题。提取器的默认值在200个用户中的8到10个用户更新请求中传递。如果遗漏了什么,请给出建议。我的期望是,在这些“某些情况”中,响应根本不包含所需的CSRF令牌
    jmeter.save.saveservice.output_format=xml
    jmeter.save.saveservice.response_data.on_error=true