Jmeter各组件介绍 及 使用
本篇主要讲述Jmeter的各个组件及简单使用,其中包括以下内容:
一、线程组
二、逻辑控制器
三、配置元件
四、定时器
五、后置处理器
六、断言
七、监听器
八、参数化
网上大神整理的链接:http://blog.csdn.net/lxgails00
线程组
线程组的添加:测试计划---添加---Threads ---线程组

逻辑控制器
常用的逻辑控制器
1、循环控制器:可以设置该控制器内的sampler执行的次数,循环次数与线程的循环次数各自独立。
设置线程组循环次数为1,如下图所示:
设置 循环控制器 的循环次数为5,如下图所示:
在 察看结果树 中执行的请求次数为5,如下图所示:
2、如果(If)控制器:根据判断条件决定是否执行该控制器内的请求。
首先添加一个用户自定义变量,如下图所示:
设置 如果(If)控制器 的条件,如下图所示:
现在,可以在 察看结果树 中看到发送的请求,比如条件处为:1==1也可以执行get请求;如果条件处为 空或者为1==2,则不会执行get1请求。
3、随机控制器:随机执行该控制器内的 一个 请求。
添加随机控制器,我添加了三个请求以做演示。如下图所示:
线程组为打开后默认的随机1次,1秒内起1个虚拟用户。
执行后在 察看结果树 中仅显示一个get请求,如下图所示:
4、随机顺序控制器:执行该控制器内的所有请求,顺序随机。
前提条件:线程组为打开后默认的随机1次,1秒内起1个虚拟用户。
添加 随机顺序控制器 ,如下图所示:
点击运行后,显示的执行结果为:随机并顺序的执行的所有get请求,如下图所示:
5、仅一次控制器:该控制器内的请求只执行一次,无论线程循环多少次。
前提条件:线程组为打开后设置为循环次数2次,1秒内起1个虚拟用户。
在 仅一次控制器 下添加两个get请求,如下图所示:
执行后在 察看结果树 中显示为如下图所示:
其上图中Text中的两个标红的get3为测试计划中独立于 仅一次控制器 的get3请求,因为我在线程组设置的循环为2次,所以在Text处显示为两个get3请求。
6、switch控制器:设置控制器上的value值(从0开始【0代表第一个请求;1代表第二个请求;2代表第三个请求以此类推】),也可直接写想要执行的请求名,比如get2;执行控制器内对应的sampler。
前提条件:线程组为打开后设置为循环次数2次,1秒内起1个虚拟用户。
如下图所示设置为2 即为第三个请求get3:
执行后的结果为 如下图:
如下图所示switch处设置为请求的名称get2:
执行后的结果为 如下图所示:
===============================================================
配置元件
常用的配置元件
1、http cookie管理器:可以在浏览器中抓取到cookie信息,然后通过http cookie管理器为http请求添加cookie信息。
如下图中展示:
2、http信息头管理器:在http信息头管理器中添加http请求header中的名称和值,可以修改请求头的值。
如下图所示修改了两个请求的名称和值:
3、用户自定义变量:用户可以自定义的变量比如:JDBC连接数据库时用到的用户名密码端口和URL,也可与函数助手生成的函数混合使用。
详见该文章的参数化章节
4、CSV Data Set Config:参数化的一种。
详见该文章的参数化章节
===============================================================
定时器
常用的定时器
1、固定定时器:设置一个固定的延迟时间,单位ms。
前提条件:线程组为打开后默认的随机1次,1秒内起1个虚拟用户。
设置为3s的定时器即为 在发送请求之前停留3秒的时间,如下图所示:
如果有两个请求get1和get2,执行的顺序为:先停留3秒执行get1;再停留3秒执行get2.如下图所示的:
注释:
Jmeter中的定时器类似于loadrunner中的pacing值和think_time
1)定时器是在每个sampler(采样器)之前执行的
2)定时器是有作用域的;当执行一个sampler之前时,所有当前作用域内的定时器都会被执行。且所有的sampler执行前都会执行定时器
3)如果希望定时器仅应用于其中一个sampler,则把该定时器作为子节点加入,如下图所示:
2、同步定时器(synchronizing timer):在该定时器处,使线程等待,一直到指定的线程个数达到后,再一起释放。可以在瞬间制造出很大的压力。和loadrunner的集合点差不多的功能。
前提条件:设置线程为5,循环2次1秒内启动,如下图所示:
设置同步定时器(synchronizing timer)为5,每组5个用户并发(这个设置与线程组设置的线程数有关联)。如下图所示:
执行后的结果为:
===============================================================
后置处理器
正则表达式提取器:可以通过正则表达式来获取http请求返回的数据。
注释:
1)引用名称:匹配后的结果,保存到一个参数中,如param
2)正则表达式:支持正则表达式的语法,用()来进行分组,指定要获取的内容,如":(.+),
3)模板:$1$表示取匹配到的第一组数据,$2$为第二组
4)匹配数字:当某组数据中包含多个参数时,0代表随机,1代表该组的第一个参数,2表示第二个。-1代表获取全部的参数,这个时候,引用名称就变成了参数数组,可以通过param_n来获取指定的参数
当有多组数据时,第一组为param_g1,第二组为param_g2
操作:
前提条件:线程组为打开后默认的随机1次,1秒内起1个虚拟用户。
get URL:http://127.0.0.1:8080/PerfTeach/GetMethod_getSkuInfo.action?skuid=1239&opt=34
get 响应数据:{"skuId":0,"price":88.0,"stock":1268,"opt":34,"result":true}
依据get1返回的数据进行正则的匹配,如下图所示:
提取get1返回的数据放置在get2的请求中,相当于LR的关联。如下图所示:
察看结果树 中显示如下图所示:
===============================================================
断言
常用的断言
1、响应断言
一般为文本断言,添加想要断言的文本即可,相当于LR中文本检查点,如下图所示:
其他断言方式后续再进行补充……
===============================================================
监听器
常用监听器
1、察看结果树:一般用于调试使用。如下图展示:
2、聚合报告:
其他监听器后续再进行补充……
============================================================
参数化
常用的参数化方式
1、借助自带的 函数助手 生成参数化
1)、生成随机数: __Random函数

2)、生成随机字符串:_RandomString

3)、从文件中读取 __CSVRead

!!!下图所示为以上三种的聚合:

注释:
1处意思为:在abc三个字符中随机生成长度为5的字符串
2处意思为:随机生成数字,范围为:1--12
3处意思为:读取a.txt文件中的数据;其后的0与线程组设置的线程数有关。假设a.txt中有三列数据,线程组设置为3才能都会分别取到
2、用户自定义变量
添加用户定义的变量:HTTP请求--添加--配置元件 --用户定义的变量

说明:“用户定义的变量”也可以添加在事务控制器下或者线程组下,视该配置元件的作用域而定
3、CSV Data Set Config
添加CSV Data Set Config :线程组--添加--配置元件-- CSV Data Set Config

Jmeter各组件介绍 及 使用的更多相关文章
- JMeter主要组件介绍
JMeter主要组件介绍 转自https://www.cnblogs.com/linbo3168/p/6023962.html 作者:linbo.yang 1.测试计划(Test Plan)是使用 ...
- jmeter基本组件介绍
常用术语统一:元件-jmeter工具菜单的一个子菜单(功能) 组件-一组元件的集合.如http请求与取样器的的关系 jmeter测试计划要素: (1)脚本中测试计划只能有一个: (2)测试计划中至 ...
- jmeter的组件介绍--框架
测试计划(test plan):用于存放测试脚本的容器. 线程(threads):通过java多线程来实现模拟多用户操作,只有在线程组下才能添加sample(各种协议的请求),因此线程是必须的. 取样 ...
- JMeter 各组件介绍以及用法
录制脚本 常用组件 参数化 关联
- Jmeter重要组件介绍(一)
一.常用的取样器 二.常用的逻辑控制器 三.前置处理器 四.后置处理器 五.断言 六.定时器 七.配置元件 八.监听器
- 2.jmeter组件介绍
jmeter默认语言设置: 1.临时设置: 进入options -- Choose Language -- 选择中文简体,设置后语言 切换成中文,重启失效 2.永久设置:进入jmeter目录下的 ...
- jmeter工作目录介绍、jmeter元件及组件介绍
一.jmeter工作目录介绍: bin:放置各项配置文件(如日志设置.JVM设置).启动文件.启动Jar包.示例脚本等: docs:放置JMeter API的离线帮助文档: extras:JMeter ...
- JMeter入门(1):JMeter总体介绍及组件介绍
一.JMeter概述 JMeter就是一个测试工具,相比于LoadRunner等测试工具,此工具免费,且比较好用,但是前提当然是安装Java环境: JMeter可以做 (1)压力测试及性能测试: (2 ...
- Jmeter应用初步介绍
一.工具介绍 Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域. 它可以用于测试静态和动态资 ...
随机推荐
- 【Spark】Spark容错机制
引入 一般来说,分布式数据集的容错性有两种方式:数据检查点和记录数据的更新. 面向大规模数据分析,数据检查点操作成本非常高,须要通过数据中心的网络连接在机器之间复制庞大的数据集,而网络带宽往往比内存带 ...
- 大话设计模式C++实现-第8章-工厂方法模式
一.UML图 二.概念 工厂方法模式(Factory Method):定义一个用于创建对象的接口,让子类决定实例化哪一个类.工厂方法是一个类的实例化延迟到其子类. 三.包括的角色 (1)抽象工厂 (2 ...
- [转载]【BlackHat 2017】美国黑客大会首日议题汇总,演讲PPT下载也在这里
今年是 Black Hat 举办的第 20 个年头,高温酷暑也挡不住全世界黑客和安全人员奔赴拉斯维加斯的热情.毕竟这可是一年一度的盛大狂欢啊.今年的 BHUSA 从美国东部时间时间 7 月 22 日( ...
- android/java经常使用的工具类源代码
anroid.java经常使用的工具类源代码,当中包含文件操作.MD5算法.文件操作.字符串操作.调试信息log.base64等等. 下载地址:http://download.csdn.net/det ...
- linux netlink套接字实现相似ss命令 ,统计套接字以及TCP信息
參考了 ss的源码 以及 netlink相关资料:http://blog.csdn.net/scdxmoe/article/details/27711205 实现结果为: gcc netlink_di ...
- Justinmind使用教程(2)——计算表达式及条件用法
Justinmind的计算表达式以及条件condition的使用对于刚開始学习的人而言比較麻烦. 结合网上了一个教程本文主要针对计算器演示样例进行计算表达式以及条件的使用. 实现目标:依据单位价格(静 ...
- 图像处理之基础---图像缩放中的双线性插值c实现
在进入频域变换之前, 我们还是轻松一下,再搞点平面上的变化来看看.这把选了一个双线性插值(Bilinear interpolation)来实现是源于看到了csdn上别人的问题, 权且实现一个函数,方便 ...
- Cocos2d-x项目创建
以创建HelloWorld项目为例子,执行create_project.py脚本,进入Doc界面输入下面的命令: (1)E: (切换盘符,因为我的Cocos2d-x源码在E盘,create_pro ...
- Hihocoder #1479 : 三等分 树形DP
三等分 描述 小Hi最近参加了一场比赛,这场比赛中小Hi被要求将一棵树拆成3份,使得每一份中所有节点的权值和相等. 比赛结束后,小Hi发现虽然大家得到的树几乎一模一样,但是每个人的方法都有所不同.于 ...
- HDU 5855Less Time, More profit
Less Time, More profit Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/O ...