【性能测试】4_JMeter _JMeter使用示例

文章目录

  • 一、JMeter第一个案例
  • 二、线程组
    • [2.1 线程组的特点](#2.1 线程组的特点)
    • [2.2 线程组的分类](#2.2 线程组的分类)
    • [2.3 线程组的参数详解](#2.3 线程组的参数详解)
      • [2.3.1 在取样器错误后要执行的动作](#2.3.1 在取样器错误后要执行的动作)
      • [2.3.2 线程属性](#2.3.2 线程属性)
      • [2.3.3 调度器配置](#2.3.3 调度器配置)
  • 三、HTTP请求
    • [3.1 发送GET请求](#3.1 发送GET请求)
      • [3.1.1 案例1](#3.1.1 案例1)
      • [3.1.2 案例2](#3.1.2 案例2)
    • [3.2 发送POST请求](#3.2 发送POST请求)
      • [3.2.1 json类型设置](#3.2.1 json类型设置)
      • [3.2.2 消息体数据](#3.2.2 消息体数据)
  • 四、察看结果树
  • 五、jmeter响应中出现乱码

一、JMeter第一个案例

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

操作步骤 :

yacas 复制代码
1. 启动JMeter
2. 在'测试计划'下添加'线程组'
3. 在'线程组'下添加'HTTP请求'取样器
4. 填写'HTTP请求'的相关请求数据
5. 在'线程组'下添加'察看结果树'监听器
6. 点击'启动'按钮运行, 并查看结果

二、线程组

说明: 线程组是控制JMeter将用于执行测试的线程数, 也可以把一个线程理解为一个测试用户。

2.1 线程组的特点

  • 模拟多人操作
  • 线程组可以添加多个, 多个线程组可以并行或串行
  • 取样器(请求) 和逻辑控制器必须依赖线程组才能使用
  • 线程组下可以添加其他元件下组件

2.2 线程组的分类

1、线程组:普通的、 常用的线程组, 可以看做一个虚拟用户组, 线程组中的每一个线程都可以理解为一个虚拟用户。(受并行、串行配置的影响)

2、setUp线程组:一种特殊类型的线程组, 可用于执行预测试操作。(不受并行、串行配置的影响)

3、tearDown线程组:一种特殊类型的线程组, 可用于执行测试后工作。 (不受并行、串行配置的影响)

2.3 线程组的参数详解

2.3.1 在取样器错误后要执行的动作

  • 继续: 如果取样器里的执行出现错误失败的时候, 请求不会停止, 继续执行。
  • 启动下一进程循环: 忽略错误, 线程当前循环错误, 执行下一个循环。
  • 停止线程: 只限当前线程停止, 不影响其他线程执行
  • 停止测试: 当前执行的线程全部执行完毕后结束
  • 立即停止测试: 立刻停止

2.3.2 线程属性

  • 线程数: 虚拟用户数。(代表并发用户数,体现服务器的负载量)
yacas 复制代码
线程数m和循环次数n的关系:
-如果同时配置,实际发送的HTTP请求数应该为m*n
-虽然发送请求的次数相同,但是不能相互替换。
  • Ramp-Up时间(秒): 爬坡时间,启动全部虚拟用户数所需要的时间。
yacas 复制代码
目的:为了模拟性能测试的场景,更接近用户的使用习惯(用户慢慢接入系统)
  • 循环次数:代表执行时间,指定次数或勾选永远。
yacas 复制代码
设置为固定次数n时:脚本运行时发送请求的次数为n
设置循环次数为"永远"时,脚本会一直运行下去,不停止
  • 延迟创建线程直到需要: 勾选了表示 边创建边执行。适合线程数非常多,避免死机。
yacas 复制代码
如果不勾选,在jmeter点击运行时立即分配(使用不多,了解即可,无法观察效果)  
  • 调度器: 勾选后, 调度器配置才能使用;

2.3.3 调度器配置

  • 持续时间(秒) : 设置脚本压测持续时间
  • 启动延迟(秒) : 启动延迟时间
yacas 复制代码
一般与循环次数为"永远"的设置配合使用
- 持续时间设置为n时:脚本的请求发送的时间为n秒
- 延迟启动设置为n时:脚本的请求发送在等待n秒后再进行

三、HTTP请求

位置: 选中线程组->右键->添加->取样器->HTTP请求 作用: 向服务器发送http及https请求

yacas 复制代码
- 协议:向目标服务器发送HTTP请求时的协议,可以是http或者是https,默认值为http。
- 服务器名称或IP:HTTP请求发送的目标服务器名称或IP地址。
- 端口号:目标服务器的端口号,默认值为80。
- 方法:发送HTTP请求的方法,可用方法包括GET、 POST、 HEAD、 PUT、 OPTIONS、 TRACE、 DELETE等。
- 路径:目标URL路径(不包括服务器地址和端口)
- Content encoding:内容的编码方式,默认值为iso8859
- 同请求一起发送参数:GET请求时url中附带参数可以通过此方式添加
- 消息体数据:POST/PUT请求JSON数据存放地

3.1 发送GET请求

当是get请求,这个参数被设置为查询参数。

3.1.1 案例1

  • 协议未填写,则默认为HTTP协议
  • 端口未填写,则默认为80端口
  • 将GET请求参数放在路径中填写

3.1.2 案例2

  • 协议选择HTTPS
  • 端口号为443
  • 将GET请求参数放在下面的参数列表中进行填写

3.2 发送POST请求

  • 方法选择POST
  • 将参数内容放入到消息体数据中,在发送时参数会添加到请求体中发送。

3.2.1 json类型设置

json 复制代码
必须给"线程组" 添加 "HTTP信息头管理器"
在"HTTP信息头管理器" 添加:
Connect-Type:application/json

3.2.2 消息体数据

json 复制代码
{"age":18}    // 按照json语法写入数据

四、察看结果树

位置: 选中测试计划/线程组->右键->添加->监听器->察看结果树。 作用:查看请求和响应结果。

yacas 复制代码
取样器结果:查看响应信息头信息、响应状态码
- 请求:查看请求相关信息(url、方法、参数)
- 响应:查看响应信息

五、jmeter响应中出现乱码

相关推荐
小白上线*^_^*2 小时前
Jmeter从入门到精通指南
软件测试·测试工具·jmeter·接口测试·测试工程师
zzz_23682 天前
码上面试平台测试报告:功能、后台管理、异常状态与 JMeter 性能验证
jmeter·面试·职场和发展
郑重其事,鹏程万里4 天前
JMeter组件说明
jmeter
川石课堂软件测试4 天前
安全测试|服务器安全加固方法
服务器·功能测试·测试工具·jmeter·mysql·web安全·单元测试
测试员周周7 天前
【skills5】一份 spec 生成 k6/JMeter/Locust:性能压测 + 全站截图,上线前的双保险
功能测试·网络协议·测试工具·jmeter·http·自动化·集成测试
余防7 天前
jmeter-接口测试
jmeter
小森林之主7 天前
Shell 脚本编程速查手册:核心语法与实用示例对比
性能测试·shell脚本·对比实验·编写技巧·实用示例
列逍8 天前
博客系统测试
自动化测试·python·性能测试
小红帽子Alkaid8 天前
JMETER提取接口返回的token
数据库·redis·jmeter
茶栀(*´I`*)11 天前
JMeter 接口测试之参数化详解:四种常见实现方式与实操指南
jmeter