首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

本文系《JMeter文档通读》系列内容

正在连载,欢迎关注

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

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

1. 变量

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

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

1. 设定变量

使用配置元件【User Defined Varables】

启动前创建,分配到每一个线程的

前 / 后处理器

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

脚本

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

2. 使用变量

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

${var_name}

在脚本中,通过代码使用变量,不存在的变量返回 null

如果引用了未定义的函数或变量,JMeter 不会报告 / 记录错误 - 引用原样返回

3. 删除变量

在元件中

在脚本中

vars.remove("variableName");

2. 属性

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

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

1. 设定属性

在配置文件中

propertyName=66666666666666

在启动参数中

-JpropertyName=7777777777777

元件中

在脚本中

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

2. 使用属性

在元件中

${__P(propertyName, defaultValue)}

在脚本中

3. 删除属性

在脚本中

props.remove('propertyName')

3. 对象

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

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

用来记录日志

其他日志等级还有:

trace(最低)

debug

info

warn

error

fatal (最高)

2. ctx (JMeterContext):上下文

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

ctx.threadNum:当前线程的编号(从 0 开始)。

ctx.thread:当前线程所属的线程对象。

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:采样器标签(元件类型)

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

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

OUT.println("12312311111111")

12.AssertionResult (AssertionResult):断言结果

AssertionResult.setFailure(true)

AssertionResult.setFailureMessage("message")

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

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

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

能看到这里说明是真爱,关注一下吧

首发于公众号:测试开发研习社

  • 发表于:
  • 原文链接https://page.om.qq.com/page/O_MApCBU6MGmxvZY3ElhmzWw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券