日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jmeter中没有sampler_jmeter(七)-BeanShell常用内置变量和场景

發布時間:2025/4/5 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jmeter中没有sampler_jmeter(七)-BeanShell常用内置变量和场景 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Bean Shell常用內置變量

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

  • log:寫入信息到jmeber.log文件,對應org.apache.logging.slf4j.Log4jLogger

使用方法:

log.info(“This is log info!”);

log.debug(“This is log debug!”);

log.warn(“This is log warn!”);

log.error(“This is log error!”);

  • ctx:該變量引用了當前線程的上下文;

使用方法:

ctx.getThreadNum() ;

更多使用方法可參考:org.apache.jmeter.threads.JMeterContext。

https://jmeter.apache.org/api/org/apache/jmeter/threads/JMeterContext.html

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

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

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

c) vars.getObject(String key):從jmeter中獲得變量object值

d) vars.putObject(String key, Object value): 保存對象到jmeter變量中

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

https://jmeter.apache.org/api/org/apache/jmeter/threads/JMeterVariables.html

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

a) props.get("language");在文件jmeter.properties中定義

b) props.put("PROP1","1234");設置屬性

  • prev: (SampleResult):獲取前面的sample返回的信息,常用方法:

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

b)prev.getResponseCode() :獲取響應code

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

https://jmeter.apache.org/api/org/apache/jmeter/samplers/SampleResult.html

  • sampler: (Sampler)訪問當前samper對象;常用方法

sampler.setName("beanshell1");

sampler.getName();

備注:

對于不知道內置變量是什么類型對應什么類,可打印出來對應類名;再通過類名查找jmeter api文件,查看具體方法。

log.warn("ctx:"+ctx.getClass().toString());

class 測試結果

Class [B 表示此類是baye [] 及字節數組。

Bean Shell常用引用場景

  • 自定義函數
  • 引用外部java文件
  • 引用外部class文件
  • 引用外部Jar包

一、自定義函數:

在BeanShell中,我們可以使用java語言自定義函數來處理特定的邏輯,結合BeanShell的內置對象進行變量的存取,方便我們進行測試提高腳本的靈活性。

示例:

1、在Test Plan中添加一個變量:hello =kitty

定義變量

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

3、BeanShell Sampler中的腳本如下:

設置腳本

4、運行結果:

beanshell前測試結果

beanshell測試結果

beanshell后測試結果

二、引用外部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文件:

在jmeter中也可以直接引用class文件,示例如下:

1、直接把上例中的java文件編譯成class文件。

2、Bean Shell使用代碼如下:

addClassPath("D:")方法引入 class文件,在用import導入包及類,然后就可以像java一樣調用了

引入外部class

3、運行結果:

測試結果

四、引用外部Jar包:

上面二、三介紹了如何引用外部java和class文件,如果文件比較多時我們可以把它們打成一個jar包然后在jemter中調用

jmeter中引入jar的方法:

方式一:把jar包放到jmeter目錄安裝libext下

方式二:在Test Plan的右側面板最下方直接添加需要引用的jar包,如下圖:

導入jar

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的jmeter中没有sampler_jmeter(七)-BeanShell常用内置变量和场景的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。