JMeter 功能挖掘之 WEB 文件導出
阿新 • • 發佈:2017-10-11
web 構建 write 服務器 -a hot shell tester ads
前言
自從寫從0構建自動化測試平臺(一)之技術選型開始,在工作中Get新技能就非常想鄭重的記錄下來,方便自己查閱;相信很多人都有這種感觸:平時問題解決後,沒有及時記錄,下次遇到類似問題,需要花同等的成本(各種搜索)去解決;與其後面勞心勞力,不如現在趁著這股熱乎勁記錄下來。
使用場景:
如上圖,是WEB頁面上有一個導出按鈕,需要每周五導出本周的產品BUG,對其進行數據分析,及時發現產品中存在的問題,針對問題能夠及時提出解決方案,每周一次頻率不算很高,但是想用自動化方法實現自動導出,有2個可選方案:JMeter實現,Python實現。由於Python實現也是要先抓包,幹脆就先用JMeter先進行抓包並實現文件保存功能。
一句話描述需求:
JMeter實現WEB端文件導出功能
實現思路:
-
登錄系統;
-
跳轉到對應的頁面,點擊導出excel按鈕;
-
保存響應的內容;
詳細實現:
-
線程組添加錄制控制器和HTTP Cookie管理器
-
JMeter添加並啟動代理服務器
-
瀏覽器設置代理
-
根據以上思路登錄系統,訪問到對應的頁面,執行導出excel動作
在JMeter的錄制控制器中我們可以查看到對應錄制的內容,我們只保留登錄和導出excel對應的請求 -
上面的導出excel請求是關鍵內容,我們需要將請求的內容進行保存,這裏我們在這個請求中添加一個BeanShell的後置處理器:
-
後置處理器中要實現的功能:獲取請求的響應內容,保存到本地的excel文件,對應實現代碼如下:
byte[] responseData = prev.getResponseData();private String filePath = "/tmp/new-version.xls";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(); } }}
JMeter 功能挖掘之 WEB 文件導出