Jmeter——BeanShell PreProcessor的用法


------------------------------------------------------------------------------------------------------轉-------------------------------------------------------------------------------------------------------------

一、什么是BeanShell

BeanShell是一個小型嵌入式Java源代碼解釋器,具有對象腳本語言特性,能夠動態地執行標准JAVA語法,並利用在JavaScript和Perl中常見的的松散類型、命令、閉包等通用腳本來對其進行拓展。BeanShell不僅僅可以通過運行其內部的腳本來處理Java應用程序,還可以在運行過程中動態執行你java應用程序執行java代碼。因為BeanShell是用java寫的,運行在同一個虛擬機的應用程序,因此可以自由地引用對象腳本並返回結果。

二、BeanShell PreProcessor的作用
      BeanShell PreProcessor是一個前置處理器,它可以進行一些處理,比如執行一個算法並將結果存儲到參數中。
通過BeanShell PreProcessor可以在發生采樣之前執行任何代碼。
2、添加該部件的步驟
右擊項目——》“添加”——》“前置處理器”——》“BeanShell PreProcessor”
 
添加后,頁面如下圖:
 
3、參數描述如下:
屬性 描述
名稱 該元件的描述性名稱,用於在測試樹種標識元件。
Reset bsh.Interpreter before each call 如果設置該選項,那么就會為每個采樣器重新創建解釋器。
Parameters to be passed to Bean Shell 傳遞給BeanShell腳本的參數。參數存在於如下變量表中:
1)String Parameters:包含有參數的字符串,作為單個變量存在
2)String []bsh.args:包含有參數的字符串數組,以空格作為間隔
Script file 一個文件,其中包含有待運行的BeanShell腳本
Script BeanShell腳本。返回值將被忽略。
 
4、Bean Shell常用內置變量

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

 

  • log用來記錄日志文件,寫入到jmeber.log文件,使用方法:log.info(“This is log info!”);

  • ctx(JmeterContext)通過它來訪問context,使用方法可參考:org.apache.jmeter.threads.JMeterContext

  • vars - (JMeterVariables):操作jmeter變量,提供讀取/寫入訪問變量的方法。這個變量實際引用了JMeter線程中的局部變量容器(本質上是Map),它是測試用例與BeanShell交互的橋梁,常用方法:

 

    a) vars.get(String key):從jmeter中獲得變量值

    b) vars.put(String key,String value):數據存到jmeter變量中

     c) vars.putObject("OBJ1",new Object());

    更多方法可參考:org.apache.jmeter.threads.JMeterVariables

  • props - (JMeterProperties - class Java.util.Properties):操作jmeter屬性,該變量引用了JMeter的配置信息,可以獲取Jmeter的屬性,它的使用方法與vars類似,但是只能put進去String類型的值,而不能是一個對象。對應於java.util.Properties。 

    a) props.get("START.HMS");  注:START.HMS為屬性名,在文件jmeter.properties中定義 

    b) props.put("PROP1","1234"); 

  • prev - (SampleResult):獲取前面的sample采樣的結果,常用方法:

    a) getResponseDataAsString():獲取響應信息

    b) getResponseCode() :獲取響應code

    更多方法可參考:org.apache.jmeter.samplers.SampleResult

  • sampler - (Sampler):gives access to the current sampler 訪問當前采樣

5、用法案例

 

在HTTP信息頭管理器初始化2個參數:一個時間戳 ${Timestamp},一個簽名校驗 ${Sign}
 
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 


免責聲明!

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



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