使用jmeter实现接口监控,当接口出错时邮件报警

一、工具

Jmeter 3.3

下载地址:https://pan.baidu.com/s/1LwW4QV0xeQ-7e1X9bOBCog

二、目录结构预览

三、设计思路

1、  发送http请求,对返回码和响应数据进行校验

2、  利用if控制器的判断条件来执行是否发送邮件

3、  发送报警邮件,邮件中包括请求的接口url、返回码、响应数据、响应信息

四、脚本编写和变量设置

1、  预设置全局变量

Sendemail:是否发送邮件的标识,默认值为no,no代表不发送邮件,yes代表发送邮件。

respcode:存放请求的返回码,发邮件时使用

respmsg:存放请求的响应信息,发邮件时使用

respdata:存放请求的响应数据,发邮件时使用

info1:存放接口的报错信息,当返回码不为200时使用

info2:存放接口的报错信息,当校验的信息为空时使用

2、  使用[email protected] - JSON Path Extractor或正则表达式提取器提取需要校验的响应数据

2.1、对应的请求下添加一个[email protected] - JSON Path Extractor或正则表达式提取器

2.2、如下图所示,将获取的值存放到变量data1中

3、beanshell断言脚本编写

3.1、当前http请求下添加一个beanshell断言

3.2、脚本编写

//设置接口的名称,用于邮件的标题使用

//获取变量中设置的接口请求错误的提示信息

String info1 = vars.get("info1");

String info2 =vars.get("info2");

//获取提取器取到的数据

String data1 = vars.get("data1");

String code = SampleResult.getResponseCode();//获取返回码

String msg = SampleResult.getResponseMessage();//获取响应信息

String data = SampleResult.getResponseDataAsString();//获取响应数据

String url = SampleResult.getUrlAsString();//获取请求接口的url地址

//校验返回的code,非200发邮件报警;返回200则校验返回数据是否为空,为空则发邮件报警

if(!(code.equals("200"))){

vars.put("sendemail","yes");//将sendemail值置为yes,代表发送报警邮件

vars.put("error_info",info1);

}

else{

if(!(data1.equals(""))){

vars.put("sendemail","no");//将sendemail值置为no,代表不发送报警邮件

}

else{

vars.put("sendemail","yes");//将sendemail值置为yes,代表发送报警邮件

vars.put("error_info",info2);

}

//将发送邮件所需的值赋给相应的变量

vars.put("respcode",code);

vars.put("respmsg",msg);

vars.put("respdata",data);

vars.put("url",url);

vars.put("interface_name",interface_name);

五、 邮件发送

1、 使用if控制器,判断是否发送邮件

1.1添加if控制器

1.2设置判断条件

如上图所示,表示当sendemail值为yes时需要发送报警邮件

2.使用SMTP Sampler发送邮件

2.1在if控制器中添加SMTP Sampler

2.2邮箱配置,配置信息可能会更换,可以对配置进行参数化

Address_from:邮箱发件人设置

Address_to:邮箱收件人设置,有多个收件人,使用“;”隔开

Server:配置发件邮箱的服务器地址;如126邮箱为smtp.126.com

Port:端口号,smtp设置为25

收到邮件的效果:

2.3发件人的邮箱需要开启smtp并设置客户端授权密码(web中登陆发件人邮箱,到设置中开启smtp并设置授权码)

六、公共模块的使用

1、将需要多次使用的模块,放到一个简单控制器中,并把简单控制器禁用

2、  通过模块控制器调用

参考博客:https://www.cnblogs.com/tina19882010/articles/7908834.html

原文地址:https://www.cnblogs.com/MING-FBUG/p/9424708.html

时间: 2024-10-11 15:32:46

使用jmeter实现接口监控,当接口出错时邮件报警的相关文章

Zabbix监控系统二:配置邮件报警

在zabbix的使用中,最重要的一点就是完善的报警机制,作为监控平台,需要时刻关注机器和服务的运行状态,更重要的是发现故障之后需要及时的报警给相关人员,早点发现问题,将隐患消除在未然阶段.这样才能保证服务的稳定运行.报警的方式是多种多样的,微信.短信和邮件报警是我们比较常见的方式. 邮件报警的配置主要划分为一下几个步骤: 1.在zabbix服务端配置邮件发送脚本和修改zabbix服务端配置文件; 2.在zabbix前端控制台进行相关设置: 实验环境 Zabbix监控服务器.客户端都已经部署完成,

zabbix监控(三)配置邮件报警

配置邮件报警: zabbix服务端 1.编辑/etc/mail.rc set from=[email protected] set smtp=smtp.163.com set smtp-auth-user=[email protected] set smtp-auth-password=wang4335399 set smtp-auth=login 2.邮件报警脚本 cd /usr/lib/zabbix/alertscripts #!/bin/bash [ $# -ne 3 ] && ex

shell脚本监控分区使用率,并发邮件报警

最近线上一个分区使用过快,nagios并没有开启对分区使用率的监控,抽了几分钟临时写了个脚本先用着.用法比较简单,直接上代码: 注:代码中用到的sendEmail脚本是perl开发的一个发邮件程序,可以网上找到该脚本或者使用其他发邮件脚本 #!/bin/bash #--dir:Monitoring of the mount point #--critical:critical value #--warning:warning value  #--ip [ $# -eq 0 ] && {  

Zabbix 监控交换机 邮件报警

Zabbix监控交换机设置方法 Zabbix邮件报警设置方法

jmeter 单接口测试方案(接口无业务关联)

前言 前面开了一篇讲了Jenkins+jmeter+ant的使用,但没有说到具体怎么投入到项目使用,主要介绍了接口测试定义,流程和环境部署,所以我今天要说的就是我是怎么将这个方案投入到实际中使用的.这套方案主要用于相互接口之间无业务关联的测试. 结构设计与数据准备 接口测试的流程 1. 项目启动后,测试人员要尽早找到开发人员拿到接口测试文档 2. 获取接口测试文档后,就可以进行接口用例的编写和调试 3. 接口用例编写调试完成后,部署到持续集成的测试环境中, 4. 设定脚本运行频率,告警方式等基本

Jmeter压测Thrift服务接口

此文已由作者夏鹏授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. Apache Jmeter是基于Java开发的性能测试工具,支持多种协议的测试,包括:Web(HTTP/HTTPS).SOAP.FTP.Database(JDBC).LDAP.Mail(POP3/IMAP).JAVA:还提供了多种性能数据统计报表,使用简单方便简直是性能测试中居家旅行杀人越货之必备:但是~本次性能测试需求是Thrift服务接口,并不在Jmeter支持的协议范围内,继续用钟意的Jmeter完成

Atitit.远程接口 监控与木马   常用的api 标准化v2 q216

Atitit.远程接口 监控与木马   常用的api 标准化v2 q216 1. 木马与远程接口 监控的常用的api2 1.1. 文件复制2 1.2. 屏幕定时截图2 1.3. 邮件发送2 1.4. 键盘监听2 1.5. 远程上传代码与执行2 1.6. 注册系统服务2 1.7. 远程shell  console2 1.8. .修改注册表2 1.9. Eval功能2 1.10. 控制鼠标键盘gui接口功能2 1.11. 文档 图片文件读写监控2 1.11.1. JDK1.6及之前版本: 基于Tim

使用cacti监控虚接口

前言 linux系统中的tun.pppx等虚接口无法被cacti监控流量.因为这些是vpn连接成功后才生成动态接口,即使接口的名称一样,每一次生成的接口id都不相同,导致cacti无法连续监控接口的流量. 为了解决此问题,笔者想到了一个比较dirty但行之有效的方法. 1.在接口生成的时候记录下本次生成的接口名称,然后通过snmpwalk命令获取本次接口的oid值. 2.通过计划任务每30秒一次,获取本次接口的流量保存在本地. 3.使用net-snmp的自定义oid获取已经保存在本地的数值. 4

Python监控网站接口值

Python监控网站接口值: #!/usr/bin/env python # -*- coding: utf-8 -*- __author__ = 'liudong' import urllib,sys,urllib2,json,smtplib from email.mime.text import MIMEText mailto_list=['邮箱'] mail_host="smtp.philisense.com" mail_user="邮箱" mail_pass