首页 > 其他分享 >JMeter 变量、属性和对象

JMeter 变量、属性和对象

时间:2024-09-11 14:25:38浏览次数:11  
标签:变量 对象 ctx 线程 JMeter 属性

JMeter体系原理(四): 变量、属性和对象 (qq.com)

在JMeter的元件之间可用通过变量、属性和对象传递数据。

此外,在JMeter编写代码的时,也可以通过变量、属性和对象来影响元件。

 

1. 变量

JMeter 变量是每个线程的本地变量,不同线程之间彼此隔离,

所以 A 线程修改变量后,B 线程中并不会跟着变化。

1. 设定变量

  • 使用配置元件【User Defined Varables】

    • 启动前创建,分配到每一个线程的
  • 前 / 后处理器

    • 执行取样器时创建,只作用于当前线程
  • 脚本

    vars.put("variableName", "variableValue");

2. 使用变量

  • 在元件中,通过的标记使用变量,其中 var_name 是变量的名称,不存在的变量原样返回

    ${var_name}
  • 在脚本中,通过代码使用变量,不存在的变量返回 null

    def name = vars.get("variableName");log.info(name)
  • 如果引用了未定义的函数或变量,JMeter 不会报告 / 记录错误 - 引用原样返回

3. 删除变量

  • 在元件中

  • 在脚本中

    vars.remove("variableName");

2. 属性

JMeter 属性是全局唯一的,所以可用于跨线程传递数据

如果需要跨线程传递数据,可以使用属性,属性在 JMeter 中全局唯一

1. 设定属性

  • 在配置文件中

    propertyName=66666666666666
  • 在启动参数中

    -JpropertyName=7777777777777
  • 元件中

  • 在脚本中

    props.setProperty("propertyName", "88888888888")

2. 使用属性

  • 在元件中

    ${__P(propertyName, defaultValue)}
  • 在脚本中

    def name = props.get("propertyName")

3. 删除属性

在脚本中

props.remove('propertyName')

3. 对象

在 JMeter 中,有一些内置对象可以在测试计划中使用,这些对象提供了方便的方法和属性来处理测试过程中的不同方面。以下是一些常用的 JMeter 内置对象:

1.log (Logger) :日志记录器

用来记录日志

  • log.info("123123") 记录 info 级别的日志,内容为 123123
  • 其他日志等级还有:
    • trace(最低)
    • debug
    • info
    • warn
    • error
    • fatal (最高)

2. ctx (JMeterContext):上下文

提供了与当前线程上下文相关的信息和方法

  • ctx.threadNum:当前线程的编号(从 0 开始)。
  • ctx.thread:当前线程所属的线程对象。
  • ctx.threadGroup:当前线程所属的线程组对象。
  • ctx.currentSampler:当前正在执行的采样器对象。
  • ctx.previousSampler:上一个采样器对象
  • ctx.previousResult:上一个采样结果对象
  • ctx.currentTime:当前时间戳(毫秒)。
  • ctx.variables:当前线程的变量集合。

3. vars(JMeterVariables):变量

当前线程的变量集合。

  • vars.get("variableName"):获取指定变量的值。
  • vars.put("variableName", "value"):设置指定变量的值。
  • vars.remove("variableName"):移除指定变量。

4.props(JMeterProperties):属性

提供了与 JMeter 属性相关的方法和属性。

  • props.get("propertyName"):获取指定属性的值。
  • props.put("propertyName", "value"):设置指定属性的值。
  • props.remove("propertyName"):移除指定属性。

5.sampler (Sampler):当前取样器

6.prev(SampleResult):上一个取样结果

  • sampler.isSuccessful():检查采样器是否成功。
  • sampler.getResponseDataAsString():以字符串形式获取响应数据。
  • sampler.getSampleLabel():获取采样器的标签。

7. args:JSR223 元 件参数(数组格式)

8. Label:采样器标签(元件类型)

9.Filename:JSR223 元件(文件名)

10.Parameters:JSR223 元 件参数 (字符串)

11.OUT : System.out(命令行输出)

  • OUT.println("12312311111111")

12.AssertionResult (AssertionResult):断言结果

  • AssertionResult.setFailure(true)
  • AssertionResult.setFailureMessage("message")

 

内置对象可以在 JSR223 元件(如 Groovy、Benahsell)中使用,以访问和操作与测试过程相关的信息

通过使用这些内置对象,我们可以实现更高级和复杂的测试逻辑和操作。

 

请注意,在使用这些内置对象时,确保正确引用对象名称,并遵循相关的方法和属性的使用规则和文档说明。

 

标签:变量,对象,ctx,线程,JMeter,属性
From: https://www.cnblogs.com/daizichuan/p/18408180

相关文章

  • JDK mac版本安装及环境变量配置
    官网下载jdk8注意:M芯片必须ARM版本否则编译报错安装失败!安装jdk(双击--继续)配置环境变量3.1打开终端窗口,执行以下命令:3.2执行命令打开.zshrc文件修改环境变量配置3.3执行以下命令修改配置:exportJAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Co......
  • JMeter的安装过程
    ‌‌JMeter的安装过程主要包括‌JDK的安装与配置、JMeter的下载与解压、环境变量的配置以及JMeter的启动。通过以上步骤,您就可以成功安装并配置JMeter,进行后续的性能测试和接口测试工作。以下是具体说明:‌一、JDK的安装与配置‌下载JDK‌:访问Oracle官网下载JDK,选择与您的操作......
  • Jmeter接口测试7-Jmeter处理接口存在上下游数据依赖关系的情况
    一、写在前面的话:在我们平常的接口测试中,大部分的接口都是需要鉴权,只有通过鉴权(OAuth、‌Token、‌Session和‌Cookie等几种),才可以确保只有合法的用户才能访问系统接口。这种上一个接口返回的数据作为下一个接口的请求参数,在使用Jmeter做接口测试或压测时,我们首先要登录(获取到......
  • LEAN 类型系统属性 之 定义上相等的非确定性(Undecidability of Definitional Equality
        由于定义上相等(DefinitionalEquality)作用在所有情况,由此,当遇到不一致(Inconsistent)的时候,会导致其结果是不确定的,即会无限展开(unfoldingforever)下去。    原文中,是通过一个定义在自然数(ℕ)的大于关系(>)上的可达类型(AccessibilityType)来论证,这个看原文很好......
  • JMeter性能测试快速入门
    1.安装JmeterJmeter依赖于JDK,所以必须确保当前计算机上已经安装了JDK,并且配置了环境变量。1.1.下载可以ApacheJmeter官网下载,地址:http://jmeter.apache.org/download_jmeter.cgi 1.2.解压因为下载的是zip包,解压缩即可使用,目录结构如下:其中的bin目录就是执行的脚本,其中......
  • 【Linux】命令行参数和环境变量
         ......
  • jmeter通过beanshell中脚本实现随机获取某天(“yyyy-MM-dd HH:mm:ss“)前1周,一个月,一
    在接口测试中,请求参数中涉及时间的参数可能不是固定死的,因此jmeter想通过beanshell中脚本实现随机获取某天(statusTimeEnd(“yyyy-MM-ddHH:mm:ss”))前1周,一个月,一个季度,半年的时间0点,其中statusTimeEnd的值在用户参数中已配置。参考JMeter性能测试实战的方法:http://lit......
  • 【Linux】全面讲解 Shell 变量的那些事
    本文内容均来自个人笔记并重新梳理,如有错误欢迎指正!如果对您有帮助,烦请点赞、关注、转发、订阅专栏!专栏订阅入口Linux专栏 | Docker专栏 | Kubernetes专栏往期精彩文章【Docker】(全网首发)KylinV10下MySQL容器内存占用异常的解决方法【Docker】(全网首发)Kyli......
  • 【没发表过的创新点】【多变量输入单步预测】基于CEEMDAN-VMD-CNN的风电功率预测研究(M
                                          ......
  • WebDriver常用属性和方法
    除了上一篇的元素定位方法,Selenium中的WebDriver类中还有一些常用的属性和方法一、常用的属性1、下表列出了WebDriver的常用属性#属性属性描述用途1driver.name浏览器名称2driver.url当前url3driver.title当前页面标题可用于判断是否成功打开目标页......