利用jmeter对接口进行实时监控,报错时发送报警邮件

文章描述了一个使用JMeter进行接口测试的场景,当接口未下发应用信息时,通过Beanshell断言判断并设置条件,如果响应时间超过2秒或者特定字段缺失,会触发发送报警邮件的机制。邮件内容包含请求参数、响应结果、响应时间和服务器信息。邮件发送通过SMTP取样器完成,配置包括邮箱服务器信息和授权码。

1.场景:

线上会出现接口不下发具体的应用信息,出现这种情况时希望能实现自动发送报警邮件以便于有问题及时关注。

2.使用的工具:

jmeter

3.目录结构、:

4.步骤:

  • 1.定义用户定义的变量

  • 添加一个beanshell断言----编写beanShell断言

获取请求参数,响应结果和响应时间是为了后续邮件输出

发送报警邮件的条件是包括响应结果中的特有字段和响应时间不能超过2s(time的值在用户定义变量中已赋值)

    log.info("------开启beanshell判断--------");

//获取请求参数
String request=prev.getSamplerData();
vars.put("resquest",request);
//获取响应结果
String respone=prev.getResponseDataAsString();
vars.put("respdata",respone);
//响应状态码
String code = SampleResult.getResponseCode();
vars.put("respcode",code);
//计算响应时间
rst=prev.getEndTime()-prev.getStartTime();
vars.put("resptime",rst.toString());
log.info("时间差:"+rst);

InetAddress ia=InetAddress.getLocalHost();
String IP =ia.getHostAddress();
String HostName=ia.getHostName();
vars.put("IP",IP);
vars.put("HostName",HostName);

if(respone.contains("app_infos")&&rst<${time})
{
      vars.put("sendemail","no");
}else{
    vars.put("sendemail","yes");
     log.error("--------Do you send  sendemail ? :"+vars.get("sendemail"));
}


  • 添加一个如果if控制器

作用是判断是否发送邮件 条件为"${sendemail}"=="yes"

  • 然后在添加一个smtp取样器

这块主要是邮箱服务器信息,注意:这一块的password是有些邮箱类型的授权码!比如@163.com邮箱

这一块是邮件的主要内容

  • 具体效果

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值