元件的基本介绍

元件:多个类似功能组件的容器(类似于类)。
常见的元件类型有:
1.取样器
2.逻辑控制器
3.前置处理器
4.后置处理器
5.断言
6.定时器
7.测试片段
8.配置元件
9.监听器
组件:实现独立的某个功能(类似于方法)
在这里插入图片描述
在这里插入图片描述

元件作用域

在JMeter中,元件的作用域是靠测试计划的树形结构中元件的父子关系来确定的。
提示:核心是取样器,其他组件都是以取样器为核心运行的,组件添加的位置不同,生效的取样器也不同。
作用域的原则

  1. 取样器:元件不和其他元件相互作用,因此不存在作用域的问题;
  2. 逻辑控制器:元件只对其子节点中的取样器和逻辑控制器作用;
  3. 其他六大元件:除取样器和逻辑控制器元件外,如果是某个取样器的子节点,则该元件对其父子节点起作用;
  4. 如果其父节点不是取样器,则其作用域是该元件父节点下的其他所有后代节点(包括子节点,子节点的子节点等) ;

作用域的原理:
按照jmeter测试计划的树形结构来定义作用域(有点儿类型python的缩进)

JMeter第一个案例

使用JMeter访问百度首页接口,并查看请求和响应信息
1.启动JMeter
2.在’测试计划’下添加“线程组’
3.在‘线程组’下添加‘HTTP请求’取样器
4.填写‘HTTP请求’的相关请求数据
5.在‘线程组’下添加‘察看结果树’监听器
6.点击‘启动’按钮运行,并查看结果

在这里插入图片描述
在这里插入图片描述

线程组的特点

●模拟多人操作
●线程组可以添加多个,多个线程组可以并行或串行
●取样器(请求)和逻辑控制器必须依赖线程组才能使用
●线程组下可以添加其他元件下组件
在这里插入图片描述
线程组分类
●线程组
普通的、常用的线程组,可以看做一个虚拟用户组
●setUp线程组
一种特殊类型的线程组,可用于执行预测试操作
●tearDown线 程组
一种特殊类型的线程组,可用于执行测试后工作

线程组的分类:

  1. 普通线程组:用于发送业务请求的线程组(受并行、串行配置的影响)
  2. setup线程组:在所有的线程组之前执行(不受并行、串行配置的影响)
  3. teardown:在所有的线程组之后执行(不受并行、串行配置的影响)

线程组的属性:
线程数:需要模拟的虚拟用户数。
ramp-up time:模拟的虚拟用户数全部启动所需要的时间。
●目的:为了模拟性能测试的场景,更接近用户的使用习惯(用户慢慢接入系统)

循环次数
●设置为固定次数n时:脚本运行时发送请求的次数为n
●设置循环次数为“永远”时,脚本会一直运行下去,不停止
调度器
●一般与循环次数为”永远”的设置配合使用
●持续时间设置为n时:脚本的请求发送的时间为n秒
●延迟启动设置为n时:脚本的请求发送在等待n秒后再进行
延迟创建线程直到需要:当启动线程发送请求时,才分配资源;如果暂未启动该线程,则不分配。如果不勾选,在jmeter点击运行时立即
分配(使用不多,了解即可,无法观察效果)

线程数m和循环次数n的关系:
●如果同时配置,实际发送的HTTP请求数应该为m*n
●虽然发送请求的次数相同,但是不能相互替换
(1)线程数:代表并发用户数,体现服务器的负载量
(2)循环次数:代表执行时间

在这里插入图片描述
在这里插入图片描述

HTTP协议

在这里插入图片描述
在这里插入图片描述
示例:未输入HTTP协议、端口号
在这里插入图片描述
发送请求时:
●协议未填写,则默认为HTTP协议
●端口未填写,则默认为80端口
●将GET请求参数放在路径中填写

Get请求

发送请求时:
●协议选择HTTPS,
●端口号为443
●将GET请求参数放在下面的参数列表中进行填写
在这里插入图片描述

Post请求

发送请求时:
●方法选择POST
●将参数内容放入到消息体数据中,在发送时参数会添加到消息体中
发送
在这里插入图片描述

在这里插入图片描述
察看结果树:
新增线程组,添加HTTP请求,未填协议及端口
察看结果树:
在这里插入图片描述

JMeter参数化

JMeter参数化常用方式

●用户定义的变量
●用户参数
●CSV Data Set Config
●函数

用户定义的变量

添加方式“”测试计划–>线程组–>配置元件–>用户定义的变量

  1. 场景
    ●请求:https://www baidu.com:443
    ●要求:使用用户定义的变量配置被测系统的协议、域名和端口
  2. 操作步骤
    1.添加线程组
    2.添加用户定义的变量
    3.添加HTTP请求
    4.添加察看结果树

配置方法
●添加路径:测试计划–线程组–配置元件–用户定义的变量
●参数设置
参数名:参数值
在HTTP取样器中应用: ${参数名}

(1)在元件中配置
在这里插入图片描述
在这里插入图片描述
记得把路径加上,再运行:
在这里插入图片描述
(2)在测试计划中配置
在这里插入图片描述
在这里插入图片描述

用户参数

使用用户定义的变量时,不同的用户在访问时,读取的参数值完全相同,如果希望每个用户在访问时的变量不同,可以使用用户参数。

添加方式:测试计划–>线程组–>前置处理器–>用户参数
场景:
●请求: https://www.baidu.com
●要求:第一次请求附带参数: name=“张三”&age=28;第二次请求附带参数: name=“李四”&age=30
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

CSV数据文件设置

添加方式:测试计划–>线程组–>配置元件–> CSV数据文件设置
场景:
●请求: https://www .baidu.com
●要求:循环3次,每次请求时附带参数username,password,code的值不相同

操作步骤:
1.定义CSV数据文件
2.添加线程组
3.添加CSV数据文件设置
4.添加HTTP请求
5.添加察看结果树
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

函数(__counter)

计数函数,一般做执行次数统计使用;
位置:在菜单中选择–>选项–>函数助手对话框
函数助手
(1)设置为True的时候:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)设置为false的时候:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在HTTP取样器中,应用counter函数生成的函数字符串,就可以读取counter函数生成的数值。
●如果counter参数设置为: TRUE,则每个用户分别从1开始计算,每循环一次加1
●如果counter参数设置为: FALSE, 则所有用户公用一个计数器,每发送一个请求时,取值加1

解决Jmeter响应出现乱码的问题

修改配置文件jmeter.properties (bin目录下)中的内容:
在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐