Jmeter_實現Excel文件導出到本地


  一般而言,對於頁面的導出操作,主要經歷如下兩個操作:根據數據庫的內容,將文件導出到應用服務器上;將服務器上的文件下載到本地電腦;

  JmeterLoadRunner類似,只能記錄服務端與客戶端之間的數據流轉,而不能記錄本地操作,因此對於含有導出功能的性能需求,將服務端的文件下載到本地電腦,需要我們手工加入代碼實現(上面所述的步驟)。

1.導出請求分析】導出操作對應的兩個請求如下:

2.獲取文件的服務端路徑】

  在請求“97”下使用后置處理器正則表達式,提取導出文件的名稱。

 

3.獲取文件的內容並寫入本地】

  在請求“98”下使用“BeanShell PostProcessor”,獲取導出文件的內容,並寫入本地(Java)

  注:僅以文件名作為filepath的值,則導出的文件會默認保存在Jmeter安裝路徑的bin(JVM的啟動路徑)

//備注:BeanShell PostProcessor中代碼如下:
//JMeter的內置API:prev.getResponseData()獲取請求的響應內容
byte[] responseData = prev.getResponseData(); 

//①僅以文件名作為filepath的值,則導出的文件會默認保存在Jmeter安裝路徑的bin(即JVM的啟動路徑);
//private String filePath = "${ExportExcelName}";

//②指定絕對路徑
private String filePath = "D:/JMeterTest/Wy/${ExportExcelName}";  //正則表達式提取時的引用名稱
BufferedOutputStream bos = null;
FileOutputStream fos = null;
File file = null;
try {
   File file = new File(filePath);
   fos = new FileOutputStream(file); //不添加參數true,以非追加的方式添加內容
   bos = new BufferedOutputStream(fos);
   bos.write(responseData);
} catch (Exception e) {
   e.printStackTrace();
} finally {
   if (bos != null) {
      try {
         bos.close();
      } catch (IOException e1) {
         e1.printStackTrace();
      }
   }
   if (fos != null) {
      try {
         fos.close();
      } catch (IOException e1) {
         e1.printStackTrace();
      }
   }
}


免責聲明!

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



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