如何在jmeter中获取当前失败url的父url?

如何在jmeter中获取当前失败url的父url?,jmeter,jmeter-4.0,Jmeter,Jmeter 4.0,我正在尝试获取当前失败请求的父URL(例如,考虑一个旅行网站,父URL将是搜索CyrTya,当前URL正在选择航班页面)。我们如何做到这一点。我尝试了在失败的URL和BeNeSk之后放置一个IF控制器,以便它获取所有故障航班请求的父URL。但是现在发生的是,如果当前的飞行请求失败,它根本不会转到下一个if控制器。执行停止。有人能用更好的方法指导我吗 首先,忘记Beanshell,至少从JMeter版本3.1开始(对于早期版本,也建议这样做,但是Groovy引擎没有包含在JMeter发行版中) 添

我正在尝试获取当前失败请求的父URL(例如,考虑一个旅行网站,父URL将是搜索CyrTya,当前URL正在选择航班页面)。我们如何做到这一点。我尝试了在失败的URL和BeNeSk之后放置一个IF控制器,以便它获取所有故障航班请求的父URL。但是现在发生的是,如果当前的飞行请求失败,它根本不会转到下一个if控制器。执行停止。有人能用更好的方法指导我吗

  • 首先,忘记Beanshell,至少从JMeter版本3.1开始(对于早期版本,也建议这样做,但是Groovy引擎没有包含在JMeter发行版中)
  • 添加为第二个请求的子级
  • 将以下代码放入“脚本”区域:

  • 就是这样,您应该在面板和jmeter.log文件中看到上一个采样器的名称及其URL

    您可以将URL保存到类似的文件中:

    完成后,您将能够在需要时以
    ${url}
    的形式访问该值

  • 参考资料:

    • prev
      代表当前
    • ctx
    • vars
    有关所用函数的描述,请参见JavaDoc,有关JMeter中Groovy脚本的更多信息,请参见本文

    if (!prev.isSuccessful()) {
        log.info('Previous sampler name: ' + ctx.getPreviousSampler().getName())
        log.info('Previous sampler URL: ' + ctx.getPreviousSampler().getUrl().toString())
    }
    
    vars.put('url', ctx.getPreviousSampler().getUrl().toString())