JMeter基本使用

目录

1. JMeter环境安装

1.1 安装JDK

JDK下载

官网下载地址

安装JDK

可以默认也可以修改安装路径(这一步和环境变量有关)

配置环境变量

环境变量-系统变量,修改2处(这一步和JDK安装的路径有关,我这里安装在了D盘)

# 新增系统变量JAVA_HOME(JDK的安装地址)
D:\Java\jdk-17.0.2

# Path中新增环境变量(JDK的bin路径)
D:\Java\jdk-17.0.2\bin
D:\Java\jdk-17.0.2\jre\bin

# 如果后面升级JDK,Path中的变量也需要修改,所以更好的写法是
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin
校验是否安装成功
  1. win+R,输入cmd,打开命令行

  2. 输入java -version,校验命令能否正常执行以及版本信息是否一致
    jdk安装

1.2 安装JMeter

下载JMeter

下载地址

这里我选择的是apache-jmeter-5.4.3.zip,这里需要的是jdk 1.8+的版本(JMeter和JDK版本需要对应)

安装JMeter

把下载的安装包,解压到某一目录下(安装目录中不能有中文/空格)

配置环境变量

和JDK环境变量配置相似

环境变量-系统变量,修改2处(这一步和JMeter安装的路径有关,我这里安装在了D盘)

# 新增系统变量JMETER_HOME(JMeter的安装地址)
D:\apache-jmeter-5.4.3

# Path中新增环境变量
%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar
%JMETER_HOME%\lib\jorphan.jar
启动验证

法1. 直接双击bin目录下的jmeter.bat

法2. java -jar ApacheJMeter.jar

任意一种方式能启动说明安装成功

界面汉化

修改配置文件:bin/jmeter.propertites,修改语言为language=zh_CN,重启JMeter

修改主题

选项-外观

响应结果出现乱码

乱码:中文无法正常显示

修改配置文件:bin/jmeter.propertites,修改配置为sampleresult.default.encoding=UTF-8(原来是ISO-XXX)

修改完配置文件后重启JMeter才能使修改的配置生效

2. JMeter目录结构

2.1 bin目录

存放可执行文件和配置文件

请添加图片描述

2.2 docs目录

JMeter的api文档,用于开发扩展组件

2.3 printable_docs

用户帮助手册

2.4 lib目录

存放JMeter依赖的jar包和用户扩展所依赖的jar包

3. JMeter元件和组件

3.1 元件

概述

多个类似功能组件的容器(类似于类)

请添加图片描述

取样器

发送请求

逻辑控制器

控制语句的执行顺序

前置处理器

对请求参数进行预处理

后置处理器

对响应结果进行提取

断言

检查接口的返回结果是否和预期结果一致

定时器

设置等待

测试片段

封装一段代码,供其他脚本调用

配置元件

测试数据的初始化配置

监听器

查看JMeter脚本的运行结果

接口自动化脚本实现过程
配置元件

初始化测试数据

前置处理器

对请求参数进行赋值

取样器

调用GET/POST方法发送请求

后置处理器

提取响应中特定字段的值

断言

对提取出来的值与预期结果进行对比

监听器

控制台查看脚本运行结果

元件作用域

元件作用域是靠测试计划的树形结构中元件的父子关系来确定的

所有的组件都是以取样器为核心来运行的(如果在一个脚本里没有取样器,那么这个脚本就不会执行)

组件添加的位置不同,生效的取样器也不同

作用域的原则
  • 取样器:核心,不和其他元件相互作用,没有作用域
  • 逻辑控制器:只对其子节点的取样器和逻辑控制器起作用
  • 其他元件:如果是某个取样器的子节点,则该元件只对其父节点起作用;如果父节点不是取样器,则其作用域是该元件父节点下的其他所有后代节点(包括子节点,子节点的子节点等)
元件的执行顺序

同一作用域下的不同类型元件:配置元件-前置处理器-定时器-取样器-后置处理器-断言-监听器

同一作用域下的多个相同类型元件:按照测试计划从上到下的顺序依次执行

案例

请添加图片描述

定时器1-请求1-定时器1-定时器2-请求2-定时器1-定时器3-请求3

使用示例
需求

使用JMeter访问百度首页接口,并查看请求和响应信息

步骤
  1. 测试计划里添加线程组-线程组
  2. 线程组-添加-取样器-HTTP请求
  3. 填写HTTP请求的相关请求数据
  4. 线程组-添加-监听器-察看结果树
  5. 点击启动按钮运行,并查看结果

3.2 组件

概述

实现独立的某个功能(类似于方法)

以取样器的组件为例,以下介绍3种重要的基本组件(JMeter基本组成部分)

请添加图片描述

线程组

线程组就是控制JMeter用于执行测试的一组用户

特点
  • 可以模拟多人操作(修改线程数)
  • 线程组可以添加多个,多个线程组可以并行或串行(勾选"独立运行每个线程组"可以实现串行)
  • 取样器(请求)和逻辑控制器必须依赖线程组才能使用
  • 线程组下可以添加其他元件下组件
分类
  • 线程组:普通常用的线程组,可以看作一个虚拟用户组,线程组中每个线程都可以理解为一个虚拟用户;执行测试用例,可以有1个或多个(并行/串行)
  • setup线程组:预测试操作,所有脚本之前执行
  • teardown线程组:测试后操作,所有脚本之后执行
参数

请添加图片描述

  • 线程数代表虚拟用户数,用户数越多,负载越大
  • 循环次数代表运行时间,次数越多,运行时间越长
HTTP请求
作用

向服务器发送http和https请求(取样器)

如果协议部分不填,JMeter默认是http协议,端口默认是80

URL属性

协议、域名、端口、路径、请求方法、编码格式

参数

请添加图片描述

  • 发送get请求:路径里填写参数(?键名=键值&键名=键值);参数列表中添加参数(名称、值)
  • 发送post请求:参数列表中添加参数(和get的第二种方法相同,区别在于请求方法需要修改为post,form);消息体数据中添加请求体(form/json)
案例
get请求1

使用HTTP请求-路径来传递get请求参数

请添加图片描述

get请求2

使用HTTP请求-参数列表来传递get请求参数(需要注意这里协议是https而不是http)

请添加图片描述

post请求1

使用HTTP请求-参数列表来传递POST请求的form格式参数

请添加图片描述

post请求2

使用HTTP请求-消息体数据来传递POST请求的form格式参数

请添加图片描述

察看结果树
作用

查看HTTP请求的请求和响应结果

组成

请添加图片描述

取样器结果

查看响应头信息、响应状态码

请求

查看请求相关信息(URL,方法,参数)

响应数据

查看响应信息(状态码,响应体)

4. JMeter参数化

4.1 概述

如果要发送请求10次,每次请求发送不同的参数值,应该怎么做?引入参数化

参数化测试定义

用不同的测试数据调用相同的测试方法进行测试(用参数来替代固定的测试数据,参数是1个还是多个由自己来定义)

JMeter常见参数化的方式
  • 用户定义的变量–全局变量

  • 用户参数–为每个用户分配不同的参数值

  • CSV Data Set Config–文件方式参数化

  • 函数–随机数据

  • (数据库/数据文件)

本质

实现测试数据和测试方法的分离

案例
要求

某支付系统,需要用1000个不同的用户登录,并使用添加不同的测试金额数据访问支付接口

步骤
  1. 准备csv数据文件,1000个登录的用户名密码
  2. 添加线程组
  3. 添加csv数据文件设置
  4. 添加HTTP请求–登录,使用读取的用户名密码
  5. 添加HTTP请求–支付,使用counter函数添加不同的测试金额
  6. 察看结果树

4.2 用户定义的变量

作用

定义全局变量

局限性

每次取值(无论是否相同用户)都是固定值

位置

线程组–添加–配置元件–用户定义的变量

案例
要求

使用用户定义的变量配置被测系统的协议、域名和端口(https://www.baidu.com:443)

步骤
  1. 添加3个变量(变量名、变量值)
  2. 添加HTTP请求,引用自定义的变量名(格式:${变量名})
  3. 运行,查看结果树

请添加图片描述
请添加图片描述

4.3 用户参数

概述

性能测试的时候有多个用户同时请求,每个用户在登录请求时需要使用不同的用户名密码进

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值