1. 程式人生 > >Jmeter之後置處理器BeanShell PostProcessor與二進位制響應

Jmeter之後置處理器BeanShell PostProcessor與二進位制響應

讀取二進位制檔案

下載必要的jar包

準備xls檔案

這裡寫圖片描述

構建指令碼

這裡寫圖片描述

檢視http的file響應

注意text切換到Document模式
這裡寫圖片描述

正則提取及結果

正則:
這裡寫圖片描述
檢視debugSampler
這裡寫圖片描述
因而需要對結果進行轉碼-beanshell後置處理器

BeanShell

程式碼1

import org.apache.jmeter.util.Document;//匯入官方jar包

String converted = Document.getTextFromDocument(data);//靜態方法不用生成物件,參見API:jmeter.apache.org/api/index.html
//data是該響應在BeanShell中的本地變數,是個字元陣列,本質就是那個讀取的那個file,會用就行不用懂 vars.put("response0820",converted);

這裡寫圖片描述

這裡寫圖片描述

檢視結果樹

這裡寫圖片描述

這裡寫圖片描述

程式碼2

適合有一定基礎的童鞋

import org.apache.jmeter.threads.JMeterVariables;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import
org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; InputStream in = new ByteArrayInputStream(data);//開啟流檔案 Workbook wb = new XSSFWorkbook(in);//多型,生成物件wb儲存這個二進位制響應結果 in.close();//關閉流檔案 Sheet sheet1 = wb.getSheet("Sheet1");//物件wb呼叫getSheet方法,獲取對應的Sheet,這裡是1 Row row = sheet1.getRow(0
);//取第0行放入row Cell a1 = row.getCell(0);//取row的第0列 Cell b1 = row.getCell(1);//取作row的第1列 vars.put("A1",a1.getStringCellValue()); vars.put("B1",b1.getStringCellValue()); //log.info("+++++++++++++");

這裡寫圖片描述

這裡寫圖片描述