1.說明html
BeanShell:是一個小型嵌入式Java源代碼解釋器,具備對象腳本語言特性,可以動態地執行標準JAVA語法,並利用在JavaScript和Perl中常見的的鬆散類型、命令、閉包等通用腳原本對其進行拓展。BeanShell不單單能夠經過運行其內部的腳原本處理Java應用程序,還能夠在運行過程當中動態執行你java應用程序執行java代碼。由於BeanShell是用java寫的,運行在同一個虛擬機的應用程序,所以能夠自由地引用對象腳本並返回結果。java
Jmeter中的BeanShell主要有:定時器BeanShell Timer、前置處理器BeanShell PreProcessor、採樣器BeanShell Sampler、後置處理器BeanShell PostProcessor、斷言BeanShell、斷言監聽器BeanShell Listener。閉包
此處運用了內置對象vars對變量進行存取操做:函數
·vars.get("name"):從jmeter中得到變量值學習
·vars.put("key","value"):數據存到jmeter變量中spa
(可參考該文檔進行學習:https://www.jianshu.com/p/bc537d6acb3a)線程
2.直接在jmeter中寫java代碼調試
第一步:添加 BeanShell Sampler 編寫 java 代碼code
線程組(右鍵) => Sampler => BeanShell Sampler(可直接寫入java代碼)htm
第二步:添加 Debug Sampler 進行調試
控制器 => Sampler => Debug Sampler (調試)
第三步:調用java代碼中的數據
/ep/add.action?NAME=${name}&AGE=${age}
3.導入 java 代碼文件
說明:其中,引入java文件,不須要放到根目錄,只是引用時文件路徑須要使用雙斜槓\\,格式爲source("D:\\software\\workspace\\junit-test\\AddMethod.java");
source("D:\\software\\workspace\\junit-test\\AddMethod.java");//導入java文件 int addm = new AddMethod().add(5,8);//調用函數 vars.put("name","duoduo");//保存變量 vars.put("num",addm.toString());//保存變量 return "success"; return num;
Debug Sampler 結果:
name=duoduo
num=13
4.導入 class 文件
addClassPath("D:\\"); import com.AddMethod;//AddMethod是class文件的文件名,放到D盤比較深的一個目錄裏 int addm = new AddMethod().add(6,9); vars.put("num",addm.toString()); vars.put("name","kaku"); log.info("test"); return "success"; return num;
Debug Sampler 結果:
name=kaku
num=15
5.jmeter使用自定義編寫java代碼
(可參考該文檔進行學習:https://www.cnblogs.com/linglingyuese/articles/linglingyuese-two.html)
備註:正常狀況下,不多會在jmeter中寫java代碼,因此,僅作了解便可