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)中使用,以访问和操作与测试过程相关的信息

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

 

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

 

posted @   你说夕阳很美  阅读(74)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示