JMeter参数化(6)

news2024/11/17 21:44:06

JMeter参数化

  • 一、JMeter用户参数
    • 1、作用
    • 2、案例1:百度搜索接口:使用用户参数模拟不同线程操作时,搜索不同的数据
  • 二、用户自定义变量
    • 案例1:演示用户定义的变量具有全局性
    • 案例2:使用用户定义的变量,分组管理配置
  • 三、JMeter CSV配置元件
    • 1、作用:
    • 2、配置说明
    • 案例一:加载CSV数据文件入门案例
    • 案例二:多列CSV数据,指定多个变量
    • 案例三:分隔符对读取数据的影响
    • 案例四:忽略首行对读取数据的影响
    • 案例五:是否允许双引号演示
    • 案例六:线程共享模式的区别演示
    • 案例七:使用CSV配置文件准备20个用户,实现注册20个用户
  • 三、JMeter CSV配置文件准备测试数据,实现数据驱动测试
  • 四、总结

作用:
通过参数化来集中管理配置和测试数据
通过参数化实现数据驱动测试

一、JMeter用户参数

在jmeter中用户就是线程

添加方式:测试计划或者线程组右键->添加->前置处理器->用户参数

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

1、作用

设置多个用户同一个参数的不同参数值,用户参数的结构类似于数据库的表。

用户参数提取每行数据的方法:通过线程来读取
第1个线程读取:用户_1的数据
第2个线程读取:用户_2的数据

第N个线程读取:用户_N的数据

2、案例1:百度搜索接口:使用用户参数模拟不同线程操作时,搜索不同的数据

设置3个线程
在这里插入图片描述
添加用户参数
在这里插入图片描述
查看结果
在这里插入图片描述

二、用户自定义变量

全局生效,可以跨线程组使用

在这里插入图片描述
整个界面配置和测试计划中的用户定义的变量一样,区别是可以挪动它的位置
在这里插入图片描述

案例1:演示用户定义的变量具有全局性

第一步:实现msb搜索接口
第二步:在msb搜索接口的子集中,添加用户自定义的变量
第三步:新增一个线程,在新增的线程中添加调试取样器
第四步:运行,查看结果
在这里插入图片描述

在这里插入图片描述

如果用户定义的变量组件放在取样器的子集中,那么它也会最先运行
它不会受到作用域的影响,它是全局生效的

案例2:使用用户定义的变量,分组管理配置

JDBC配置
环境配置
注册/登录用户配置
其他配置
在这里插入图片描述

三、JMeter CSV配置元件

1、作用:

a、可以利用CSV文件快速构造测试数据
b、可以进行数据驱动测试

添加方式:线程组右键->添加->配置元件->CSV数据文件设置

在这里插入图片描述

2、配置说明

在这里插入图片描述
创建CSV文件:windows系统可以直接新建一个后缀名为txt的文本文件,然后修改后缀名为csv

文件名:要加载的CSV文件
文件编码:加载CSV文件时,JMeter用的编码;

变量名称(西文逗号间隔): 指按列保存CSV数据到JMeter的变量,如果只设置一个变量,那么会保存CSV所有数据到这一个变量中

忽略首行:如果设置了,那么第一行不会读取
分隔符:拆分CSV数据的分隔符,默认是制表符"\t"

是否允许带引号:如果设置为True,那么双引号会被传递进入JMeter,否则会自动去掉双引号

遇到文件结束符再次循环:当文件的所有数据读取完毕后,是否继续重复读取的意思

遇到文件结束符停止线程:当文件的所有数据读取完毕后,是否停止线程的意思

线程共享模式:指线程与线程之间的通信模式,主要有3种
所有线程:所有线程共享CSV读取出来的数据
当前线程组:只有当前线程组共享CSV读取出来的数据
当前线程:每个线程独立获取CSV读取出来的数据

案例一:加载CSV数据文件入门案例

把CSV配置文件的数据加载到JMeter中,并保存变量为username,使用调试取样器验证结果
第一步:先定义一个txt文件
第二步:修改txt文件的后缀名为.csv
第三步:编辑.csv文件,增加一列username,username下面第二行、第三行等填写数据
第四步:使用JMeter CSV加载这个文件,设置变量为username
第五步:添加调试取样器,查看结果树,并运行查看调试取样器中的边拉你个,有没有CSV设置的变量

案例二:多列CSV数据,指定多个变量

把有多列CSV配置文件的数据加载到JMeter中,并保存变量为username,password,age,使用调试取样器验证结果

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

案例三:分隔符对读取数据的影响

jmeter读取外部文件的数据时,会按照分隔符切分数据,
切分的第一列,给变量名称中的第一个变量
切分的第二列,给变量名称中的第二个变量
切分的第三列,给变量名称中的第三个变量
依次类推

如果分割符指定错误,那么会导致JMeter把所有数据都放在第1个变量名称当中
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

案例四:忽略首行对读取数据的影响

没有忽略首行
在这里插入图片描述
忽略首行
在这里插入图片描述

案例五:是否允许双引号演示

CSV配置文件中,有多行数据,有的有双引号,有的没有,查看允许/不允许双引号带来的结果

设置为True:会自动去除双引号
设置为False:不会自动去除双引号
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
如果要读取多行数据:可以通过循环或者线程数来读取:

第一次循环读取第一行数据
第二次循环读取第二行数据
在循环次数为1时,第1个线程读取第1个数据
在循环次数为1时,第2个线程读取第2个数据

不推荐循环次数和线程数都设置更大的数据,要么线程数为1,要么循环次数为1,因为如果循环次数为3,线程数为3,很难区分数据是在线程中读的,还是循环中读取的。

案例六:线程共享模式的区别演示

JMeter CSV配置元件本质上只能通过循环来读取每一行数据:
第1次循环读取第一行数据
第2次循环读取第二行数据

第n次循环读取第N行数据

为什么用线程,也能达到同样的效果,这是因为我们选用了所有线程的共享模式
所有线程的效果: CSV加载的数据,对所有线程都生效,那么如果第一个线程读取了1个数据,第2个线程就能从第2个数据开始读,依次类推

当前线程组的效果:当前线程组当中的,所有线程,能够依次读取数据

当前线程的效果:使用线程无法依次读取数据,只能通过循环读取CSV文件中的数据。

案例七:使用CSV配置文件准备20个用户,实现注册20个用户

该案例主要用来演示构造测试数据
第一步:新增txt文本文档
第二步:把文本文档改成csv
第三步:使用wps打开它
第四步:构造20个用户
第五步:使用JMeter完成测试平台注册接口,并参数化
第六步:单线程循环20次,查看结果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、JMeter CSV配置文件准备测试数据,实现数据驱动测试

第一步:新增txt文本文档
第二步:把文本文档改成csv
第三步:构造测试数据
第四步:使用JMeter完成测试平台登录接口,并参数化
第五步:单线程循环N次,查看结果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、总结

  1. 通过用户定义的变量,让配置变得层次清晰
  2. 通过用户参数,能够解决3个线程进行并发测试时,每个线程使用不同数据请求的场景
  3. 通过CSV配置元件,能够进行数据驱动测试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/727207.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Java的电影购票系统的设计与实现(源码+文档+数据库)

本系统是一个网上电影售票系统,可以为用户提供方便的在线订票环境。主要实现了用户注册、登录、查询、订购电影票、管理已订购电影票等功能。通过后台管理模块可以实现对用户、播放厅、电影、影片安排、电影票等的管理等功能。本系统以IntelliJ IDEA 作为开发环境&a…

2.3 Web应用 -- 2. HTTP 连接

2.3 Web应用 -- 2. HTTP 连接 HTTP连接的两种类型非持久性连接响应时间分析与建模持久性HTTP HTTP连接的两种类型 非持久性连接(Nonpersistent HTTP) 每个TCP连接最多允许传输一个对象HTTP 1.0版本使用非持久性连接 持久性连接(Persistent HTTP) 每个TCP连接允许传输多个对象H…

vue3项目创建部署

别名联想路径提示: Element-plus默认的颜色是蓝色,以下修改成我们自己的主题色: css预处理语言 “scss是一种css预处理语言,是一个css的扩展,它在css语法的基础上,允许您使用变量,嵌套规则,混合,导入,继承等功能,使得css更加强大和优雅,而…

Jetson Orin Nano Developer Kit

Jetson Orin Nano Developer Kit包括Jetson Orin Nano 8GB模块,该模块具有NVIDIA安培GPU(具有1024个CUDA内核和32个第三代张量内核)和6核ARM CPU,能够运行多个并发AI应用程序管道并提供高推断性能。 开发套件载体板支持所有Jetson Orin Nano和Orin NX模块…

2023年如何通过8个步骤创建社交媒体内容策略

在创建成功的社交媒体内容策略时,感觉有无穷无尽的选项和平台可供选择。但不要因此而不知所措,因为只要稍作规划并发挥大量创造力,您就可以制定有助于提升品牌知名度、提高客户参与度和推动销售的战略。 目录 定义社交媒体内容配方的八个…

基于.Net Core实现的飞书所有文档一键导出服务(支持多系统)

feishu-doc-export 一个支持Windows、Mac、Linux系统的飞书文档一键导出服务,仅需一行命令即可将飞书知识库的全部文档同步到本地电脑。导出速度嘎嘎快,实测700多个文档导出只需25分钟,且程序是后台挂机运行,不影响正常工作。 动…

python爬虫爬取top250中排名、评分、导演等展示可视化界面

源代码4千字报告 需要源代码数据库可视化数据4千字报告加我qq

基于matlab评估单相机校准的准确性(附源码)

一、前言 相机校准是使用特殊校准模式的图像估计相机参数的过程。参数包括相机内在系数、失真系数和相机外在系数。校准相机后,有几种方法可以评估估计参数的准确性: 绘制相机的相对位置和校准模式 计算重投影误差 计算参数估计误差 二、校准相机 …

Spring Boot 数据访问框架介绍及使用

Spring Boot 数据访问框架介绍及使用 Spring Boot 是一个流行的 Java 应用程序框架,它提供了许多工具和库,帮助开发人员快速构建高效的应用程序。其中,Spring Boot 数据访问框架是其中一个重要的组件,它提供了许多不同的选项&…

短视频抖音多账号管理系统源码搭建开发(路径一)

一、开发环境 目录 一、开发环境 二、短视频账号矩阵系统源码功能构建模型 短视频抖音多账号管理系统源码搭建开发,视频抖音多账号管理系统源码的开发环境配置非常重要。 1、首先,确保您的计算机已经安装了适当的开发工具,如Java SDK、An…

(css)文字与底部对齐

(css)文字与底部对齐 修改前: 修改后: 代码: .AITip {height: 11%;color: #01ffff;font-size: 24px;//主要属性display: flex;justify-content: center;align-items: flex-end;line-height: 1; }解决参考:https://blog.csdn.n…

多家快递如何跟踪物流信息,并快速掌握了每条物流信息时间差呢

对于很电商商家朋友们他平时一般都是发多家快递,多家快递公司的物流信息处理和管理是一个挑战。很多公司在处理这些信息时需要耗费大量人力和时间,为了提高工作效率和降低成本,需要采用一些高效的管理和利用方法。例如使用第三方的工具来&…

路由的介绍

目录 路由器的转发原理:路由表 路由——指示路由器去往未知网段的方法 路由器的转发原理:路由表 当一个数据包来到路由器,路由器将基于数据包中的目标IP地址查询自身的路由表,如果路由表中有相应的记录,则无条件根据…

Windows系统显示语言的修改及“我们无法获取此Windows显示语言”报错的处理

本文介绍在Windows 10操作系统中,修改系统的显示语言的方法;并解决在这一过程中,出现的“很抱歉,我们无法获取此Windows显示语言”报错问题。 本文就以将原本系统语言的中文修改为英文为例,介绍具体的方法。首先&#…

java 8 stream流之大数据篇

如果你会任意一门语言的stream流,没道理不会大数据开发。 俗话说男追女隔座山,女追男隔层纱。 如果说零基础学大数据,感觉前面是一座山,那么只要你会java或者任意一门语言的stream流,那大数据就只隔了一层纱。 本文以…

gazebo软件创造.world文件。

Gazebo可以创造数据。在Gazebo中创建一个机器人世界,不仅可以仿真机器人的运动功能,还可以仿真机器人的传感器数据。 背景:我是个新接触ros2的小白,变学习试用成功后分享狭窄的片面知识,必然不全,请多包含。…

高精度算法

&#xff08;一&#xff09;算法笔记 &#xff08;二&#xff09;算法的代码 2.1 大数加法的运算 #include<iostream> #include<vector> using namespace std;vector<int> add(vector<int> &a,vector<int> &b){if(a.size()<b.size(…

vue3+elementui-plus实现一个接口上传多个文件

首先&#xff0c;先使用element-plus写好上传组件&#xff0c;变量的定义我在这里就省略了都 <el-form-item prop"file" label"附件"><el-uploadstyle"width:100%"class"upload-demo"dragref"upload-demo"action&…

aardio - 【库】printer打印操作库

封装一些常用的绘图、文本功能&#xff0c;可以方便的进行打印。 绘制单位为毫米&#xff0c;精确度为0.01毫米。 库文件下载&#xff1a; http://chengxu.online → aardio资源下载 → printer.rar 打印效果&#xff1a; 示例代码&#xff1a; import console; impor…

在Django中使用xlrd读取excel表格数据

目录 方法一&#xff1a;按行读取 方法二&#xff1a;按表头与表数据一一对应的关系 方法三&#xff1a;按列的方式读取 之前有说到如何在Django中读取数据库数据写入到excel中 今天来说说如何读取excel中的数据&#xff0c;&#xff08;读取后就可以写入到数据库中了&#…