Jmeter - 响应代码和失败消息为空

时间:2018-01-24 17:25:27

标签: java groovy jmeter

如何使用JMeter在电子邮件中获取响应代码和失败消息 我已经设置了一些http请求,如果控制器一个成功,我有2个,而一个请求失败。 在那些控制器中,我有一个发送电子邮件的SMTP采样器 当我遇到故障时,获取代码和响应消息的正确方法是什么?

我试过这些:

${__groovy( ctx.getPreviousSampler().getPreviousResult().getStartTime())}
${__groovy( ctx.getPreviousSampler().getPreviousResult().getResponseCode())}
${__groovy( ctx.getPreviousSampler().getPreviousResult().getResponseMessage())}

prev res code
${__groovy( ctx.getPreviousResult().getAssertionResults().getResponseCode())}

prev res failure message 
${__groovy( ctx.getPreviousResult().getAssertionResults().getFailureMessage())}

prev res failure getResponseMessage 
${__groovy( ctx.getPreviousResult().getAssertionResults().getResponseMessage())}

虽然我可以利用这个时间获得时间:

${__groovy( ctx.getPreviousResult().getTime() )}

2 个答案:

答案 0 :(得分:0)

使用以下配置添加2 Regular expression extractor作为您请求的子项:

第一个正则表达式:

  • 要检查的字段:响应代码
  • 参考名称: Response_Code
  • 正则表达式:(\ d +)
  • 模板: $ 1 $
  • 匹配编号 1

第二个正则表达式:

  • 要检查的字段:响应消息
  • 参考名称: Response_Message
  • 正则表达式:(。*)
  • 模板: $ 1 $
  • 匹配编号 1

然后在SMTP采样器中使用正则表达式的引用名称,例如${Response_Code},它将保存响应代码的值,${Response_Message}将保存响应消息的值。

答案 1 :(得分:0)

正确的语法是:

  1. 对于回复代码:

    ${__groovy(ctx.getPreviousResult().getResponseCode(),)}
    
  2. 对于回复消息:

    ${__groovy(ctx.getPreviousResult().getResponseMessage(),)}
    
  3. 演示:

    JMeter Groovy Response Code and Message

    ctxJMeterContext类实例的简写,请参阅JavaDoc了解所有可用函数。另请查看Apache Groovy - Why and How You Should Use It文章,了解有关JMeter中Groovy脚本的更多信息。