jmeter學習指南之Beanshell Sampler 常用方法
JMeter 中可以使用 Beanshell Sampler 編寫一些簡單的指令碼,實現更多功能。
1、Beanshell
Beanshell 是一種輕量級的 Java 指令碼,純 Java 編寫的,能夠動態的執行標準 java 語法及一些擴充套件指令碼語法,類似於 javaScript 和 perl。
2、內建變數
Beanshell Sampler 中除了可以使用標準 java 語法之外,還有一些定義好的變數,可以直接使用。
SampleResult
ResponseCode,
ResponseMessage
IsSuccess
Label
FileName
ctx
vars
props
log
下面我按使用頻率,分別講一下最常用的幾種變數。
3、log
用於列印日誌,最常用,也最簡單;
列印在 jmeter.log 中,可以設定列印級別,可以列印字串、變數等。
使用方法:
1、列印 info 形式的普通字串日誌:
log.info("hello world"); 輸出 hello world
2、拼接字串和變數 (其中 token 是 jmeter 區域性變數):
log.info("hello world" + "${token}"); 輸出 hello world 和 token 變數的拼接結果
3、列印自定義變數
str = "12345";
log.info(str); 輸出 12345
4、列印 error 形式的普通字串日誌:
log.info("hihihi");
log.error("aaaaa");
輸出的區別:
2018-12-27 19:05:13,158 INFO o.a.j.u.BeanShellTestElement: hihihi
2018-12-27 19:05:13,158 ERROR o.a.j.u.BeanShellTestElement: aaaaa
print() 列印日誌
在 beanshell 中還可以使用 print() 函式來列印日誌,輸出字串等資訊;
print() 是在控制檯中輸出資訊,log() 預設是在 jmeter.log 中輸出資訊。
4、vars
用於存取 jmeter 區域性變數,很常用,一定要掌握;
通常用於存取字串內容,也可以存取物件;
vars.get()
String mykey = vars.get("keyname");
獲取變數名為 keyname 的值,並儲存在 mykey 中。
vars.put()
vars.put("keyname","value");
把變數 keyname(值為 value)儲存到 jmeter 變數中。
vars.putObject("OBJname",new Object());
把一個物件 OBJname 儲存到 jmeter 變數中
vars.remove()
vars.remove("keyname");
從 jmeter 變數中刪除 keyname。
5、props
用於存取 jmeter 全域性的靜態變數;
其中的 key 和 value 均是字串形式;
ymd = props.get("START.YMD");
獲取屬性 START.YMD 的值(指令碼啟動日期)。
props.put("PROP1","1234");
把 1234 存入全域性屬性 PROP1 中。
6、ctx
當前執行緒的上下文資訊;
使用舉例:
ctx.getCurrentSampler(); 獲取當前 sampler 請求
ctx.getPreviousSampler(); 獲取前一個 sampler 請求
ctx.getThreadNum(); 獲取當前執行緒的序號,從 0 開始計數
ctx.getThread(); 獲取當前執行緒
ctx.getThreadGroup(); 獲取當前執行緒組
ctx.getProperties(); 獲取所有屬性
ctx.getVariables(); 獲取當前執行緒的所有變數
7、SampleResult
SampleResult.setResponseData(data);
自定義響應資料。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69942496/viewspace-2654225/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- jmeter學習指南之響應斷言和beanshell斷言JMeterBean
- jmeter學習指南之Beanshell 呼叫 java 程式碼的三種方式JMeterBeanJava
- jmeter學習指南之常用函式的使用JMeter函式
- Jmeter之BeanShell 斷言JMeterBean
- jmeter學習指南之管理CookiesJMeterCookie
- jmeter學習指南之關聯JMeter
- jmeter學習指南之聚合報告JMeter
- jmeter學習指南之詳解jmeter執行緒組JMeter執行緒
- jmeter學習指南之操作 mysql 資料庫JMeterMySql資料庫
- jmeter學習指南之原始碼匯入 IntelliJ IDEAJMeter原始碼IntelliJIdea
- jmeter學習指南之OOM和監聽器使用JMeterOOM
- Jmeter——SMTP Sampler傳送郵件JMeter
- jmeter學習指南之引數化CSV Data Set ConfigJMeter
- jmeter學習指南之結果分析-圖形圖表JMeter
- jmeter學習指南之16個邏輯控制器JMeter
- jmeter學習指南之深入分析跨域傳遞cookieJMeter跨域Cookie
- jmeter學習指南之非GUI命令列執行詳解JMeterGUI命令列
- Jmeter beanshell程式設計例項JMeterBean程式設計
- jmeter學習指南之Boundary Extractor和正規表示式提取器JMeter
- jackson學習之八:常用方法註解
- 『動善時』JMeter基礎 — 12、JMeter取樣器詳解:samplerJMeter
- JMeter 擴充套件開發:自定義 Java SamplerJMeter套件Java
- jmeter學習指南之察看結果樹,你知道都有哪些功能嗎JMeter
- jmeter學習指南之最佳化指令碼JMeter指令碼
- 『動善時』JMeter基礎 — 31、JMeter中BeanShell斷言詳解JMeterBean
- (十一)TestNG學習之路—BeanShell高階用法Bean
- python學習之字串常用方法和格式化字串Python字串
- Jmeter使用beanshell對資料進行加密傳輸JMeterBean加密
- 掌握BeanShell,輕鬆處理jmeter中的資料BeanJMeter
- Python學習之常用模組Python
- jmeter學習指南之分散式測試的來龍去脈JMeter分散式
- Jmeter 介面自動化連載 (15) - beanshell 實現字串加密JMeterBean字串加密
- jmeter學習指南之HTTP請求中自動重定向和跟隨重定向的區別JMeterHTTP
- Hive學習之常用互動命令Hive
- 十二、Jmeter 斷言-響應斷言、Json 斷言和 Beanshell 斷言JMeterJSONBean
- MongoDB 學習筆記之常用 shell 命令MongoDB筆記
- jackson學習之七:常用Field註解
- Python學習筆記 String型別常用方法Python筆記型別