当前位置:网站首页>jmeter 学习笔记
jmeter 学习笔记
2022-06-30 12:24:00 【猎人在吃肉】
1、CSV Data Set Config
D盘中,data.txt 的内容:
CSV Data Set Config
的配置如下:
各参数说明:
Filename(文件名) : 支持相对和绝对路径。相对路径是以脚本保存的路径为当前的相对路径的
Variable Name(变量名) :有多少列数据我们就设置多少个变量,以逗号分隔。
如果这一项为空,jemter会去解析csv文件的header,也就是说,如果你的csv文件是有表头的,那么你可以不设置变量名,jmeter会自动将表头的名称解析成变量。Allow quoted data : 如果你的csv文件的内容里包含了分隔符,默认的分隔符是逗号,那么把这项勾选一下,用双引号将值括起来就可以了
Sharing mode :这个比较难理解,我们可以简单的认为这个选项就是配置jmeter怎么打开csv文件的。它有4个选项:
选项参数 含义 All threads 所有的虚拟用户都使用同一个csv文件 Current thread group 每个线程组使用一个csv文件 Current thread 每个线程(虚拟用户)使用一个csv文件 Identifier 自定义
2、正则表达式提取器
正则表达式提取器的使用场景:
把应用中动态变化返回的数据获取到,把它保存为一个参数,提供给后面需要用到的地方进行使用。
比如,下一个接口的参数中需引用到前面某一接口返回数据中的值,可以通过 正则表达式提取器 来取得该值。
各参数值的含义:
参数 | 释义 |
---|---|
引用名称 | 在HTTP等请求中,引用此数据,需要用到的名称 |
正则表达式 | 用于将需要的数据提取出来 |
模板 | 表示使用提取到的第几个值:$1$:表示取第1个(列) $2$:表示取第2个(列) 以此类推:$n$:表示取第n个 |
匹配数字(0代表随机) | 0 代表随机取值,1 代表全部取值 |
缺省值 | 如果正则表达式没有搜找到值,则使用此缺省值 |
2.1、正则表达式 —— 只有一个的匹配值
(1)正则表达式测试
文本内容如下 ,已知 9 这个数字。
javawind:9
测试使用的正则表达式如下:
正则表达式测试器 使用说明:
第1列是匹配的文件原始内容,不是匹配结果。
从第2列开始是匹配的提取结果。
正则表达式是 javawind:(.*)
,从测试结果中看出, 第2列(即索引是 1 )即是 提取的结果。
(2)正则表达式提取器的配置
因为只有一个值(索引从 1 开始计算),取值使用 $1$
,如下图所示:
(3)在其它组件中引用
使用变量时,引用名称即可。
2.2、正则表达式 —— 有多个匹配的值
(1)正则表达式测试
如下图所示,一行中,有两个匹配的值。
(2)正则表达式提取器的配置
上一步中,一行中有两个匹配的值,如果要取第1个值 ,则使用 $1$
,如果要取第2个值,则使用 $2$
,以此类推。
(3)在其它组件中引用
使用变量时,引用名称即可。
2.3、正则表达式 —— 有多行多列的匹配值
有多行多列的匹配数据,是不常见的。
(1)正则表达式测试
如下图所示,有3行2列的匹配的数据。
(2)正则表达式提取器的配置
分析,假如要获取 第2列、第2行的值,则对应的J是($2$, ${javawd_g2})
,如果是第3列、第4行的值,则对应的是($3$,${javawd_g4})
。
下面,我们以取 第2列,第2行,值是17
的为例 。
首先,正则表达式提取器的模板填写 $2$
,表示获取 第2列的数据 。
(3)在其它组件中引用
在上一步的 第2列 的基础上,如果想取 第1行 的数据 16
,则填写 ${javawd_g1}
,
如果想取 第2行 的数据 17
,则填写 ${javawd_g2}
。
2.4、示例,jmeter 使用正则表达式提取器获取值 和 设置全局变量
接口测试中,很多的接口先登录后,获取 token ,将 token 设置为全局变量,然后才能调用其它的接口。
登录后返回信息中会有一个 token 值,使用正则表达式提取 token的值,
然后,使用 后置处理器中 的 BeanShell PostProcessor
设置 token为全局变量。
(1)查看 token值:
查看token的方式有很多,常见的有如下方式。
- 用fiddler抓包
- F12查看接口信息
- 用jmeter登录查看
(2)正则表达式提取token
(3)BeanShell PostProcessor 设置 token 为全局变量。
(4)其他接口使用该全局变量:
添加http信息头管理器
3、数据提取的两种方法
把前一个步骤中返回的数据获取到,把它保存为一个参数,提供给后面步骤使用。
如下图所示,密码登录接口 执行成功后,返回一些数据。这个数据中的 token
、userId
是后续接口调用时必须使用的。
提取 密码登录接口 返回值中的 token
、userId
有两种方法,第1种是正则表达式提取器,第2种是 JSON Extractor 。
3.1、方法1,正则表达式提取器
提取 密码登录接口 返回值中的 token
、userId
,如下图所示。
debug sampler
可以看到userId、token已被提取;引用写法为:${token}
, ${userId}
。
3.2、方法2,JSON Extractor
提取 密码登录接口 返回值中的 token
、userId
,如下图所示。
debug sampler
可以看到userId、token已被提取;引用写法为:${token}
,${userId}
。
3.3、值引用 ${ }
前面有两种方式提取参数, 接下来是在下一个接口参数中引用提取值。
如下图所示,在 http 中引用 token 值,
点击执行按钮,在 http 结果树 中 查看 请求数据 ,可以看到 token
引用情况。
执行结果,如下图所示,在 http 的 结果树 中查看 响应数据 ,接口也执行成功。
4、函数助手
(1)打开 函数助手对话框
(2)选择 __CSVRead
功能函数。
(3)准备数据,如下图所示。
在D盘创建data.txt文件,内容如下:
(4)配置 __CSVRead
函数的参数值
选项参数 | 含义 |
---|---|
CSV file to get values from | 要读取文件的全路径 |
CSV文件列号 | 要读取数据的第几列。默认是从0开始的,0 表示 第1列 。 0 表示第1列 1表示第2列 以此类推 |
上面的值填写完成后,点击 生成 按钮,生成 引用的变量 。
(4)引用参数
username 是第1列,填写 ${__CSVRead(D:\data.txt,0)}
pwd 是第2列,填写 ${__CSVRead(D:\data.txt,1)}
(5)验证
略
边栏推荐
- Shell基础入门
- 【 surprise】 la vitesse de téléchargement de Thunderbolt n'est pas aussi rapide que celle de la machine virtuelle
- 【C语言深度解剖】float变量在内存中存储原理&&指针变量与“零值”比较
- How to solve cross domain problems
- Mysql根据经纬度查询半径多少以内的数据,画个圈圈查数据库
- How to select an OLAP database engine?
- Questionnaire star questionnaire packet capturing analysis
- [one day learning awk] array usage
- 【OpenGL】OpenGL Examples
- Illustration creating a stored procedure using Navicat for MySQL
猜你喜欢
如何利用AI技术优化独立站客服系统?听听专家怎么说!
【驚了】迅雷下載速度竟然比不上虛擬機中的下載速度
[learn awk in one day] operator
问卷星问卷抓包分析
Sarsa notes
MATLAB小技巧(22)矩阵分析--逐步回归
SuperMap 3D SDKs_ Unity plug-in development - connect data services for SQL queries
Dark horse notes -- wrapper class, regular expression, arrays class
Efficient elliptic curve point addition and multiplication in scrypt
杭州电子商务研究院:官网(网站)是私域的唯一形态
随机推荐
mqtt-ros模拟发布一个自定义消息类型
[yitianxue awk] regular matching
Redis configuration files and new data types
Substrate 源码追新导读: 波卡系波卡权重计算全面更新, Governance 2.0 版本的优化和调整
Idea has a new artifact, a set of code to adapt to multiple terminals!
【一天学awk】基础中的基础
Wechat launched the picture big bang function; Apple's self-developed 5g chip may have failed; Microsoft solves the bug that causes edge to stop responding | geek headlines
【一天学awk】内置变量的使用
Visual Studio配置Qt并通过NSIS实现项目打包
[QNX Hypervisor 2.2用户手册]6.2.3 Guest与外部之间通信
基于ThinkPHP5封装-tronapi-波场接口-源码无加密-可二开--附接口文档-作者详细指导-2022年6月30日08:45:27
论文解读(AGC)《Attributed Graph Clustering via Adaptive Graph Convolution》
排查问题的方法论(适用于任何多方合作中产生的问题排查)
Database usage in QT
Redis cache problem
MySQL judges the calculation result and divides it by 100
Efficient elliptic curve point addition and multiplication in scrypt
Today in history: Microsoft acquires PowerPoint developers; SGI and MIPS merge
Three ways for flinksql to customize udaf
“\“id\“ contains an invalid value“