软件测试学习笔记-使用jmeter进行性能测试

性能测试:使用自动化工具,模拟不同的场景,对软件各项性能指标进行测试和评估的过程。

性能测试的目的:

  1. 评估当前系统的能力
  2. 寻找性能瓶颈,优化性能
  3. 评估软件是否能够满足未来的需要

性能测试和功能测试对比

焦点不同:功能(正向、逆向)、性能(时间、资源)

关系:先功能测试,再性能测试

  1. 基准测试

狭义上:就是单用户测试。测试环境确定后,对业务模型中的重要业务做单独的测试,获取用户运行时的各项性能指标。

广义上:是一种测量和评估软件性能指标的活动。在某个时间通过基准测试建立一个已知的性能基准线,当系统的软硬件环境发生变化之后再进行一次基准测试以确定变化对性能的影响。

jmeter设置线程数为1,循环次数100(反正不是1)
2. 负载测试

通过逐步增加系统负载,确定在满足系统的性能指标情况下,找出系统所能承受的最大负载量的测试。

文章目录

        • [1. 线程组的特点和分类](#1. 线程组的特点和分类)
          • [1. 线程组的特点](#1. 线程组的特点)
          • [2. 线程组的分类](#2. 线程组的分类)
        • [2. 响应结果出现乱码(查看结果树)](#2. 响应结果出现乱码(查看结果树))
        • [3. jmeter逻辑控制器](#3. jmeter逻辑控制器)
          • [1. IF控制器](#1. IF控制器)
          • [2. 循环控制器](#2. 循环控制器)
          • [3. ForEach控制器](#3. ForEach控制器)
        • [4. 定时器](#4. 定时器)
          • [1. 同步定时器](#1. 同步定时器)
          • [2. 常数吞吐量定时器](#2. 常数吞吐量定时器)
1. 线程组的特点和分类
1. 线程组的特点

特点:

  1. 模拟多人操作
  2. 线程组可以添加多个,多个线程组可以并行或串行
  3. 取样器(请求)和逻辑控制器必须依赖线程组才可以使用

并行:

可以看到执行顺序是baidu再taobao,不是根据实际设置的顺序执行的。
串行:

在测试计划中选中 独立运行每个线程组,运行结果如下:

2. 线程组的分类
  1. 线程组:普通的、常用的线程组,可以看做一个虚拟用户组,线程组中的每一个线程都可以理解为一个虚拟用户。
  2. setUp线程组:一种特殊类型的线程组,可用户执行预测试操作
  3. tearDown线程组:一种特殊的线程组,可用于执行测试后工作

设置并行或串行只对普通线程组有效。

2. 响应结果出现乱码(查看结果树)

解决办法:

  1. 找到jmeter安装目录下的bin目录
  2. 打开jmeter.properties文件,修改配置
    sampleresult.default.encoding=UTF-8
  3. 重启jmeter
3. jmeter逻辑控制器
1. IF控制器
  1. 用户定义的变量
  2. IF控制器
  3. 结构:
2. 循环控制器

== 线程组循环次数和循环控制器的区别?==

不同点:线程组的循环次数对线程组下的所有HTTP请求有效,循环控制器的循环次数对子节点下的HTTP请求有效;

关联:循环控制器次数为M,线程组循环次数为N

  1. 循环控制下的请求运行:M*N次
  2. 线程组下,非循环控制器下的请求运行:N次
3. ForEach控制器

一般和用户自定义变量或正则表达式提取器一起使用,读取返回结果中一系列相关的变量。

用户定义的变量:

ForEach控制器:

HTTP请求:

结构:

4. 定时器
1. 同步定时器

阻塞线程(累计一定的请求),当在规定的时间内达到一定的线程数量,这些线程会在同一时间点一起释放,瞬间产生很大的压力。
集合点

固定等待:线程数大于分组集合点数,且等待超时响应时间为0

隐式等待:不管线程数和集合点数谁大谁小,只要到了等待超时时间,立马执行所有的线程

2. 常数吞吐量定时器

使用指定的吞吐量发送请求时,可以使用常数吞吐量定时器。

目标吞吐量:每个用户每分钟发送的请求数

一个用户以20qps的频率访问百度首页,持续一段时间,统计运行情况。

相关推荐
Alsn865 分钟前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
YM52e14 分钟前
买菜计算器小应用 - HarmonyOS ArkUI 开发实战-PC版本
学习·华为·harmonyos·鸿蒙·鸿蒙系统
小雨下雨的雨35 分钟前
HarmonyOS ArkUI训练营入门-组件掌握系列-Animation 动画效果实现-PC版本
学习·华为·harmonyos·鸿蒙
闪闪发亮的小星星43 分钟前
高斯光以及高斯光公式解释
笔记
cqbzcsq1 小时前
CellFlow虚拟细胞论文阅读
论文阅读·人工智能·笔记·学习·生物信息
YangYang9YangYan3 小时前
2026初入职场学习数据分析的价值
学习·数据挖掘·数据分析
阿米亚波3 小时前
【Windows】QEMU 启动 openEuler aarch64/arm64 架构系统 + 离线软件源
linux·windows·经验分享·笔记·架构·arm
guslegend3 小时前
理论学习:什么是 Coding Agent?
学习
自传.3 小时前
尚硅谷 Vibe Coding|第三章(1) Claude Code深度使用与进阶技巧 学习笔记
笔记·学习·尚硅谷·vibecoding
踏着七彩祥云的小丑3 小时前
Go学习第9天:并发编程 + 文件操作 + 正则表达式
学习·golang·正则表达式·go