在JMeter中登录后调用每个HttpRequest

时间:2017-07-11 08:16:09

标签: jmeter

在我的JMeter性能测试中增加用户线程,发现在登录前调用了一些请求。所以那些请求都失败了。

我的测试计划在

之下

enter image description here

在.csv文件中,使用{email, password}添加了1000个用户并将其提供给Login Http Request -> CSV Data Set Config。我正在从登录响应中提取{uid}并存储在uid

第二个随机控制器,有多个HttpRequest,每个请求都需要{uid}

这适用于50个以下的用户线程。但是当我增加线程时,一些随机控制器==> Http请求在没有uid

的情况下发送

看,这个是uid enter image description here

但是这个没有uid

enter image description here

任何人都可以帮助我,我们如何才能实现这一目标?

1 个答案:

答案 0 :(得分:0)

我可以看到两个可能的原因:

  1. 您的应用程序超载,因此Login Request没有返回正确的uid,因此您的提取程序失败
  2. 您的JMeter intsance过载,因此当您以非最佳方式运行时,JMeter无法处理50多个用户
  3. 我将从第1点开始,暂时启用将请求和响应数据存储到.jtl结果文件中,方法是将下一行添加到 user.properties 文件中:

    jmeter.save.saveservice.response_data=true
    jmeter.save.saveservice.samplerData=true
    jmeter.save.saveservice.requestHeaders=true
    jmeter.save.saveservice.url=true
    jmeter.save.saveservice.responseHeaders=true
    

    通过这种方式,您将能够使用View Results Tree侦听器查看失败请求的响应数据,并能够识别测试失败的位置。

    值得检查/实施的其他事项:

    • 检查您的申请日志
    • 在JMeter和测试中的应用程序上设置基线操作系统运行状况指标(CPU,RAM,磁盘/网络IO)的监控,您可以使用JMeter PerfMon Plugin进行此操作
    • 确保您关注JMeter Best Practices,即

      • 在命令行非GUI模式下运行测试
      • 增加JVM堆大小
      • 切换到JSR223测试元素而不是Beanshell