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

被折叠的 条评论
为什么被折叠?



