Jmeter的beanshell應該怎麼寫?

目的:JMeter的beanshell編寫

問題:在某些查詢場景中傳參爲前一個月的數據,JMeter獲取N天前的日期/N天前的月份以供接口測試傳參

解決方案:JMeter中beanshell編寫簡單的代碼,沒有現成的方法可以調用

其他:在beanshell中調用JMeter自帶方法與其他地方無異,不進行闡述,請自行百度



① 直接在beanshell裏面編寫java代碼獲取

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

	//和正常java程序不太一樣的是沒有定義類和main方法,直接是獲取日期和月份的方法
	//傳入與當天的相差天數,返回N天前的日期
	public static String calDate(int days) {

		Date now = new Date();
		//System.out.println(now);

		Calendar cal = Calendar.getInstance();

		cal.setTime(now);
		cal.add(Calendar.DATE, days);
		Date now_1 = cal.getTime();

		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");// 可以方便地修改日期格式

		String nowDate = dateFormat.format(now_1);

		return nowDate;
	}
	
      	//傳入與當天的相差天數,返回N天前的月份
 	public static String calMonth(int days) 
	{
		Date now = new Date();
		//System.out.println(now);
		Calendar cal = Calendar.getInstance();
		cal.setTime(now);
		cal.add(Calendar.DATE, days);
		Date now_1 = cal.getTime();
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM");// 可以方便地修改日期格式
		String nowDate = dateFormat.format(now_1);
		return nowDate;
	}
		//調用方法獲取日期
		String date = calDate(0);  //獲得今天的日期
		String date_1 = calDate(-1);  //獲得昨天的日期
		String date_6m = calMonth(-180); //計算180天前的月份


		//在jmeter裏面需要put,將內部的參數放到beanshell外均可以調用的變量
		vars.put("date", date);
		
		vars.put("date_1", date_1);
		vars.put("date_6m", date_6m);

		//日誌顯示具體的值,和system.out.println("")效果一樣
		log.info("date_6m:" + date_6m);



② 直接導入jar包

1)有些習慣在eclipse或者其他的編程軟件先完成方法編寫,再導出jar包。

2)把jar包放在計算機某個位置;

3)JMeter測試計劃中添加該jar包


4)在beanshell中導入並調用即可



遇到其他的場景需要自行編寫代碼也是相同的方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章