使用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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM