Jmeter前置處理器和后置處理器的使用


一、JMETER基本概念 

  1、 測試計划:頂級菜單,代表一個測試計划;

  2、 線程組:代表一個要測試的場景(各種相關的交易集合),對於性能測試來說可以指定多少個用戶完成這個場景的內容,對於自動化測試來說,指定一個用戶即可;

  3、 控制器:掛在線程組下,用來控制各種交易(接口)的調用頻率,有循環控制器、簡單控制器等等

  4、 取樣器:代表一次發起請求和接收響應的元件,這里可以認為是一個接口、交易、請求

  5、 前置處理器:取樣器發起請求前可以用這做一些工作,比如參數化等等

  6、 后置處理器:取樣器收到響應后做一些工作,比如提取響應報文中的內容

二、前置處理器跟后置處理器的區別

        前置處理器是用於發送請求之前,用於准備工作,比如參數化獲取當前日期、獲取隨機字母數字名稱、獲取當前日期下月日期。

       【BeanShell PreProcessor、用戶參數】

        后置處理器是用於發送請求之后,取樣器收到響應后做一些工作,比如提取響應報文中的內容,獲取Cookie、token 。

      【BeanShell PreProcessor、正則表達式提取器、JSON Extractor、Debug PostProcessor】 

三、前置處理器使用

        3.1 BeanShell PreProcessor

        例如: 通過beanshell 腳本獲取當前日期、當前日期減1天、 當前日期加30天

  

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class GetTime {

    /**
     * 獲取當前日期
     * 
     * @return
     */
    public String getcurrentDate() {
        Date currentTime = new Date();
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
        String currentDate = formatter.format(currentTime);
        return currentDate;
    }

    /**
     * 獲取當前日期的下一個月
     * 
     * @param day
     * @return
     */
    public String getDateAddMonth() {
        String year_month_day = "yyyy-MM-dd";
        SimpleDateFormat dgt = new SimpleDateFormat(year_month_day);
        Calendar date = Calendar.getInstance();
        date.add(Calendar.MONTH, Integer.parseInt("1"));
        String endDate = dgt.format(date.getTime());
        return endDate;
    }

    /**
     * 獲取當前日期減一天
     * 
     * @return
     */
    public String getDateBeforeDay() {
        Calendar c = Calendar.getInstance();
        Date date = null;
        Date currentTime = new Date();
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
        String a = formatter.format(currentTime);
        try {
            date = new SimpleDateFormat("yy-MM-dd").parse(a);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        c.setTime(date);
        int day = c.get(Calendar.DATE);
        c.set(Calendar.DATE, day - 1);
        String dayBefroe = new SimpleDateFormat("yyyy-MM-dd").format(c
                .getTime());

        return dayBefroe;
    }

}

   

四、后置處理器使用

         4.1 BeanShell PreProcessor

         

        


免責聲明!

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



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