1. 程式人生 > >用Java創建JMeter變量 - 終極指南

用Java創建JMeter變量 - 終極指南

-i width ole strong integer 整數 nbsp bean 9.png

了解如何在Java中創建不同類型的JMeter變量,不同變量類型的詳細信息以及如何避免錯誤。

Apache JMeter?中編寫負載或功能測試涉及使用不同類型的變量變量有多種用途,例如,在以下情況下:

  • 正在測試API或Web服務返回一個或多個值,並且必須將值數據與預期結果進行比較。
  • 正在測試的API或Web服務返回一個或多個值,並且必須在數據庫中檢查值數據。

因此,應用變量的知識和技能是使用JMeter的基礎本博文將解釋當您需要在測試中使用Java代碼時如何在JMeter中創建變量。

要使用Java語言創建變量,可以使用任何支持BeanShell的標準JMeter元素在這篇博文中,我們將使用

JMeter 3.2JSR223 Sampler元素,其中選擇了Java(BeanShell 2.0b5 / BeanShell Engine 1.0),如下所示:

技術分享圖片

Java中的任何變量都必須具有數據類型。數據類型是確定可能值的範圍,對這些值的操作以及這些值如何存儲在計算機內存中的特性。否則,編譯器將生成錯誤。

Java變量支持兩種數據類型:簡單(也稱為原始)和引用數據。我們將涵蓋兩者。在下一篇博客文章中,我們將解釋您可以使用哪些方法來處理這些變量。

當不需要指定數據類型時,JMeter允許使用非嚴格模式編寫Java代碼,或者在創建變量時使用嚴格模式編寫Java代碼(因為變量需要指定數據類型)。

嚴格模式與在Java中創建和初始化變量的規則完全兼容。要啟用嚴格模式,必須在腳本開頭使用setStrictJava(true)命令:

技術分享圖片

有8種原始數據類型用於表示整數,小數和布爾值:int,short,long,byte,float,double,char,boolean。

具有整數數據類型的變量(int,short,long和byte)

整數類型是一種數據類型,用於沒有小數部分的整數值。整數類型的數據包括以下類型:int,short,longbyte這些類型允許我們表示正值和負值。

您可能會問為什麽有這麽多類型可用。為什麽不能只創建一種類型?原因是當使用簡單數據類型創建變量時,會消耗特定數量的計算機內存。

因此,各種類型用於合理使用該存儲器。

換句話說,如果占用計算機內存的4個字節的數據類型int實際上適合我們,並且我們使用占用8個字節的long類型,則計算機的內存使用效率低下。對於小型軟件系統,這樣的使用不會引起問題,但在大型軟件系統中,這可能導致內存溢出和軟件關閉。實際上,經常使用int數據類型。

下表顯示了所需的內存量以及每種變量類型允許的值範圍:

技術分享圖片

創建具有整數數據類型的變量的示例如下圖所示:

技術分享圖片這是示例代碼:

技術分享圖片
setStrictJava (true);
int a = 2147483647;
short b = 32767;
long c = 9223372036854775807L;
byte d = 127;
log.info(a + " - It is int");
log.info(b + " - It is short");
log.info(c + " - It is long");
log.info(d + " - It is byte");
View Code

註意:當創建與該類型的變量在數值結束時,你必須指定大號此功能與類型轉換有關。

具有浮點類型的數字變量(浮點和雙精度)

具有浮點類型的數字變量是具有整數和小數部分的變量。這些類型包括floatdoubledouble類型變量的精度float類型的兩倍下表顯示了所需的內存量和變量類型的允許值。

技術分享圖片

使用簡單數據類型創建變量的示例如下圖所示:

技術分享圖片這是示例代碼:

技術分享圖片
setStrictJava (true);
float a =3.4028234f;
float b =3.4028234F;
double c = 1.7976931348623157;
log.info(a + " - It is float");
log.info(b + " - It is float");
log.info(c + " - It is double");
View Code

註意:當創建與數值的最後一個float類型的變量,你必須指定?F?F此功能與類型轉換有關。

Char數據類型的變量(char)

具有char數據類型的變量用於以Unicode格式存儲字符。這意味著您可以將變量分配給符號值和相應的Unicode數值。創建具有char類型的變量的示例如下圖所示。

技術分享圖片這是示例代碼:

技術分享圖片
setStrictJava (true);
char a = ‘N‘;
char b = 78;
log.info(a + " - It is char");
log.info(b + " - It is not char");
View Code

使用IntelliJ IDEA中的Java語言創建具有Char類型的變量:

技術分享圖片IntelliJ IDEA中的示例代碼:

示例代碼

技術分享圖片
public class Prim {
   public static void main(String[] args) {
       char a = ‘N‘;
       char b = 78;
       System.out.println(a);
       System.out.println(b);
   }
}
View Code

比較圖像,您可以看到在JMeter中,您無法通過Unicode中的值創建char類型變量。Unicode是一種字符編碼標準。無論程序如何,無論語言如何,本標準都可為任何角色提供唯一的代碼,無論平臺如何。

註意:創建char類型變量時,請將值放在單引號中。

布爾數據類型的變量(布爾值)

具有布爾數據類型的變量是布爾變量,其值為‘false‘和‘true‘。這用於計算邏輯表達式。圖顯示了使用boolean類型創建變量的示例

技術分享圖片這是示例代碼:

技術分享圖片
setStrictJava (true);
boolean a = true;
boolean b = false;
log.info(a + " - It is boolean");
log.info(b + " - It is boolean");
View Code

註意:創建類型為boolean的變量時,該值不會用引號括起來

具有引用數據類型的變量是引用對象的變量。在Java中,所有類型與簡單類型不同的變量都是具有引用數據類型的變量。它們是:String,BigInteger和BigDecimal。

字符串數據類型的變量(字符串)

具有String數據類型的變量是String類的實例的變量。這些變量是不可變的。在下圖中指定了使用String類型創建變量的示例。

技術分享圖片這是示例代碼:

技術分享圖片
setStrictJava (true);
String a = "It is string";
String b = new String("It is string");
log.info(a);
log.info(b);
View Code

註意:使用String類型創建變量時,該值為引號

BigInteger數據類型的變量

具有BigInteger數據類型的變量用於存儲任意長度的整數值。與簡單類型的變量相比,此類型對允許值沒有限制。BigInteger類型的變量的值是不可變的,並且不會導致算術運算中的溢出。

下圖顯示了使用BigInteger類型創建變量的示例

技術分享圖片這是示例代碼:

技術分享圖片
import java.math.BigInteger;
setStrictJava (true);
BigInteger a = new BigInteger("987654321678746474823764374637643764");
log.info(a + " - It is BigInteger");
View Code

BigDecimal類型的變量

具有BigDecimal數據類型的變量用於存儲任意長度的浮點值。與簡單類型的變量相比,此類型對允許值沒有限制。BigDecimal類型的變量的值是不可變的,並且不會導致算術運算中的溢出。此類型用於財務計算,其中準確性非常重要。創建類型為BigDecimal的變量的示例如下圖所示。

技術分享圖片這是示例代碼:

技術分享圖片
import java.math.BigDecimal;
setStrictJava (true);
BigDecimal a = new BigDecimal("1.987654321678746474823764374637643764");
log.info(a + " - It is BigDecimal");
View Code

為了處理變量,無論是使用簡單數據類型還是引用變量,都可以使用原始包裝器。原語的包裝用於不同的情況。一個常見的例子是在測試中使用數據結構,包括數組,列表,集合等。包裝器是與基本類型類比的類,例如,對於int,有一個Integer類。下面是一個簡單類型與類似類的對應關系表。

技術分享圖片

技術分享圖片這是示例代碼:

技術分享圖片
import java.lang.*;
setStrictJava (true);
Integer a = new Integer(23);
Long b = new Long(23456);
Float c = new Float(1.234);
Double d = new Double(1.238);
Short e = new Short("12345");
Boolean f = new Boolean(true);
Character g = new Character(‘A‘);
Byte h = new Byte("17");
log.info(a + " - It is Integer");
log.info(b + " - It is Long");
log.info(c + " - It is Float");
log.info(d + " - It is Double");
log.info(e + " - It is Short");
log.info(f + " - It is Boolean");
log.info(g + " - It is Character");
log.info(h + " - It is Byte");
View Code

用Java創建JMeter變量 - 終極指南