微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何通过JMeter中的电子邮件获得断言成功或失败消息?

如何解决如何通过JMeter中的电子邮件获得断言成功或失败消息?

我正试图通过电子邮件获得断言结果。 我的测试计划中有多个端点(请求)和相关的断言。

下面是我在JSR223 PreProcessor中使用的Groovy代码。在我的SMTP采样程序中,我一直在使用${body}从脚本中获取结果。

但是在所有断言都通过时,在电子邮件中打印为空,而当所有断言都通过时,则打印异常。

我需要通过电子邮件进入下方。

  1. 所有声明都通过时成功消息
  2. 带有失败请求名称的失败消息,当他们出现
import org.apache.jmeter.assertions.AssertionResult;

AssertionResult[] results = prev.getAssertionResults();
StringBuilder body = new StringBuilder();
for (AssertionResult result : results) {
    body.append(result.getFailureMessage());
    body.append(System.getProperty("line.separator"));
}
vars.put("body",body.toString());

解决方法

  1. JSR223预处理程序正在之前在其scope中的每个采样器中执行
  2. prev代表上一个重要的Sampler Result

假设高于2分,则绝对可以预期,当在测试中的第一个Sampler之前执行JSR223 PreProcessor时,以前的结果还不存在,您只需要添加另一个条件来检查它是否为null。

import org.apache.jmeter.assertions.AssertionResult

if (prev != null) { // ensure that we have the previous sampler result
    AssertionResult[] results = prev.getAssertionResults();
    StringBuilder body = new StringBuilder();
    for (AssertionResult result : results) {
        body.append(result.getFailureMessage());
        body.append(System.getProperty("line.separator"));
    }
    vars.put("body",body.toString());
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。