• 用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创建JMeter变量

    Java中的任何变量都必须具有数据类型。数据类型是确定可能值的范围,对这些值的操作以及这些值如何存储在计算机内存中的特性。否则编译器将生成错误。

    Java变量支持两种数据类型:简单(也称为原始)和引用数据。我们将涵盖两者。在下一篇博文中,我们将解释您可以使用哪些方法来处理这些变量。

    当不需要指定数据类型时,JMeter允许使用非严格模式编写Java代码,或者在创建变量时使用严格模式编写Java代码(因为变量需要指定数据类型)。严格模式与在Java中创建和初始化变量的规则完全兼容。要启用严格模式,必须在脚本开头使用setStrictJava(true)命令:

    增加图像如何在java中创建变量

    原始数据类型的变量

    有8种原始数据类型用于表示整数,小数和布尔值:int,short,long,byte,float,double,char,boolean。

    具有整数数据类型的变量(int,short,long和byte)

    整数类型是用于没有小数部分的整数值的数据类型。整数类型的数据包括以下类型:int,short,longbyte这些类型允许我们表示正值和负值。

    您可能会问为什么有这么多类型可用。为什么不能只创建一种类型?原因是当使用简单数据类型创建变量时,会消耗特定数量的计算机内存。因此,各种类型用于合理使用该存储器。

    换句话说,如果占用计算机内存的4个字节的数据类型int实际上适合我们,并且我们使用占用8个字节的long类型,则计算机的内存使用效率低下。对于小型软件系统,这样的使用不会引起问题,但在大型软件系统中,这可能导致内存溢出和软件关闭。实际上,经常使用int数据类型。

    下表显示了所需的内存量以及每种变量类型允许的值范围:

    增加图像变量表,变量类型以字节为单位的内存量有效值范围int 4从-2147483648到2147483647 short 2从-32768到32767 long 8从-9223372036854775808到9223372036854775807字节1从-128到127

    使用整数数据类型创建变量的示例如下图所示:

    增加图像jmeter中的简单变量

    这是示例代码:

    setStrictJava  (true );
    
    int  a  =  2147483647 ; 
    短 b  =  32767 ; 
    长 c  =  9223372036854775807L ; 
    字节 d  =  127 ;
     
    登录。info (a  +  “ - 它是int” ); 
    登录。info (b  +  “ - 很短” ); 
    登录。info (c  +  “ - 很长” ); 
    登录。info (d  +  “ - 它是字节” );
    

    注意:  当创建与该类型的变量在数值结束时,你必须指定大号此功能与类型转换有关。

    具有浮点类型的数字变量(浮点和双精度)

    具有浮点类型的数字变量是具有整数和小数部分的变量。这些类型包括floatdoubledouble类型变量的精度float类型的两倍下表显示了所需的内存量和变量类型的允许值。

    增加图像open source,java,variables,jmeter,变量类型以字节为单位的内存量有效值float 4大约从-3.40282347E + 38F到3.40282347E + double 8从-1,7976931348623157E + 308F到1,7976931348623157E + 308F

    使用简单数据类型创建变量的示例如下图所示:

    增加图像用java在jmeter中创建变量

    这是示例代码:

    setStrictJava  (true );
    
    float  a  = 3.4028234f ; 
    float  b  = 3.4028234 F; 
    double  c  =  1.7976931348623157 ;
     
    登录。info (a  +  “ - 它是浮动的” ); 
    登录。info (b  +  “ - 它是浮动的” ); 
    登录。info (c  +  “ - 它是双倍的” );
    

    注意:  当创建与数值的最后一个float类型的变量,你必须指定˚F˚F此功能与类型转换有关。

    Char数据类型的变量(char)

    具有char数据类型的变量用于以Unicode格式存储字符。这意味着您可以将变量分配给符号值和相应的Unicode数值。创建具有char类型的变量的示例如下图所示。

    增加图像jmeter中的char类型变量

    这是示例代码:

    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");

    使用IntelliJ IDEA中的Java语言创建具有Char类型的变量:

    增加图像jmeter中的java变量

    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);
    
       	}
    }
     

    比较图像,您可以看到在JMeter中,您无法通过Unicode中的值创建char类型变量。Unicode是一种字符编码标准。无论程序如何,无论语言如何,该标准都可为任何角色提供唯一的代码,无论平台如何。

    注意:  创建char类型变量时,请将值放在单引号中。

    布尔数据类型的变量(布尔值)

    与变量布尔数据类型是采用的值“假”与“真”的布尔变量。这用于计算逻辑表达式。图显示了使用boolean类型创建变量的示例

    增加图像java中的jmeter变量 - 如何创建

    这是示例代码:

    setStrictJava (true);
    
    boolean a = true;
    boolean b = false;
    
    log.info(a + " - It is boolean");
    log.info(b + " - It is boolean");

    注意:创建类型为boolean的变量时,该值不会用引号括起来

    参考数据类型的变量

    具有引用数据类型的变量是引用对象的变量。在Java中,所有类型与简单类型不同的变量都是具有引用数据类型的变量。它们是:String,BigInteger和BigDecimal。

    字符串数据类型的变量(字符串)

    具有String数据类型的变量是作为String类的实例的变量。这些变量是不可变的。在下图中指定了使用String类型创建变量的示例。

    增加图像如何在jmeter中创建变量

    这是示例代码:

    setStrictJava (true);
    
    String a = "It is string";
    String b = new String("It is string");
    
    log.info(a);
    log.info(b);

    注意:  使用String类型创建变量时,该值为引号

    BigInteger数据类型的变量

    具有BigInteger数据类型的变量用于存储任意长度的整数值。与简单类型的变量相比,此类型对允许值没有限制。BigInteger类型的变量的值是不可变的,并且不会导致算术运算中的溢出。

    下图显示了使用BigInteger类型创建变量的示例

    增加图像jmeter中的java变量

    这是示例代码:

    import java.math.BigInteger;
    
    setStrictJava (true);
    
    BigInteger a = new BigInteger("987654321678746474823764374637643764");
    
    log.info(a + " - It is BigInteger");

    BigDecimal类型的变量

    具有BigDecimal数据类型的变量用于存储任意长度的浮点值。与简单类型的变量相比,此类型对允许值没有限制。BigDecimal类型的变量的值是不可变的,并且不会导致算术运算中的溢出。此类型用于财务计算,其中准确性非常重要。创建类型为BigDecimal的变量的示例如下图所示。

    增加图像如何在jmeter中创建简单和引用数据类型变量

    这是示例代码:

    import  java.math.BigDecimal;
    
    setStrictJava  (true );
    
    BigDecimal  a  =  new  BigDecimal(“1.987654321678746474823764374637643764” );
    
    登录。info (a  +  “ - 它是BigDecimal” );
    

    原始包装

    为了处理变量,无论是使用简单数据类型还是引用变量,都可以使用原始包装器。原语的包装用于不同的情况。一个常见的例子是在测试中使用数据结构,包括数组,列表,集合等。包装器是与基本类型类比的类,例如,对于int,有一个Integer类。下面是一个简单类型与类似类的对应关系表。

    增加图像原始包装器,java,变量,jmeter,简单类型对应的类超类int整数数字long long Number float Float Number double Double Number short Short number boolean Boolean char字符字节字节数

    增加图像primitve包装器,jmeter,变量,简单类型,基元类型,引用类型

    这是示例代码:

    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");

    而已!您已经完成了使用Java在JMeter中创建变量的综合指南。下次我们和我们一起学习不同的实施方法。

  • 相关阅读:
    html-css___table属性(设置细线边框)
    简单的jquery表单验证+添加+删除+全选/反选
    CKEditor5 使用第二天 获取回传数据,图片上传
    ckeditor5 使用第一天 下载并加载居中,居左,居右功能
    Android studio 3.4 新建项目报错Error:unable to resolve dependency for app@。。。解决办法
    IDEA 运行后乱码问题解决
    tomcat9启动后控制台输出乱码问题
    springboot架构下运用shiro后在configuration,通过@Value获取不到值,总是为null
    IDEA org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):
    查找 oracle 数据库中包含某一字段的所有表的表名
  • 原文地址:https://www.cnblogs.com/a00ium/p/10263752.html
Copyright © 2020-2023  润新知