zoukankan      html  css  js  c++  java
  • 使用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、  使用jp@gc - JSON Path Extractor或正则表达式提取器提取需要校验的响应数据

    2.1、对应的请求下添加一个jp@gc - 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

  • 相关阅读:
    "less is more",用"less”命令查看linux文本文件
    Linux命令"ls"进阶说明
    Linux文件权限说明
    Ubuntu14.04安装Ruby2.2方法
    Ubuntu查找软件命令
    Using If/Truth Statements with pandas
    Categorical Data
    DataFrame.loc的区间
    pandas学习(一)
    JDBC编程之事务处理
  • 原文地址:https://www.cnblogs.com/MING-FBUG/p/9424708.html
Copyright © 2011-2022 走看看