【性能测试】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响应中出现乱码

相关推荐
少云清5 小时前
【性能测试】12_JMeter _JMeter定时器
jmeter·性能测试
少云清15 小时前
【性能测试】13_JMeter _JMeter分布式
分布式·jmeter·性能测试
先鱼鲨生1 天前
JMeter工具的使用
测试开发·jmeter·性能测试
少云清1 天前
【性能测试】11_JMeter _JMeter逻辑控制器
jmeter·性能测试
少云清1 天前
【性能测试】10_JMeter _JMeter连接数据库(重点)
数据库·jmeter
普通网友2 天前
Jmeter和Postman那个工具更适合做接口测试?_postman和jemter哪个更适合接口测试
测试工具·jmeter·postman
steem_ding2 天前
压测TPS
jmeter
少云清3 天前
【性能测试】9_JMeter _JMeter录制脚本(了解)
jmeter·性能测试
少云清4 天前
【性能测试】8_JMeter _JMeter跨线程组关联
jmeter·性能测试