免费A级毛片无码专区网站-成人国产精品视频一区二区-啊 日出水了 用力乖乖在线-国产黑色丝袜在线观看下-天天操美女夜夜操美女-日韩网站在线观看中文字幕-AV高清hd片XXX国产-亚洲av中文字字幕乱码综合-搬开女人下面使劲插视频

Jmeter——BeanShell 內(nèi)置變量vars、props、prev的使用

在使用Jmeter過程中,或多或少都會接觸些BeanShell,它會使工具的使用,變得更靈活 。
Jmeter中關(guān)于BeanShell的有:1.BeanShell Sampler 取樣器:完成Beanshell請求組件中定義的腳本功能;
2.BeanShell PostProcessor 后置處理器:可通過編程方式獲取對應(yīng)請求的響應(yīng)結(jié)果;
3.BeanShell PreProcessor前置處理器:可通過編程方式在發(fā)起請求以前做預(yù)處理,比如編碼或者加密;
4.Beanshell 斷言:可通過編程方式實現(xiàn)復(fù)雜的斷言邏輯;
5.Beanshell 計時器:編碼實現(xiàn)條件定時功能;
6.BeanShell Listener 監(jiān)聽器:監(jiān)聽Beanshell運行結(jié)果 。
目前我使用較多的是前三種元件 。使用過程中,就會使用一些內(nèi)置變量,所以這也是今天的主要內(nèi)容 。
varsvars 在 JMeter 內(nèi)部,映射 org.apache.jmeter.threads 的 JMeterVariables 類,官方文檔:https://jmeter.apache.org/api/org/apache/jmeter/threads/JMeterVariables.html
注意點:

  • vars 提供了對當(dāng)前線程變量的讀寫能力
  • 所有的 JMeter 變量都是 java字符串
  • 把數(shù)據(jù)存放到一個 JMeter 變量中,需要先將它轉(zhuǎn)換成字符串
getThreadName方法聲明public String getThreadName()
功能獲取當(dāng)前運行線程名
String threadName = vars.getThreadName();log.info("threadName:"+ threadName);
Jmeter——BeanShell 內(nèi)置變量vars、props、prev的使用

文章插圖
getIteration方法聲明public int getIteration()
功能獲取線程當(dāng)前的迭代號
int itNum = vars.getIteration();String num = String.valueOf(itNum);log.info("itNum:"+ num);
Jmeter——BeanShell 內(nèi)置變量vars、props、prev的使用

文章插圖
這里有個注意點,就是在開始時候提到的,數(shù)據(jù)放到變量中,需要將數(shù)據(jù)轉(zhuǎn)換成String類型 。
put方法聲明public void put(String key, String value)
Parameters:key - the variable namevalue - the variable value
功能創(chuàng)建或更新字符串變量
創(chuàng)建變量
vars.put("name","溫一壺清酒");vars.put("age","5");String varsName = vars.get("name");log.info("varsName:"+ varsName);String varsAge = vars.get("age");log.info("varsAge:"+ varsAge);注意點:age字段值5,需要是字符串類型,否則會報錯 。
Error in method invocation: Method put( java.lang.String, int ) not found in class'org.apache.jmeter.threads.JMeterVariables'
修改變量
vars.put("name","溫一壺清酒 博客園");String varsName = vars.get("name");log.info("varsName:"+ varsName);
Jmeter——BeanShell 內(nèi)置變量vars、props、prev的使用

文章插圖
get方法聲明public String get(String key)
功能獲取變量的值并將其轉(zhuǎn)換為字符串,若變量存在則將值轉(zhuǎn)換為字符串,否則返回 null
String varsSex = vars.get("sex");log.info("varsSex:"+ varsSex);在put方法中,已經(jīng)使用了get的方法,這里列舉個獲取不到變量的情況,返回null
Jmeter——BeanShell 內(nèi)置變量vars、props、prev的使用

文章插圖
putObject方法聲明public void putObject(String key,Object value)
Parameters:key - the variable namevalue - the variable value
功能創(chuàng)建或更新一個非字符串變量 。
vars.putObject("number",8);vars.putObject("list",[2,4,6,8,10]);vars.putObject("array",[1,3,5,7,9,11] as int[]);vars.putObject("map",["name":"溫一壺清酒","source":"博客園"]);log.info("number:"+ vars.getObject("number").toString());log.info("list:"+ vars.getObject("list").size());log.info("array:"+ vars.getObject("array").length);log.info("map:"+ vars.getObject("map").get("name"));
Jmeter——BeanShell 內(nèi)置變量vars、props、prev的使用

文章插圖
getObject方法聲明public Object getObject(String key)

經(jīng)驗總結(jié)擴展閱讀