1. 程式人生 > >【JMeter】一些有用的函式和方法

【JMeter】一些有用的函式和方法

文章目錄

相關文章:【JMeter】Beanshell Sampler 常用方法

1、獲取當前執行緒的名稱

ctx.getThread().getThreadName()

有兩種方法,可以直接用一個函式:

${__BeanShell(ctx.getThread().getThreadName().toString(),)}

也可以在beanshell裡寫指令碼:

import org.apache.jmeter.util.JMeterUtils; 
 
String threadinfo = ctx.getThread().getThreadName().toString();
log.info("threadinfo---"+threadinfo);

2、儲存變數到檔案中

下面以儲存 cookies 為例,其它變數是類似的.

import java.lang.String;
import java.io.*;
 
String str = "${COOKIE_xxx},${COOKIE_xxx}\r\n";  //拼接cookie字串
log.info("cookieStr: " + str);

FileWriter writer = null;
writer = new FileWriter("cookies.csv", true);  //若檔案不存在則建立,若檔案存在則追加
writer.write(str);
writer.close();
//log.info("save cookie in file success!");

3、儲存變數到全域性屬性中

# props.put() 儲存變數到屬性中,如:
props.put("access_token","${access_token}");

4、獲取屬性值

# props.get() 從屬性中取出變數值:
String access_token = props.get("access_token");

# "${__P()}" 從屬性中取出變數值:
${__P(access_token,)}

以上兩種方式都可以從屬性中取出 access_token 的值。

5、使用 CookieManager 自定義 cookie 資訊

jmeter 中可以用 cookie 管理器來新增 cookie 資訊;

也可以通過 beanshell 指令碼,使用 CookieManager 自定義 cookie 資訊。

示例如下:

import org.apache.jmeter.protocol.http.control.CookieManager;
import org.apache.jmeter.protocol.http.control.Cookie;
 
CookieManager manager = sampler.getCookieManager();

String s="\""+"${COOKIE_user_id}"+"\"";
log.info("s---"+s);

Cookie cookie = new Cookie("user_id",s,"${ip}","/",false,0);
manager.add(cookie);

Cookie cookie = new Cookie("app_id","${app_id}","${ip}","/",false,0);
manager.add(cookie);