Jmeter使用笔记之组件的作用域

以前一直使用loadrunner,最近入职新公司后需要使用jmeter,这里把使用过程中出现的一些问题进行总结,同时会和自己使用loadrunner的情况相比较,以后也会不断总结,GO!

一、组件的作用域

元件收集其作用范围的每一个sampler元件的信息并呈现,在jmeter中,元件的作用域是靠测试计划的的树型结构中元件的父子关系来确定的,作用域的原则是:

  • 采样器(sampler):元件不和其它元件相互作用,因此不存在作用域的问题。
  • 逻辑控制器(Logic Controller):元件只对其子节点中的取样器 和 逻辑控制器作用。
  • 除采样器 和 逻辑控制器 元件外,其他6类元件,如果是某个sampler的子节点,则该元件只对其父子节点起作用。
  • 除采样器和逻辑控制器元件外的其他6类元件,如果其父节点不是sampler ,则其作用域是该元件父节点下的其他所有后代节点(包括子节点,子节点的子节点等)。

以上是在网上经常会出现的组件的作用域的范畴,但是这里我个人在用的时候却遇到了一点不一样的地方,见如下的分解。

二、组件的作用域之用户定义变量

最近做性能测试的时候用到了多个配置原件,这里说些细节,逻辑上还是和一中的描述匹配的,但是没有说在多个线程组,在子元素中又是如何工作的呢?有如下的场景。

1、有2个线程租,在其中一个线程租定义了用户定义变量,在另一个线程租会不会生效?

2、如果在子元素中定义了用户定义变量,那么在父元素中能否使用呢?

3、除了用户定义变量外其他的配置远见又是如何的呢?

因为在测试中脚本总是出错,不按照自己的理解来执行,单独测试后发现有如下的规律

1、用户定义的变量是跨越多个线程组的,也就是说无论定义了多少变量的容器,只要变量的名字是一样的,也就是说作用域是测试计划。(所以如果定义了多个容器而变量的名字一样,那么肯定会出现预想不到的结果)

2、因为作用域都是整个测试计划,所以无论定义到哪里,效果都是一样的

3、其他的配置原件都是和一中描述的一致的,比如cookie如果定义到一个线程组中那么作用域就是当前的线程组,或许还有特殊的是暂时没有发现的。

因此个人习惯上把用户定义变量都定义到setup中,其他地方都不存在变量。

PS:以下是测试的过程,在setup中定义用户变量,在另一个线程组中使用

其他的没有全部测试,测试了cookie和CSV都是在当前的线程组。

时间: 2025-01-17 20:06:48

Jmeter使用笔记之组件的作用域的相关文章

【转】jmeter学习笔记——一种简单的数据库性能测试方法

前提条件:一个数据库:test   数据库下面有一张表:user   表中有两个字段:username.passworld . 要求:往数据库内大批量插入数据,1000/s 其实和之前的方法一样,为了简单,我还是把截图贴出来吧. 1.创建一个测试计划,将我们所使用的数据库驱动包导入. 2.添加一个线程组,并设置我们的虚拟用户数.启动时间.和循环次数 3.创建一个线程,并在线程下面,创建一个JDBC Connection Configuration ,设置相关信息. 4.创建一个JDBC Requ

安卓开发复习笔记——TabHost组件(实现底部菜单导航)

安卓开发复习笔记——TabHost组件(实现底部菜单导航) 4 来源:cnblog    阅读:1048   时间:2014-09-16 什么是TabHost? TabHost组件的主要功能是可以进行应用程序分类管理,例如:在用户使用windows操作系统的时候,经常见到如图所示的图形界面. TabHost选项卡,说到这个组件,不得不先说一件事情,翻翻谷歌提供给我们的API,我们可以发现这样的一段话: 它告诉我们,这个组件在安卓4.0之后已经被废弃了,建议我们新的程序应该使用Fragment组件

【转】jmeter学习笔记——参数化

JMeter也有像LR中的参数化,本篇就来介绍下JMeter的参数化如何去实现. 参数化:录制脚本中有登录操作,需要输入用户名和密码,假如系统不允许相同的用户名和密码同时登录,或者想更好的模拟多个用户来登录系统. 这个时候就需要对用户名和密码进行参数化,使每个虚拟用户都使用不同的用户名和密码进行访问. 一.准备脚本,测试数据 1.录制一个脚本(可以用badboy工具录制),在jmeter中打开,找到有用户名和密码的页面.如下: 2.我们需要“参数化”的数据,用记事本写了五个用户名和密码,保存为.

【转】jmeter学习笔记——关联

依照<[转]jmeter学习笔记——一个简单的接口测试>一文中的例子,记录讨论关联 所谓关联, 就是第二个Requst, 使用第一个Request中的数据 我们需要在第一个Http Requst 中新建一个正则表达式,把Response的值提取到变量中,提供给别的Http Request 使用 选择第一个Http Request, 右键 Add -> Post Processors -> Regular Expresstion Extractor 现在新建第二个Http Reque

如何理解vue.js组件的作用域是独立的

vue.js组件的作用域是独立,可以从以下三个方面理解: 1.父组件模板在父组件作用域内编译,父组件模板的数据用父组件内data数据:2.子组件模板在子组件作用域内编译,子组件模板的数据用子组件内data数据,如果要用父组件的必须用props传递:3.子组件标签的数据,使用父组件内的data数据 案例代码: <div id="demo"> <my-component v-if="show" v-bind:my-message="messa

Delphi笔记-自定义组件

Delphi笔记-自定义组件 (2010-09-08 16:46:34) 转载▼ 标签: it 分类: delphi 凡是从TComponent继承下来的对象能够被窗体设计器所操纵. 创建一个组件时应该注意的几个方面:1.首先,要确定是否需要创建一个独特的新组件.2.来好好规划一下组件的工作方式.3.做好了准备工作,不要急于实际创建组件,得先问问自己:到底需要这个组件干什么?4.把组件从逻辑上分为几个部分.这样,不仅有利于组件的模块化.简单化,而且能使代码精炼.组织良好.设计组件时,要考虑到可能

JMeter 学习笔记从不懂慢慢提升(01)

开源已经成为一个趋势,虽然说做测试是一个低端的行业,但是我们也应该在这个低端的行业慢慢提升自己,让自己到达理想的高度. 以前说如果你会使用loadrunner可能别人就会觉得你有一定的水平那么就会拿高薪聘请你,可是现在已经不一样了,如果你只是会实用工具还不行,而且还是那高昂的收费工具,你应该学会语言,脚本语言.开发语言~~~~~~~~~~~ 以前总听他们说JMeter但是自己并没有在意,但是现在因为项目需要慢慢的弄了,这里分享一下学习过程. 一.环境搭建 1.JMeter的环境搭建这个和java

JMeter学习笔记---作用域规则

JMeter测试树中既包含遵循分层规则的测试元件(监听器.配置元件.后置处理器.前置处理器.断言.定时器),又包含遵循顺序规则的测试元件(逻辑控制器.采样器),测试人员创建测试计划的同时,实际上就创建了一个采样器请求的顺序列表.遵循分层规则元件:如断言,若其父测试元件是一个采样器,那么它就仅对该采样器生效,如果断言的父测试元件是一个逻辑控制器,那么它对该逻辑控制器下的所有子采样器都生效. 配置元件(HTTP信息头管理器.Cookie管理器和HTTP授权管理器)与默认配置元件(Configurat

Jmeter学习笔记2-原件作用域与执行顺序

1.元件的作用域 (1)配置元件(config elements):会影响其作用范围内的所有元件. (2)前置处理程序(per-processors):在其作用范围内的每一个sampler元件之前执行. (3)定时器(timers):对其作用范围内的每一个sampler有效. (4)后置处理程序(post-processors):在其作用范围内的每一个sampler元件之后执行. (5)断言(Assertions):对其作用范围内的每一个sampler元件执行后的结果执行校验. (6)监听器(L