Jmeter接口测试参数化详解

news2024/12/24 0:28:34

目录

前言:

RandomString函数

CSVRead函数

CSV Data Set Config配置元件


前言:

在进行接口测试时,参数化是一项重要的技术,可以帮助测试人员有效地模拟不同的场景和数据,增加测试用例的覆盖范围。JMeter提供了多种参数化的方式,使得测试人员能够灵活地配置和使用不同的参数值。

接口测试是目前最主流的自动化测试手段,它组合不同的参数向服务器发送请求,接受和解析响应结果,通过测试数据的交换逻辑来验证服务端程序工作的正确性。我们在测试过程中需要考虑不同的输入组合,来覆盖不同的测试范围;除此之外,系统中往往存在一些有唯一性校验的接口,不允许重复录入关键字段(eg: 用户名,身份证…),针对这些有唯一性校验的接口,需要在每次运行时动态输入不同的数据。

为了解决上述问题,Jmeter提供了一些参数化的工具,最常用的有RandomString函数,CSVRead函数以及CSVDataSetConfig

RandomString函数

Jmeter通过RandomString函数助手可动态生成字符串,它包括三个变量:

  • Random string length:生成的String长度
  • Chars to use for random string generation:用于生成String的字符集
  • Name of variable in which to store the result (optional):可选,指定存储生成的String变量名,供后续接口调用。

通过RandomString可以生成任意长度的指定字符集的字符串,除了生成随机字符串,还可以基于RandomString拼接扩展特定格式的字符串。

比如有些系统会校验手机号前三位,即可通过RandomString生成后8位数字,然后拼接满足需求的前三位数字组合。

RandomString函数非常强大,几乎可以实现接口单个请求参数的所有参数化工作,但在实际应用中,有时候不同请求参数有一定的关联性,此时无法通过RandomString来解决多请求参数之间的关联性问题,需要引入CSV组件来解决。

CSVRead函数

CSVRead函数适用于一组关联请求参数的场合,比如要选择用户的收获地址,往往需要选择省->市->区,而省市区这三个请求参数之间有关联性,此时可以通过自定义一组满足关联性要求的数据,将其写入CSV文件,然后在Jmeter中通过CSV函数来读取CSV文件

Jmeter中通过函数助手可引入CSVRead函数的支持,它有两个参数

  • CSV File to get Values from: 需要读取的CSV文件
  • CSV文件列号:从0开始

CSVRead函数有一些局限性,CSVRead不可指定编码,跨系统调用时可能出现乱码;另外多次循环同一个请求时会重复读取第一行数据,只有当线程数设置为多个时,才会读取多行数据

CSV Data Set Config配置元件

CSV Data Set Config 是CSVRead函数的升级版组件,它可以配置更多选项来控制读取的过程

  • Filename:CSV文件路径
  • File Encoding:编码格式,中文系统下生成的CSV文件编码使用GBK (英文系统使用UTF-8)
  • Variables Name:生成的变量名,通过顺序和Excel列数据对应,指定变量名以后DebugSampler中可查看变量值
  • Delimiter:分割符,CSV默认的分割符是逗号,tab分割符用 
  • Allow quoted data: 是否允许双引号内的拆分,设置为Ture时,“a,b”,c 会被解析为3列数据,设置为False时,会被解析为2列数据,默认False
  • Recycle on EOF:参数文件是否循环遍历,设置为False时,文件遍历完则终止提取,请求的参数值为EOF,默认True。无论是设置多线程,还是多次迭代,都会循环遍历CSV文件
  • Stop thread on EOF:参数值为EOF时,是否停止执行线程。当 Recycle on EOF 设置为 true 时,此项不起任何作用。当且仅当 Recycle on EOF? 为 false 时,此项配置才生效。默认为False
  • Sharing mode:共享模式,All threads参数文件对所有线程共享,包括同一测试计划中的不同线程组;Current thread group只对当前线程组中的线程共享Current thread仅对当前线程获取

以上三个组件基本涵盖了接口自动化中参数化的绝大多数功能,对于更复杂的参数化需求,可通过编码方式实现脚本,并通过Jar包的方式引入脚本支持。

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

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

相关文章

2023 年 10 大前端发展趋势

新技术的出现和老技术的淘汰让前端开发者们需要不断地学习和更新知识。特别是在经济不好的情况下,是否掌握新的技术很大程度决定着你是否被淘汰。 虽然应用程序试图将网站替代,但前端 Web 开发业务仍在快速变化和增长,前端开发人员的功能并没…

Debezium系列之:支持数据库存储系统,把ddl信息存储到数据库表中

Debezium系列之:支持数据库存储系统,把ddl信息存储到数据库表中 一、需求背景二、实现的效果三、核心参数四、创建存储ddl表五、创建采集表六、完整配置七、提交connector八、插入数据九、查看ddl数据十、修改表结构十一、清空存储ddl表十二、总结和延展一、需求背景 目前deb…

基于transformer的人群计数论文汇总

文章目录 2022TransCrowd: weakly-supervised crowd counting with transformersAn End-to-End Transformer Model for Crowd Localization 参考 2022 TransCrowd: weakly-supervised crowd counting with transformers code: https://github.com/dk-liang/TransCrowd 摘要&a…

达梦数据库性能分析

目录 数据库常用性能分析方法... 3 一、服务器监控... 3 1、cpu监控... 3 2、内存... 3 3、swap内存... 3 4、磁盘... 4 5、网络监测... 4 二、数据库实例监控... 6 1、v$sessions. 6 2、慢sql、阻塞、锁... 7 3、内存监控... 10 4、monitor监控工具使用及开启sql日…

五年Java学习心路历程

五年Java学习心路历程 从大学毕业到工作的过程中,我度过了五年学习Java的岁月。从基础语法到各种细节技术再到分布式和微服务架构,经历了许多的挑战与成长。接下来,我将详细记录这段心路历程,与大家分享学习Java的经验与感悟。 …

Java基础---String str=new String(“tang“)创建了几个对象

目录 典型回答 常量池基本概念 字符串常量池的结构 再看字面量和运行时常量池 intern 还是创建了几个对象 intern的正确用法 典型回答 创建的对象数应该是1个或者2个如果常量池中存在,则直接new一个对象如果常量池不存在,则在常量池中创建一个对象…

KubeEdge官方示例运行成功_Counter Demo 计数器

运行KubeEdge官方示例_Counter Demo 计数器 KubeEdge Counter Demo 计数器是一个伪设备,用户无需任何额外的物理设备即可运行此演示。计数器在边缘侧运行,用户可以从云侧在 Web 中对其进行控制,也可以从云侧在 Web 中获得计数器值,原理图如下…

前端web入门-移动web-day10

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 移动Web基础 手机模拟器 屏幕分辨率 视口 二倍图 适配方案 rem 适配方案 rem 媒体查询 rem – …

使用java生成mvt切片的方法

如何使用java生成geoserver的矢量切片供前端(mapbox等)调用 目录新的想法Java能为切片做什么如何生成切片如何转换xyz数据如何查询如何输出mvt格式给前端前端如何调用 目录 好久没发博客了,每日或忙碌、或悠闲、或喜或悲、时怅时朗&#xff…

访问学者怎样准备申请推荐信

作为访问学者,申请推荐信是非常重要的一步,它能够在您的申请过程中增加信誉度和竞争力。一个优秀的推荐信可以更好地展现您的学术能力、研究潜力和个人品质。以下是知识人网小编整理的关于如何准备申请推荐信的建议: 1. 确定推荐人&#xff1…

阿里云OSS上传文件工具类

个人主页:金鳞踏雨 个人简介:大家好,我是金鳞,一个初出茅庐的Java小白 目前状况:22届普通本科毕业生,几经波折了,现在任职于一家国内大型知名日化公司,从事Java开发工作 我的博客&am…

20本期刊影响因子上涨,7月SCI/SSCI/AHCI/EI刊源表已更新!

2023年7月SCI/SSCI/AHCI/EI期刊目录更新 2023年6月28日发布的最新《期刊引证报告》中,我处合作期刊中,7月刊源表有20本期刊影响因子上涨,同时新增多本快刊! 重磅!2023年JCR正式发布(附影响因子名单下载&a…

[github-100天机器学习]day2 simple linear regression

https://github.com/LiuChuang0059/100days-ML-code/blob/master/Day2_SImple_Linear_regression/README.md 简单线性回归 使用单一特征预测响应值。基于自变量X来预测因变量Y的方法,假设两者线性相关,寻找一种根据特征或自变量X的线性函数来预测Y。 目…

工资难以突破升职加薪必看,资深测试经理教你怎么做好“管理岗”!

要了解测试管理岗位需要具备的素质,我们先来看下测试管理岗位的职责。以下是 Boss 直聘上某几家的公司的测试经理的岗位要求: 如果你想学习接口自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的接口自动化测…

从零开始搭建STM32CubeMX开发环境

本文记录一下如何从零开始使用STM32CubeMX,包括软件的安装,环境的搭建,配置代码的生成等; 本文以STM32G030C8T6为例,如果你的单片机不是以STM32G030C8T6为例,换成你的单片机类型即可,过程都是通…

03_单一职责模式

单一职责 在软件组件的设计中,如果责任划分的不清晰,使用继承得到的结果往往是随着需求的变化,子类急剧膨胀,同时充斥着重复代码,这时候的关键是划清责任。 装饰模式 动态(组合)地给一个对象增…

系统没有“internet信息服务(IIS)管理器”

系统没有“internet信息服务(IIS)管理器” 解决方案1.打开控制面板,找到并打开程序。2.找到并打开程序里的启用或关闭windows功能。3.在‘Internet Information Services’下的‘web管理工具’中找到IIS相关功能,在前面的复选框中…

探索数字孪生世界:市场上五款炙手可热的数字孪生产品介绍

山海鲸可视化:山海鲸可视化是一款国内领先的数字孪生软件,具有强大的GIS功能和可视化效果,广泛应用于城市规划、建筑设计和智慧城市等领域。 华为云数字孪生:华为云数字孪生平台提供了全面的数字化解决方案,包括智慧城…

链表中倒数第k个结点(快慢指针问题)

⭐️ 往期相关文章 💫链接1:leetcode 876.链表的中间结点(快慢指针问题) 💫链接2:leetcode 206.反转链表 💫链接3:leetcode 203.移除链表元素 💫链接4:数据结构-手撕单链表代码详解…

实训笔记7.4

实训笔记7.4 7.4一、座右铭二、IDEA集成开发环境的安装和使用三、DEBUG断点调试四、Java设计模式4.1 适配器模式4.2 动态代理模式4.3 单例设计模式 五、Java中网络编程5.1 网络编程三个核心要素5.2 TCP网络编程 六、基于网络编程的聊天系统6.1 需求分析6.2 系统设计6.2.1 概要设…