Jmeter自定義函數和引入外部文件的幾種方法

1.  Bean Shell簡介

  • BeanShell是一種完全符合Java語法規範的腳本語言,並且又擁有自己的一些語法和方法;
  • BeanShell是一種鬆散類型的腳本語言(這點和JS類似);
  • BeanShell是用Java寫成的,一個小型的、免費的、可以下載的、嵌入式的Java源代碼解釋器,具有對象腳本語言特性,非常精簡的解釋器。
  •  BeanShell可執行標準Java語句和表達式,另外包括一些腳本命令和語法。

2.  Bean Shell常用內置變量

JMeter在其BeanShell中內置了變量,用戶可以通過這些變量與JMeter進行交互,其中主要的變量及其使用方法如下:

  • log:寫入信息到jmeber.log文件,使用方法:log.info(“This is log info!”);
  • ctx:該變量引用了當前線程的上下文,使用方法可參考:org.apache.jmeter.threads.JMeterContext
  • vars:即JMeterVariables,操作jmeter變量,這個變量實際引用了JMeter線程中的局部變量容器(本質上是Map),常用方法:
  1. vars.get(String key):從jmeter中獲得變量值
  2. vars.put(String key,String value):數據存到jmeter變量中,其作用可簡單理解爲賦值操作:key=value,更多方法可參考:org.apache.jmeter.threads.JMeterVariables
  •  props:即JMeterProperties - class java.util.Properties,操作jmeter屬性,該變量引用了JMeter的配置信息,可以獲取Jmeter的屬性,它的使用方法與vars類似,但是put函數,value數據類型只能爲String,不能是一個對象。對應於java.util.Properties。 
  1. props.get("START.HMS");  注:START.HMS爲屬性名,在文件jmeter.properties中定義 
  2. props.put("PROP1","1234"); 
  • Parameters:從參數輸入框中獲取的參數值的集合
  • bsh.args:從參數輸入框中獲取的參數值的數組

3.  啓動Jmeter ,添加測試計劃,線程組等

4.  添加BeanShell Sampler

右鍵線程組->添加->Sampler->BeanShell Sampler

 

5.  應用舉例

4.1 自定義腳本、函數

注:UUID含義是通用唯一識別碼 (Universally Unique Identifier),java中可調用randomUUID直接生成。

代碼如下:

使用保存的unique_id變量值

 

4.2 引用外部java文件

 

 

說明:運行結果,在d盤根目錄下生成shouke.txt文件

附:eclipse中代碼組織結構如下(下同,不再贅述):

 

其中:

CreateFile.java代碼文件內容:

 

4.3 引用外部class文件

 

運行後,在d盤根目錄下生成destfile.txt文件

注意:

addClassPath(String class_path);

1) 這裏的class_path可以不是絕對上級路徑,只需要包含.class文件即可,比如可以是

addClassPath("D:\\workspace\\StudyProject\\");

addClassPath("D:\\ ");

 

2)class_path不能包含包名對應的目錄路徑

如上,如果改成addClassPath("D:\\workspace\\StudyProject\\bin\\ mypackage");

運行會報類似如下錯誤

2016/10/17 17:55:50 ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval   CreateFile (wrong name: mypackage/CreateFile)

2016/10/17 17:55:50 WARN  - jmeter.protocol.java.sampler.BeanShellSampler: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval    CreateFile (wrong name: mypackage/CreateFile)

 

4.4 引用外部jar文件

如下,

1、在eclipse中單獨把CreateFile.java文件打包成jar文件,比如create-file.jar

2、把create-file.jar文件放到JMeter安裝目錄->lib目錄下

3、然後在JMeter的【測試計劃】面板中添加打包的jar文件

 

4.5 JMeter內置變量演示

添加【配置原件】-【用戶定義的變量】,並在面板中添加var1,var2兩個變量

  

運行結果:

 

注:

1、log.info等方法會把日誌寫入到JMeter安裝目錄->bin目錄下的jmeter.log文件中(形如:D:\Program Files (x86)\Jmeter\apache-jmeter-2.13\bin jmeter.log)

2、參數輸入框中也可以直接輸入字符串參數值,如下

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