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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

jsr223 java_Jmeter 组件 JSR223 使用详解

發布時間:2025/3/15 javascript 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jsr223 java_Jmeter 组件 JSR223 使用详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JSR223 控件簡介

JSR223 控件允許執行 JSR223 腳本代碼用于創建/更新所需的某些變量。

包括 JSR223 取樣器、JSR223 前置處理器、JSR223 后置處理器、JSR223 斷言、JSR223 定時器以及 JSR223 監聽器

相比于 BeanShell 取樣器,JSR223 取樣器 +groovy 腳本具有可大大提高性能的功能(編譯),同時支持更多的腳本語言,其中包括 BeanShell 腳本,所以在編寫腳本時不建議使用 BeanShell 取樣器,如果需要,使用 JSR223 取樣器編寫腳本是更好的選擇。

由于本人只了解 JAVA,所以以下腳本說明,均基于 JSR223+groovy 的 java 語法編寫進行,其他語言腳本我也不懂,請自行參閱。

屬性描述

名稱:顯示的此取樣器的描述性名稱,可自定義

語言:要使用的 JSR223 腳本語言的類型

參數:要傳遞到腳本文件或腳本的參數列表

腳本文件:用于執行的腳本文件,若沒有腳本文件,將執行腳本

腳本:傳遞給 JSR223 執行的腳本

如果提供了腳本文件,則執行腳本文件,否則執行腳本。

JSR223 用法詳解

1、調用內置函數

獲取返回數據并轉換為 String 字符串

String Responsedata = prev.getResponseDataAsString();

if(Responsedata.contains("百度一下,你就知道")){

//如果參數為 true,則樣本執行判斷為成功,為 false,則設置樣本失敗

prev.setSuccessful(true);

}else{

prev.setSuccessful(false);

}

獲取返回數據并保存為字節數組對象,適用于保存返回數據至本地(如下載文件等操作)

import java.io.*;

byte[] bytes = prev.getResponseData();

String file_path = "F:/download/test.html";

File file = new File(file_path);

FileOutputStream out = new FileOutputStream(file);

out.write(bytes);

out.close();

prev.getResponseDataAsString() 與 prev.getResponseData() 都是獲取 Response Body 的內容,只是返回的數據類型不同,prev.getResponseDataAsString() 返回 String 字符串,prev.getResponseData() 返回 byte[] 字節數組,使用時可根據實際需要對返回數據進行處理。

獲取請求頭信息

String headers = prev.getRequestHeaders() ;

獲取請求返回的 code

String code = prev.getResponseCode() ;

獲取響應信息

String responsesmessage = prev.getResponseMessage() ;

獲取響應頭信息

String responsesheader= prev.getResponseHeaders() ;

//獲取請求 URL

URL url = prev.getURL() ;

String url1 = prev.getUrlAsString();

設置響應信息 Response message

prev.setResponseMessage("這是響應信息");

設置響應代碼 Response code

prev.setResponseCode("404");

注意:在 beanshell 腳本中可直接使用

ResponseMessage="這是響應信息";

ResponseCode="404";

IsSuccess="false";

但是在 JSR223 中不能用,而只能使用 prev.set 的方法

打印日志 ,日志會保存在 bin 目錄下的 jmeter.log 文件中

默認支持級別為 info 及以上,debug 級別日志由于太多,默認不支持

log.error("This is error message");

OUT 功能等同于 System.out,將在 Jmeter 工作臺輸出信息

OUT.println("此消息將被輸出到 Jmeter 控制臺");

設置屬性與調用屬性

${__setProperty(test1,property1,)};

props.put("test2","property2");

String test1 =props.get("test1");

String test2 = props.get("test2");

屬性是所有線程公有的,需要注意的是,在 JSR223 或 BeanShell 中使用 props.put(” name”,” value”)創建的屬性,不能直接在當前 JSR223 或 BeanShell 中使用 ${__P(name,)}或 ${__property(name,,)}進行調用,如果需要在當前 JSR223 或 BeanShell 中調用,需要使用 props.get("name") 方法。此處的 name 是屬性名稱,而不是隨機的字符串。

定義變量與調用變量

此處的 name 是在用戶定義的變量中定義的變量,已賦值為 lucy

String test5 = vars.get("name");

//定義變量值,并獲取

vars.put("name2","jack");

String test6 = vars.get("name2");

通過 vars.put(“name”,” value”) 方式定義的變量作用域限制為當前線程組,如果要跨線程調用,請使用屬性定義,與 props.put(” name”,” value”)同樣的,vars.put(“name”,” value”) 創建的變量,也不能直接在當前 JSR223 或 BeanShell 中使用 ${name}進行調用,而是使用 vars.get("name") 方法。

2、執行外部 java 文件

新建一個 Java 文件,添加如下代碼

public class AddTest {

public int add(int a ,int b){

return a+b ;

}

}

然后在 JSR223 中引入源文件并執行,執行方法與 JAVA 本身的方法一致

//引入源文件

source("F:/apache-jmeter-5.3/TestPlan/AddTest.java");

AddTest add = new AddTest();

int sum = add.add(15,20);

log.info("sum is : " + sum);

執行結果如下:

3、執行 jar 包

JSR223 可調用外部 jar 包,也可以調用 Jmeter 提供的內部 jar 包,通常將我們寫的代碼打包成 jar 包后,有兩種方法可以引入 jar 包,Jar 包方法調用與 JAVA 語法一致。

1、將 jar 包放到 Jmeter 安裝目錄的\lib\ext 目錄下

2、在測試計劃中導入

調用 Jmeter 內置 MD5 加密

import org.apache.commons.codec.digest.DigestUtils;

String password = DigestUtils.md5Hex("password");

vars.put("password",password.toUpperCase());

調用外部 jar

AddTest add = new AddTest();

int sum = add.add(15,10);

log.info("sum is : " + sum);

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的jsr223 java_Jmeter 组件 JSR223 使用详解的全部內容,希望文章能夠幫你解決所遇到的問題。

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