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

jmeter通过参数文件、循环组件实现多账号登陆

        在jmeter中当配置好登陆接口后,如果需要多账号进行登陆时,可以通过引用参数配置文件和循环的方式来实现单一接口通过循环调用多个参数,来实现多账号登陆的目的,不然就需要一个账号配置一个接口,费时费力,通过引用参数配置文件和循环可以节省工作。

        我这边就以登陆接口为例,其它情况下对参数的引用都是相通的。

1、当jmeter已完成录制脚本、配置脚本等相关组件且可以正常返回相应数据后,首先新建一个txt文件,在文件中配置需要引用的参数,我这边配置了三个,用户名、密码、检查点参数,如下图所示。

        每列参数之间使用tab键隔开,且最后不需要留空白行(loadrunner需要,不要搞混了)如果数据过大可以通过excel配置后直接复制到txt文件中也行。

2、当需要引用的参数文件配置完成后查看是对整个线程进行循环还是对线程组中的单个接口进行循环,我这边是对单个登陆接口进行循环,因此在改接口的事务组件中先添加一个循环控制器

点击该接口所在的事务-右击-逻辑控制器-循环控制器

3、循环控制器添加完成后进行配置,一般来说引用的参数文件中有几组参数(多少行)就配置多少次循环,如步骤1所示我配置了五组参数,则循环五次

4、循环控制器的配置完成后,需要在循环控制器下添加   CSV数据文件设置组件,用于引用步骤1创建文件中的参数

循环控制器选中右击-添加-配置元件-CSV数据文件设置

5、添加CSV数据文件设置组件后,进行组件进行配置

         5.1 文件名:输入步骤1中参数文件的路径(D:/Program Files/apache-jmeter-5.1.1/bin/jiaoben/user.txt)

        5.2:文件编码:一般来说如果参数文件中有中文则使用utf-8,但是我这边不用也行,用了反而出现乱码,因此这一行空着,不选。

        5.3:变量名称(英文逗号间隔):这一行填写参数文件中每一列参数的引用变量名称,后面可以通过${},来进行调用,我这边有三列参数,填写:yhm,mm,name   注意中间用英文逗号间隔

        5.4:忽略首行:当参数文件中未设置变量名称时使用默认的False,步骤1的参数文件中我只添加了需要引用的参数,因此直接用默认的就行,不做变更。

        5.5:分隔符:因为我步骤1中参数文件每列参数是通过tab键隔开的因此需要填写 \t  如果是逗号隔开则填写逗号,这取决于用什么符号隔开。

        5.6:后面的字段就直接使用默认的即可,不再做特殊变动。

6、CSV数据文件设置组件配置完成后,需要将登陆接口放在循环控制器下,且CSV数据文件设置组件要在登陆接口的上方,从属排列如下图所示。

        注意:在CSV数据文件设置组件和登陆接口中间还有一个计数器组件,该组件是为了在循环时给定义的数值自增的,设置一个初始值,每次循环加一,该自增参数用在获取循环接口时获取输出数据到指定文件中。该组件用法在另一个教程中,点击jmeter分类可以查看到。

7、当调整好登陆事务-循环控制器-CSV数据文件设置组件/计数器/登陆接口,的排列顺序后,则需要对登陆接口进行配置,将原来的用户名和密码通过${yhm}  ${mm}的方式引用参数文件中的参数

8、因为我这边设置了登陆接口的响应断言,因此需要在响应断言也配置一下引用参数在测试模块中检查文本将需要替换参数设置为:${name}。

       注意: ${yhm}  ${mm} ${name} 这三个引用参数都是在步骤5中 CSV数据文件设置组件中定义的引用名称。

9、配置完成后,点击运行,即可通过循环方式让登陆接口依次调用参数文件中数据。

         ${num}通过  计数器组件  实现的,赋予初始值后每次循环加一,在登陆接口名称处以及提取响应内容(正则表达式提取器)处使用的,用于获取每次循环返回的接口数据并写入指定文件中。

计数器组件配置图如下所示:

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • npm install 报错解决记录
  • Golang 使用redis stream实现一个实时推送功能
  • Groupings sets详解
  • 东方银行--用 MinIO 和 Dremio 替代 Hadoop
  • React18快速入门教程
  • C HTML格式解析与生成
  • 浅谈Kafka(二)
  • EmguCV学习笔记 VB.Net 第5章 图像变换
  • 【机器学习】 1. 总览介绍
  • 开源大屏设计工具DataRoom
  • Elasticsearch:使用 ELSER 进行语义搜索 - sparse_vector
  • 在pytorch中TensorBoard的使用
  • OpenCV c++ 实现图像马赛克效果
  • Magenta——利用深度学习生成音乐和艺术内容
  • 基于STM32的温湿度采集设计
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • Android Studio:GIT提交项目到远程仓库
  • angular2 简述
  • gf框架之分页模块(五) - 自定义分页
  • java取消线程实例
  • Laravel Telescope:优雅的应用调试工具
  • learning koa2.x
  • Redis学习笔记 - pipline(流水线、管道)
  • sublime配置文件
  • Twitter赢在开放,三年创造奇迹
  • Vue UI框架库开发介绍
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • webgl (原生)基础入门指南【一】
  • 从0实现一个tiny react(三)生命周期
  • 前端代码风格自动化系列(二)之Commitlint
  • 前端攻城师
  • 入口文件开始,分析Vue源码实现
  • 设计模式 开闭原则
  • 协程
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • #laravel 通过手动安装依赖PHPExcel#
  • #systemverilog# 之 event region 和 timeslot 仿真调度(十)高层次视角看仿真调度事件的发生
  • (24)(24.1) FPV和仿真的机载OSD(三)
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (六)DockerCompose安装与配置
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (十一)图像的罗伯特梯度锐化
  • ****Linux下Mysql的安装和配置
  • *p++,*(p++),*++p,(*p)++区别?
  • .gitignore文件—git忽略文件
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .NET COER+CONSUL微服务项目在CENTOS环境下的部署实践
  • .Net环境下的缓存技术介绍
  • .net开源工作流引擎ccflow表单数据返回值Pop分组模式和表格模式对比
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法