1. 程式人生 > >Jmeter之Bean shell使用(二)

Jmeter之Bean shell使用(二)



一、操作變數

二、操作屬性 

三、自定義函式

四、引用外部java檔案

五、引用外部class檔案

六、引用外部Jar包

七、其它用法(接受引數, log等)

一、操作變數:通過使用Bean shell內建物件vars可以對變數進行存取操作

    a) vars.get("name"):從jmeter中獲得變數值

    b) vars.put("key","value"):資料存到jmeter變數中

二、操作屬性:通過使用Bean shell內建物件props 可以對屬性進行存取操作

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

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

三、自定義函式:

  在BeanShell中,我們可以使用java語言自定義函式來處理特定的邏輯,結合BeanShell的內建物件進行變數的存取,方便我們進行測試提高指令碼的靈活性。

示例:

1、在Test Plan中新增一個變數:hello = kitty

 

2、Debug sampler-1和Debug sampler-2什麼都不處理,用來查詢對比beahshell處理前後的結果

3、BeanShell Sampler中的指令碼如下:

4、執行結果:

  • Debug sampler-1中顯示:hello=kitty
  • BeanShell sampler中 返回結果為:success 
  • Debug sampler-1中顯示:hello=world,jmeter=111111

四、引用外部java檔案:

  有沒有覺得上面(三)中自定義函式這樣的方式太麻煩並且也不美觀?而且如果我們已經有現成的java原始檔或者class檔案時,我們有沒有什麼辦法直接在jemter中引用?這就是這部分要介紹的內容,直接上示例:

1、假如我有一個java 原始檔,名為:Myclass.java,程式碼如下:  

複製程式碼
package test;

public class Myclass
{
    public int add(int a, int b)
    {
        return
a + b; } }
複製程式碼

2、Bean Shell使用程式碼如下:

  在bean shel中通過source("程式碼路徑")方法引入java,然後呼叫方法和java一樣,new一個class,再呼叫裡面的add 方法。

3、執行結果:

五、引用外部class檔案:

  現在知道如何引用外部檔案,有時候如果我們只有class檔案怎麼辦呢?其實在jmeter中也可以直接引用class檔案,示例如下:

1、直接把上例中的java檔案編譯成class檔案,如何編譯請自行百度。

2、Bean Shell使用程式碼如下:

  用addClassPath("D:\\")方法引入 class檔案,在用import匯入包及類,然後就可以像java一樣呼叫了

3、執行結果:

六、引用外部Jar包:

  上面四、五介紹瞭如何引用外部java和class檔案,如果檔案比較多時我們可以把它們打成一個jar包然後在jemter中呼叫,具體如何使用可以看我上一篇有介紹:Jmeter之Bean shell使用(一)

  在這裡想補充一點的是jmeter中引入jar的方法:

  1、上一篇中已使用過的:把jar包放到jmeter目錄\apache-jmeter-2.13\lib\ext下

  2、在Test Plan的右側面板最下方直接新增需要引用的jar包,如下圖:

 

七、其它用法: 

1、在Test Plan中定義如下三個變數:

2、Bean Shell可指令碼如下:

  a、bean shell可以接受傳入引數,如下圖:${u1} ${u2} ${u3}

  b、引數可以通過bsh.args[]按順序提取

  c、bean shell提供了一個內建變數Parameters,來儲存引數的集合

3、執行結果:

下圖中1輸入的這兩句設定:

ResponseCode = 500;
ResponseMessage = "This is a test";

下圖中2輸入的這兩句設定:

log.info(Parameters);

log.info(Label);

相關推薦

JmeterBean shell使用(

.get 方法 tro 邏輯 麻煩 str www title jar  上一篇Jmeter之Bean shell使用(一)簡單介紹了下Jmeter中的Bean shell,本文是對上文的一個補充,主要總結下常用的幾種場景和方法,相信這些基本可以涵蓋大部分的需求。本節內容如

【轉載】JmeterBean shell使用()

調用方法 AC beans source 轉載 一個數 lan add sage 原博文地址為:https://www.cnblogs.com/puresoul/p/4949889.html 其中需要註意的是——三、自定義函數中BeanShell裏的方法需要調用才可以生效,

JmeterBean shell使用()——斷言加密的響應資訊

斷言加密的響應資訊 1、在http請求-->新增-->斷言-->bean shell 斷言 import com.changfu.EncryptAndDecryptInterface; //匯入jar包的EncryptAndDecryptInterface類 import org

JmeterBean shell使用()——斷言加密的響應信息

esb resp string brush bsp 請求 截取 status http 斷言加密的響應信息 1、在http請求-->添加-->斷言-->bean shell 斷言 import com.changfu.EncryptAndDecryptI

[搬運工系列]-JMeter(十六)JmeterBean shell使用() JmeterBean shell使用(一) JmeterBean shell使用(一)

 上一篇Jmeter之Bean shell使用(一)簡單介紹了下Jmeter中的Bean shell,本文是對上文的一個補充,主要總結下常用的幾種場景和方法,相信這些基本可以涵蓋大部分的需求。本節內容如下: 一、操作變數 二、操作屬性  三、自定義函式 四、引用外部java檔案 五、引用外

JmeterBean shell使用()

 一、操作變數 二、操作屬性  三、自定義函式 四、引用外部java檔案 五、引用外部class檔案 六、引用外部Jar包 七、其它用法(接受引數, log等) 一、操作變數:通過使用Bean shell內建物件vars可以對變數進行存取操作     a) vars.

JmeterBean shell使用(一)

容器 reads lba art 參考 jmeter .info var result 一、什麽是Bean Shell BeanShell是一種完全符合Java語法規範的腳本語言,並且又擁有自己的一些語法和方法; BeanShell是一種松散類型的腳本語言(這點和JS類似

JmeterBean shell使用(三)——執行緒組之間的引數傳遞

場景測試中,一次登入後做多個介面的操作,然後登入後的uid需要關聯傳遞給其他介面傳送請求的時候使用。 1、在登入介面響應資訊中提取uid欄位值   1>login請求 -->新增 -->後置處理器--> bean shell postprocessor   2>

[搬運工系列]-JMeter(十六)JmeterBean shell使用(一)

一、什麼是Bean Shell BeanShell是一種完全符合Java語法規範的指令碼語言,並且又擁有自己的一些語法和方法; BeanShell是一種鬆散型別的指令碼語言(這點和JS類似); BeanShell是用Java寫成的,一個小型的、免費的、可以下載的、嵌入式的Java原始碼直譯器,

JmeterBean shell使用(五)

1、在Test Plan中定義如下三個變數: 2、Bean Shell可指令碼如下:   a、bean shell可以接受傳入引數,如下圖:${u1} ${u2} ${u3}   b、引數可以通過bsh.args[]按順序提取   c、bean shell提供了一個內建變數Para

【轉載】JmeterBean shell

lan 有一個 不能 acc listener 代碼 靈活 sta www. 一、什麽是Bean Shell BeanShell是一種完全符合Java語法規範的腳本語言,並且又擁有自己的一些語法和方法; BeanShell是一種松散類型的腳本語言(這點和JS類似);

jmeterjava請求次開發

說明與步驟 原則上jmeter的java請求,可以壓測一切可使用java訪問的東西,包括Redis,MQ等等。 需要lib/ext中的ApacheJMeter_core.jar,如擴充套件java請求則還需要ApacheJMeter_java.jar,擴充套

Jmeter 接口測試對上接口結果次處理作為入參 Bean Shell Processor

數據返回 接口 測試 ges alt 返回值 mage logs ima 1.線程組設置,HTTP COOKIE ,HTTP請求默認值設置,;註:Cookie主要傳遞登錄狀態 2.設置登錄 http 請求 3.登錄後,訪問數據接口(並對數據返回值做後置處理)

jmeter 傳送加密請求 beanshell斷言 執行緒組間傳遞引數 jmeter bean shell斷言加密的響應資訊(加密介面測試jmeter 執行緒組之間的引數傳遞(加密介面測試三)

    原文地址https://www.cnblogs.com/wnfindbug/p/5817038.html 最近在做http加密介面,請求頭的uid引數及body的請求json引數都經過加密再發送請求,加密方式為:ase256。所以,jmeter傳送請求前也需要對uid及jso

jmeter bean shell斷言加密的響應資訊(加密介面測試

斷言加密的響應資訊 1、在http請求-->新增-->斷言-->bean shell 斷言 import com.changfu.EncryptAndDecryptInterface;  //匯入jar包的EncryptAndDecryptInterface類import or

Jmeter(三十Jmeter Question 亂碼解讀

直接 默認 進行 json 字符 blog 文件中 內容 錄制完成   眾所周知,編碼的問題影響著眾多開發者,當然見多不怪。   先扒了一個編碼的原因,也就是為什麽要編碼: 計算機中存儲信息的最小單元是一個字節即 8 個 bit,所以能表示的字符範圍是 0~255 個 人

學習路()淺談:bash及其特性,命令歷史以及用戶管理及權限,shell的類型

bash 管理權限 過了一周了,進度似乎有點懈怠,不過過了周末重整旗鼓啦shell(外殼)GUI:Gnome,KDE,xfceCLI:sh,csh,ksh,bashbash(父進程)-----bash(子進程)他們相互獨立彼此不知命令歷史:historybash支持的引號:‘ ’命令替換(鍵盤~的按鍵

spring深入學習(十三) IOC bean 的初始化

一個 bean 經歷了 createBeanInstance() 被創建出來,然後又經過一番屬性注入,依賴處理,歷經千辛萬苦,千錘百煉,終於有點兒 bean 例項的樣子,能堪大任了,只需要經歷最後一步就破繭成蝶了。這最後一步就是初始化,也就是 initializeBea

Jmeter處理session、cookie以及如何做關聯(Jmeter如何提取響應頭部的JSESSIONID

就是利用Jmeter做介面測試的時候,如何提取頭部的JSESSIONID然後傳遞到下一個請求,繼續完成當前使用者的請求。其實,關於這個問題有三種種解決方法:3)如果響應頭裡面有這個JSESSIONID,我們可以通過新增cookie來解決這個問題,今天這篇部落格,我們重點講解第

jmeter獲取響應數據中參數值的常用方式(JSON提取器 、正則表達式提取器 、XPath提取器 、Bean Shell PostProcessor)

選擇 正則表達 pos alt 正則表達式 格式 processor info 表達 JSON提取器: XPath提取器: 返回數據格式是HTML的時候,選擇使用此種方式。 正則表達式提取器: 圖中Field to check勾選的是Response He