当前位置: 首页 > news >正文

从零开始的软件测试学习之旅(八)jmeter线程组参数化及函数学习

jmeter线程组参数化及函数学习

    • Jmeter基础
      • 基本使用流程
      • 组件与元件
    • 线程组
    • 线程的执行方式
      • Jmeter组件执行顺序
    • 常见属性设置
    • 查看结果数的作用域
      • 举例
    • Jmeter参数化
    • 实现方式
      • 1.用户定义参数
      • 2.用户参数
      • 3.函数
      • 4.csv数据文件设置
    • 每日复习

Jmeter基础

基本使用流程

启动项目案例

  1. 启动 mysql 服务
  2. 启动 api-1.0.jar
  3. 验证服务启动是否成功 http://localhost:8081/sa/listarea 请求到数据即可

使用步骤

  1. 启动 jmeter 并搭建基本框架

    1. 线程组: 测试计划右键 -> 线程(用户) -> 线程组

    2. http请求: 线程组右键添加 -> 取样器 -> HTTP请求

    3. 察看结果数: 线程组右键添加 -> 监听器 -> 察看结果数

      在这里插入图片描述

  2. 设置接口测试三要素

    设置要素一和要素二

    默认值: 协议 http 端口号 8081 编码 utf-8 路径/sa/listarea 请求方式 get

    在这里插入图片描述

  3. 保存计划, 运行并查看结果

    在这里插入图片描述

组件与元件

组件: jmeter中的一些功能点实现, 如, 线程组 http请求 察看结果数

元件: 对组件按照性质归类分组, 作用: 方便管理组件

在这里插入图片描述

线程组

概念:

进程:正在运行的程序 程序启动, 进程创建 程序关闭, 进程释放

线程:程序中的执行线索(路径) 1.如, 迅雷中每一部电影的下载都是一个线程 2.如, 游戏中的每一个角色都是一个线程

线程组 :对线程分类归组

层级关系: 进程 > 线程组 > 线程

在这里插入图片描述

线程的执行方式

顺序执行 多个线程按照顺序依次执行 (如, 电影需要先下载再播放 线程的启动和结束顺序一致)

并发执行 多个线程同时执行 如, 多部电影同时下载 线程的启动和结束顺序不一定一致

线程组的作用 方便管理线程

Jmeter组件执行顺序

默认执行顺序

jmeter 的默认执行顺序是并发执行

“独立运行每个线程组”

测试计划中, 勾选"独立运行每个线程组"后, 执行顺序变为顺序执行

在这里插入图片描述

常见属性设置

在这里插入图片描述

线程数设置为3循环次数设置为1,与线程数设置为1,循环次数为3的区别在于前者模拟的是三个用户每个用户访问1次服务器资源,后者为一个用户访问3次

特殊线程组

setUp线程组:最先执行的线程组,一般用于初始化操作

tearDown线程组:最后执行的线程组,一般用于资源销毁

在这里插入图片描述

查看结果数的作用域

查看结果树显示线程组内取样器的执行结果,查看结果树添加位置不同,对应生效的取样器也不同

1.添加在测试计划下 对所有线程组的所有取样器生效

2.添加在线程组下:只对当前组内取样器生效

3.添加在取样器下:只对当前取样器生效

举例

需求使用jmeter访问案例的增/删/改/查 接口

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

注意:如果提交的数据是JSON格式时,需要声明数据的内容类型 需要使用"配置元件"中的组件HTTP信息头管理器 新增一个参数名为 Content-Type 对应的参数值为 application/json;charset=UTF-8

在这里插入图片描述

http请求的字段值被复用 需要使用"配置元件"中的组件HTTP请求默认值

在这里插入图片描述

Jmeter参数化

动态的生成/设置/导入数据(程序代替人工) 高效 安全 更加强大

实现方式

1.用户定义参数

步骤

  1. 编写脚本
  2. 封装: 测试计划/线程组右键添加 -> 配置元件 -> 用户定义的变量 组件, 添加对应的变量
  3. 调用: 通用方式-在 http请求中, 对应的字段, 使用 ${变量名} 进行调用

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

2.用户参数

步骤

  1. 编写脚本
  2. 存储测试数据(不需要依赖外部文件, 用户数少的时候适合使用)
  3. 调用 ${变量名}, 注意: 设置线程组的线程数, 一般有几个用户就设置几次

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

3.函数

步骤

  1. 编写脚本
  2. 打开函数助手(鼠标悬停在工具栏, 会有提示)
  3. 选择所需函数, 生成能够被调用的格式
  4. 调用: 哪里需要粘哪里(注意需要设置线程组的循环次数)

常用函数介绍

  • __counter() 计数器
  • __Random() 生成随机数(少量随机数的时候)
  • __time() 时间函数
  • __UUID() 生成随机ID(大量随机数的时候)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

4.csv数据文件设置

补充内容

  • csv文件其实就是格式化的txt文件
  • csv文件用逗号分隔值
  • txt换csv: 把文件后缀的txt改为csv即可

在jmeter中, 直接读取txt文件也是可以的

步骤

  1. 准备脚本和csv数据文件
  2. 调用
    • 常规调用, 设置循环次数, 有几条数据就设置线程组的循环次数为几
    • 非常规调用
      • 在线程组设置中勾选"永远"
      • 修改csv数据文件设置组件的配置
        • 把遇到文件结束符再次循环? 设置为 False
        • 把遇到文件结束符停止线程? 设置为 True

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

每日复习

参数化的概念是什么?
参数化的作用是什么?

相关文章:

从零开始的软件测试学习之旅(八)jmeter线程组参数化及函数学习

jmeter线程组参数化及函数学习 Jmeter基础基本使用流程组件与元件 线程组线程的执行方式Jmeter组件执行顺序 常见属性设置查看结果数的作用域举例 Jmeter参数化实现方式1.用户定义参数2.用户参数3.函数4.csv数据文件设置 每日复习 Jmeter基础 基本使用流程 启动项目案例 启动…...

图文并茂:解析Spring Boot Controller返回图片的三种方式

欢迎来到我的博客,代码的世界里,每一行都是一个故事 图文并茂:解析Spring Boot Controller返回图片的三种方式 前言使用Base64编码返回图片使用byte数组返回图片使用Resource对象返回图片图片格式转换与性能对比 前言 在互联网的世界里&…...

问题处理记录 | 表输出报错 Packet for query is too large (5,214,153 > 4,194,304).

这个错误是由于MySQL服务器接收到的查询数据包太大而引起的。具体来说,错误消息中提到的数据包大小为5,214,153字节,而MySQL服务器默认只接受最大为4,194,304字节的数据包。 要解决这个问题,你可以尝试通过修改MySQL服务器的配置来增大max_a…...

数据结构_栈和队列(Stack Queue)

✨✨所属专栏:数据结构✨✨ ✨✨作者主页:嶔某✨✨ 栈: 代码:function/数据结构_栈/stack.c 钦某/c-language-learning - 码云 - 开源中国 (gitee.com)https://gitee.com/wang-qin928/c-language-learning/blob/master/function/…...

基于docker 的elasticsearch冷热分离及生命周期管理

文章目录 冷热集群架构的应用场景冷热集群架构的优势冷热集群架构实战搭建集群 索引生命周期管理认识索引生命周期索引生命周期管理的历史演变索引生命周期管理的基础知识Rollover:滚动索引 冷热集群架构的应用场景 某客户的线上业务场景如下:系统每天增…...

pikachu靶场(xss通关教程)

(注:若复制注入代码攻击无效,请手动输入注入语句,在英文输入法下) 反射型xss(get型) 1.打开网站 发现有个框,然后我们在框中输入一个“1”进行测试, 可以看到提交的数据在url处有显示&#xf…...

实验0.0 Visual Studio 2022安装指南

Visual Studio 2022 是一个功能强大的开发工具,对于计算机专业的学生来说,它不仅可以帮助你完成学业项目,还能为你将来的职业生涯打下坚实的基础。通过学习和使用 Visual Studio,你将能够更高效地开发软件,并在编程领域…...

数据结构之----线性表

线性表分为 顺序存储结构 和 链式存储结构 线性表的顺序存储结构: 线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素。 1,顺序表的结构: #define MAXSIZE 20 typedef int El…...

thinkphp5.1 模型auto

在ThinkPHP5.1中&#xff0c;模型的自动完成功能可以通过在模型类中定义auto属性来实现。这个属性是一个数组&#xff0c;包含了需要自动填充的字段和对应的处理规则。 以下是一个简单的例子&#xff0c;展示了如何在ThinkPHP5.1的模型中使用自动完成功能&#xff1a; <?…...

企业微信创建应用(一)

登录到企业微信后台管理(https://work.weixin.qq.com/)进入自建应用(应用管理-应用-创建应用) 3.查看参数AgentId和 Secret 4.企业微信查看效果...

Cosmo Bunny Girl

可爱的宇宙兔女郎的3D模型。用额外的骨骼装配到Humanoid上,Apple混合了形状。完全模块化,包括不带衣服的身体。 技术细节 内置,包括URP和HDRP PDF。还包括关于如何启用URP和HDRP的说明。 LOD 0:面:40076,tris 76694,verts 44783 装配了Humanoid。添加到Humanoid中的其他…...

初始化linux数据盘(3TB)分区-格式化-挂载目录

场景说明&#xff1a;某云给我们服务器加载了一块3TB的硬盘扩容&#xff08;没有直接扩&#xff0c;原因是原来的盘做的是mbr&#xff08;什么年代了&#xff0c;谁干的&#xff09;的分区&#xff0c;最大识别2TB&#xff09; 确认磁盘 输入命令lsblk 查看数据盘信息 &#…...

NFS网络文件系统的应用

1.配置2台服务器要求如下&#xff1a; a&#xff09;服务器1&#xff1a; 主机名&#xff1a;user-server.timinglee.org ip地址&#xff1a; 172.25.254.100 [rootserver100 桌面]# hostnamectl hostname user-server.timinglee.org [rootserver100 桌面]# ifconfig eth0: fl…...

AttributeError: module ‘PIL.Image‘ has no attribute ‘ANTIALIAS‘

问题描述 修改图片大小的时候&#xff0c;代码报错&#xff1a;AttributeError: module PIL.Image has no attribute ANTIALIAS 解决方案 在pillow的10.0.0版本中&#xff0c;ANTIALIAS方法被删除了。 方法1&#xff1a;修改版本&#xff08;不推荐&#xff09; pip instal…...

进程的共享主存通信实验

进程的共享主存通信 【预备知识】 共享存储区为进程提供了直接通过主存进行通信的有效手段&#xff0c;不像消息缓冲机制那样需要系统提供缓冲&#xff0c;也不像pipe机制那样需要事先建立一个特殊文件&#xff0c;而是由通信双方直接访问某些共享虚拟储存空间。在Linux中&…...

深度缓冲技术在AI去衣中的神奇作用

引言&#xff1a; 随着人工智能技术的飞速发展&#xff0c;其在图形处理和视觉领域的应用日益增多。AI去衣技术便是其中一个颇具争议但又技术上引人入胜的话题。今天&#xff0c;我们将深入探讨一项关键技术——深度缓冲&#xff08;Depth Buffering&#xff09;&#xff0c;它…...

能效?性能?一个关于Windows下使用openssl speed进行速度测试的诡异问题

问题描述 最近的某个软件用到了openssl&#xff0c;所以就想着测试一下速度。我的电脑是惠普的&#xff0c;CPU是AMD Ryzen 7 PRO 6850HS&#xff0c;系统是Win11。我使用openssl自带的speed测试加密/解密的速度&#xff0c;命令大致如下&#xff1a; openssl speed -evp aes…...

block性能考虑和线程安全

性能考虑 频繁地创建和销毁大量的 block 可能会对性能造成影响&#xff0c;特别是当这些 block 被拷贝到堆上时。同时&#xff0c;block 捕获大量数据时也会增加内存使用。 在讨论性能考虑时&#xff0c;主要关注的是 block 的创建、拷贝到堆上以及捕获变量的成本。以下是针对…...

没有公网ip,如何实现外网访问内网?

目前拨号上网是最广泛的上网方式&#xff0c;这种方式优点是价格便宜&#xff0c;缺点是没有固定公网ip&#xff0c;每次重新您拨号ip地址都会变。如果有一台服务器&#xff0c;需要实现外网访问&#xff0c;在没有固定公网ip的环境下&#xff0c;该如何实现呢&#xff1f;使用…...

Python中如何将小数转化为百分数进行输出

小数转化为百分数 Python中如何将小数转化为百分数进行输出基本概念使用字符串格式化1. 使用字符串格式化操作符 %2. 使用str.format()方法3. 使用f-string&#xff08;格式化字符串字面量&#xff09; **重点内容**&#xff1a;**无论是通过使用%格式化操作符、str.format()方…...

Precor必确 GLUTEBUILDER 系列,带来系统化臀部训练解决方案

在健身训练不断细分的当下&#xff0c;臀部训练早已不再是“顺带练一练”的附属项目&#xff0c;而是被置于与胸、背、腿同等重要的核心地位。然而&#xff0c;真正高效的臀腿训练&#xff0c;从来不是简单堆叠负重&#xff0c;而是建立在精准发力与动作模式科学之上的系统工程…...

学习---3

有序数组的排序&#xff1a;一、暴力解法&#xff1a;思路&#xff1a;遍历数组&#xff0c;对每个数组元素进行平方&#xff0c;再用sort排序。时间复杂度&#xff1a;O(nlog n)二、双指针解法&#xff1a;思路&#xff1a;如果有序数组中有负数&#xff0c;那么这个负数平方之…...

3月31日(AI审批+技术岗位情况+知识获取方法)

如何用 AI 分类器替代人工审批 Claude 每执行一个命令、每改一个文件&#xff0c;都要你点一次“同意”。用户 93% 的操作都会批准。也就是说&#xff0c;这个“安全审批”环节&#xff0c;绝大多数时候只是一个条件反射。 告警疲劳&#xff1a;100 条告警里只有 7 条需要关注…...

OLAP] DuckDB : 开源免费的、面向嵌入式场景、列式存储的分析型数据库

0 序 DuckDB 是近期非常火的一款 AP 数据库&#xff0c;其独特的定位很有趣。甚至有数据库产品考虑将其纳入进来&#xff0c;作为分析能力的扩展。 考虑到项目中一个数据处理场景&#xff0c;就此调研一二。 DuckDB 的爆火&#xff0c;也给所有盲目追逐“大数据”的技术人敲响…...

别再手动点灯了!用Simulink串口实时控制STM32,5分钟搞定双向通信

基于Simulink与STM32的实时双向通信实战指南 在嵌入式系统开发中&#xff0c;快速原型验证是提升效率的关键环节。传统开发模式下&#xff0c;工程师需要花费大量时间编写底层通信协议、调试硬件接口&#xff0c;而真正核心的控制算法验证反而被边缘化。本文将介绍一种高效开发…...

从实验室到生活场景:近红外脑成像(fNIRS)如何重塑认知研究边界

1. 从实验室到客厅&#xff1a;fNIRS如何打破认知研究的围墙 十年前我第一次接触近红外脑成像设备时&#xff0c;它还是个需要固定在三脚架上的"庞然大物"&#xff0c;被试必须像雕塑般保持静止。如今看着学生戴着LUMO设备在操场自由活动时采集数据&#xff0c;这种技…...

Modern.js 多环境配置终极指南:开发、测试、预发布与生产环境的完整实践

Modern.js 多环境配置终极指南&#xff1a;开发、测试、预发布与生产环境的完整实践 【免费下载链接】modern.js Modern.js is a web engineering system, including a web framework and a npm package solution. 项目地址: https://gitcode.com/gh_mirrors/mo/modern.js …...

鼎捷T100——快速构建简易报表:azzi310与azzi910的高效协作

1. 从零开始&#xff1a;理解鼎捷T100报表开发的核心模块 第一次接触鼎捷T100系统时&#xff0c;我被各种功能模块搞得晕头转向。直到真正用azzi310和azzi910协作完成报表开发&#xff0c;才发现这套组合拳的妙处。简单来说&#xff0c;azzi310就像你的SQL编辑器报表设计器&…...

vLLM-v0.11.0快速入门:用OpenAI接口调用本地大模型,5分钟出结果

vLLM-v0.11.0快速入门&#xff1a;用OpenAI接口调用本地大模型&#xff0c;5分钟出结果 1. 为什么选择vLLM&#xff1f; 1.1 什么是vLLM&#xff1f; vLLM是伯克利大学LMSYS组织开源的高性能大语言模型推理框架。它通过创新的内存管理技术&#xff0c;显著提升了模型推理的效…...

App 测试用例覆盖率提升检查清单

App 测试用例覆盖率提升检查清单 核心用途&#xff1a;核对现有测试用例&#xff0c;快速找出「需求、功能、非功能、移动端特有场景」的覆盖遗漏点&#xff0c;适配 App UI 自动化手动测试&#xff0c;兼顾 PO 模型、数据驱动、各类用例设计方法&#xff08;等价类/边界值等&a…...