Jmeter接口测试参数化

一、前言

接口测试组合不同的参数向服务器发送请求,接受和解析响应结果,通过测试数据的交换逻辑来验证服务端程序工作的正确性。

我们在测试过程中需要考虑不同的输入组合,来覆盖不同的测试范围;除此之外,系统中往往存在一些有唯一性校验的接口,不允许重复录入关键字段(eg: 用户名,身份证…),针对这些有唯一性校验的接口,需要在每次运行时动态输入不同的数据。

我们最常用的有以下几种

二、RandomString函数

作用:生成随机字符串

使用格式:${__RandomString(5,abcde,myResult)},其中

  1. 第一个参数5表示希望生成的字符串的长度,必填

  2. 第二个参数abcde,表示从这些字符中随机组合,非必填

  3. 第三个参数myResult,表示生成的字符串保存在这个变量中,非必填

图片

一般有三种用法:

  1. ${__RandomString(5)}

  2. ${__RandomString(5,abcde)}

  3. ${__RandomString(5,abcde,myResult)}

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

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

图片

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

三、CSVRead函数

CSVRead函数适用于一组关联请求参数的场合。

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

图片

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

  1. CSV File to get Values from: 需要读取的CSV文件

  2. CSV文件列号:从0开始

图片

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

四、CSV Data Set Config配置元件

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

  1. Filename:这里要包括文件的路径,在4.0版本中可以点击右侧的浏览按钮选择文件,会自动带上文件的绝对路径;

  2. File Encoding:文件编码

  3. Variables Name:csv文件中各列的名字,有多列时用英文逗号隔开,列名的名字顺序需要和文件列名对应

  4. Delimiter:分隔符号,数据文件中有多个数据时,需要制定文件中的数据分隔符,一般使用的是英文逗号,如果要使用table制表符分隔,填写 \t

  5. Allow quoted data: 是否允许数据内容加引号,默认:FALSE;如果为TRUE,则当数据形式为:“username” 时,读取出来就为:username;如果为FALSE,有引号读取会报错。

  6. Recycle on EOF:到了文件尾是否循环,True—继续从文件第一行开始读取,False—不再循环

  7. Stop thread on EOF:到了文件尾是否停止线程,True—停止,False—不停止;

  8. Sharing mode:共享模式

图片

对于更复杂的参数化需求,可通过编码方式实现脚本,并通过Jar包的方式引入脚本支持。

学习资料/接口/项目等需要领取:需要+\/ →it7411

最新软件测试+进阶测试全套【自学资料包】

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Cluade3干货:超越GPT,模型特点分析+使用教程|2024年3月更新

就在刚刚,Claude 发布了最新的大模型 Claude3,并且一次性发布了三个模型,分别是 Claude 3 Haiku:(日本俳句 )Claude 3 Sonnet(英文十四行诗)Claude 3 Opus(古典乐作品集…

亚信安慧AntDB的全方位支持力

AntDB以持续创新和技术进步为理念,不断优化性能和功能,至今已经保持了15年的平稳运行。这一漫长的历程并非偶然,而是源于AntDB团队对技术的不懈探索和追求。他们始终秉承着“永不停歇,永不满足”的信念,将技术创新作为…

[Redis]——初识Redis

一、Redis为非关系型数据库 ❓我们常见的MySQL、SQLServer都是关系型数据库,那他们之间有什么区别与联系呢? 📕关系型数据库与非关系型数据库的区别(面试题) 解释: SQL数据库中的表是有结构的,包…

【小智好书分享• 第二期】《低代码平台开发实践:基于React》

最近,我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念,而且内容风趣幽默。我觉得它对大家可能会有所帮助,所以我在此分享。点击这里跳转到网站。 前些天发现了一个巨牛的人工智能学习网站,通俗易懂&am…

ppt做好怎么保存到u盘?简单几步搞定

在日常工作和学习中,PowerPoint(简称PPT)已成为我们展示和分享内容的重要工具。当我们完成一份精美的PPT后,如何将其安全、便捷地保存到U盘,以便随时随地进行演示或分享,成为了许多用户关心的问题。本文将为…

Rust 安装与版本更新

Rust 简介 Rust ,一门赋予每个人构建可靠且高效软件能力的语言,主打内存安全。 2024年2月,在一份 19 页的报告《回归基础构件:通往安全软件之路》中,白宫国家网络主任办公室(ONCD)呼吁开发者使…

计算机网络:网络层知识点汇总

文章目录 一、网络功能概述二、SDN基本概念三、路由算法与路由协议概述四、IP数据报格式五、IP数据报分片六、IPv4地址七、网络地址转换NAT八、子网划分和子网掩码九、无分类编址CIDR十、ARP协议十一、DHCP协议十二、ICMP协议十三、IPv6十四、RIP协议与距离向量算法十五、OSPF协…

【电路笔记】-双极晶体管

双极晶体管 文章目录 双极晶体管1、概述2、双极晶体管结构3、双极晶体管配置3.1 共基极 (CB) 配置3.2 共发射极 (CE) 配置3.3 共集极 (CC) 配置4、总结1、概述 双极结型晶体管是一种可用于开关或放大的半导体器件。 与半导体二极管不同,半导体二极管由两片半导体材料组成,形…

ubuntu22出现make_ext4fs: command not found

1、下载android-tools-fsutils https://mirrors.cqupt.edu.cn/deepin/pool/main/a/android-tools/ 2、sudo dpkg -i android-tools-fsutils_5.1.1.r38-1.1_amd64.deb 3、sudo apt-get install -f 4、make_ext4fs -h

球盒问题(大雪问题)

说明:本博文来自CSDN-问答板块,题主提问。 需要:球和盒子 设有n个球,m个盒子。将球是否相同,盒子是否相同,是否可以有空盒(有空盒指的是可以有空盒)分为八种情况。写出将球放入盒子的所有情况求法,并选择其中2个,写出相应的程序代码。(用两种语言写),可以使用pyth…

OJ:循环队列

622. 设计循环队列 - 力扣(LeetCode) 思路 思路:首先循环队列的意思是:空间固定,就是提前开辟好,满了就不能插入了,但是删除数据后仍有空间,删除循环队列里面的数据后,保…

day14_用户前台项目环境搭建(首页接口开发,分类接口开发,网关服务搭建,Redis缓存,Spring Cache)

文章目录 1 尚品甄选H5介绍1.1 业务功能介绍1.2 系统架构1.3 前端H5开发说明 2 搭建项目环境2.1 项目结构说明2.2 模块依赖说明2.3 环境说明2.4 项目模块创建2.4.1 spzx-parent2.4.2 spzx-service2.4.43 service-product 2.5 导入接口文档 3 首页接口开发3.1 需求分析3.3 接口开…

LLM 应用的新兴架构

原文地址:emerging-architectures-for-llm-applications 大语言模型(LLM)为软件构建提供了一种强大的新方法。由于这种技术相对较新,且其运作方式与传统计算资源大相径庭,如何有效利用它们并不是显而易见的。 在这篇…

2024年护眼台灯哪家品牌好?五款优质品牌专业推荐

护眼台灯几乎是每个孩子书桌上都会有的灯具,但还是有不少家长觉得是“智商税”。其实护眼台灯好处非常多,列如能够提供舒适的照明,缓解用眼疲劳,预防近视等等。所以今天准备了一期护眼台灯测评,并附上护眼台灯的榜单&a…

QT:颜色选择器

普通 Qt提供了一个现成的QColorDialog类。 用法: #include <QColorDialog>QColor color QColorDialog::getColor(Qt::white, this); if(!color.isValid()){//点击 关闭 或 cancel 颜色无效 }else {ui->text->setText(color.name());//类似##ffffQRgb rgb colo…

爬虫实战——scrapy框架爬取多张图片

scrapy框架的基本使用&#xff0c;请参考我的另一篇文章&#xff1a;scrapy框架的基本使用 起始爬取的网页如下&#xff1a; 点击每张图片&#xff0c;可以进入图片的详情页&#xff0c;如下&#xff1a; 代码实现&#xff1a; 项目文件结构如下 img_download.py文件代码 im…

微信小程序开发系列(八)·微信小程序页面的划分以及轮播图区域的绘制和图片的添加

目录 1. 划分页面结构 2. 轮播图区域绘制 3. 轮播图图片添加 1. 划分页面结构 最终我们想达到如下效果&#xff1a; 其页面分为四层结构&#xff0c;因此我们需要配置四块view&#xff0c;代码如下&#xff1a; <!-- view 小程序提供的容器组件&#xff0c;可以当成…

算法沉淀——动态规划之其它背包问题与卡特兰数(leetcode真题剖析)

算法沉淀——动态规划之其它背包问题与卡特兰数 二维费用的背包问题01.一和零02.盈利计划 似包非包组合总和 Ⅳ 卡特兰数不同的二叉搜索树 二维费用的背包问题 01.一和零 题目链接&#xff1a;https://leetcode.cn/problems/ones-and-zeroes/ 给你一个二进制字符串数组 strs…

Springboot自动装配的原理

Springboot自动装配 1.前言2.EnableAutoConfiguration3.AutoConfigurationImportSelector4.spring.factories5.总结 1.前言 为什么springboot能够开箱即用&#xff0c;就是由于Springboot的自动装配。我们知道项目启动的方法上面都有一个注解SpringBootApplication&#xff0c…

武汉灰京文化:游戏市场推广与用户增长的成功典范

作为游戏行业的明星企业&#xff0c;武汉灰京文化在市场推广和用户增长方面的成功经验备受瞩目。他们以创造性和独特性的市场营销策略&#xff0c;成功吸引了大量用户。这不仅提高了其游戏的知名度&#xff0c;还为公司带来了持续的增长。这一成功模式不仅对公司自身有益&#…