前言
Beanshell 為一個輕量級 Java interpreter,可以完整 Java 語法動態執行、片段代碼執行。JMeter 功能已經相當齊全,但我們仍能透過 Beanshell 撰寫各種客製的前處理、取樣與後置處理,製作符合各種情境的腳本。如同撰寫 Java 應用程式,在JMeter內能匯入各種套件使用,我們也將介紹如何匯入 jar 檔,在Beanshell 撰寫進行簡易的 json 解析。本篇主要內容為:
1. BeanShell 取樣
2. JAR 匯入與使用
本篇文章若有錯誤或任何建議,請各位先進不吝指教,謝謝。
1. BeanShell 取樣
2. JAR 匯入與使用
本篇文章若有錯誤或任何建議,請各位先進不吝指教,謝謝。
介紹
BeanShell 取樣
在 JMeter,我們能增加三種有關Beanshell 的操作,分別是 Beanshell 前置處理器、後置處理器與取樣。在第三篇隨機資料的範例中,我們簡單介紹 Beanshell 內接收 variable 與 property,並且列印出結果。使用方式方別為:
Step 1. 於執行緒群組點選右鍵,新增 BeanShell 取樣
Step 2. 寫入程式如下
vars.put("UserName","Duran"); var userFromVars = vars.get("UserName"); print(userFromVars); props.put("UserName","Ina"); var userFromProp = props.get("UserName"); print(userFromProp);
Step 3. 執行結果如下
for(int i = 0; i < 10; i++){ if(i % 2 == 0){ print("haha"); } }
Step 5. 執行結果如下
JAR 匯入與使用
雖然 JMeter 已經有 JSON 處理器,但我們也能透過匯入jar檔案,在 Beanshell 內進行JSON解析。Step 1. 首先我們到網站先下載 minimal-json-0.9.4.jar 檔案到 jmeter\lib 資料夾下
Step 2. 開啟JMeter,撰寫下列範例程式,並執行。
import com.eclipsesource.json.JsonObject; String jsonString = "{\"boolean\": true, \"name\": \"Duran\", \"age\": 123, \"string\": \"Hello World\", \"array\": [1,2,3]}"; JsonObject json = JsonObject.readFrom(jsonString); print("JSON String:" + jsonString); print("Name:" + json.get("name").asString());
Step 3. 通常我們會用於接收 response 並解析 (BeanShell後置處理器),如下範例:
import com.eclipsesource.json.JsonObject; String jsonString = prev.getResponseDataAsString(); JsonObject json = JsonObject.readFrom(jsonString); print("token:" + json.get("authtoken").asString());
我們透過prev.getResponseDataAsString()取得 Response 並作為字串,再透過 JsonObject.readFrom() 方法轉成 JsonObject,方便我們進行進階操作。
目錄:請點我
下一篇:JMeter Preprocessor and Postprocessor 前置處理器與後製處理器
0 留言