Jmeter的几种参数化方式

1.为什么要做参数化?

在用jmeter脚本进行压测的时候,为了更真实的模拟起到更好的效果,我们需要让参数动态变化起来,也就是参数化。通过参数化我们也可以更好、更灵活的维护我们的测试脚本。

2.参数化的方式

能够实现参数化的方式有很多种,比如定义全局变量、通过函数助手、从文件中读取等方式,这里先只描述几种我比较熟悉的参数化方式,其它的之后再进行补充完善。

2.1.定义全局变量

定义全局变量非常简单,只需要在测试计划页面"用户定义的变量"下维护变量名和对应的变量值,然后在需要调用变量的地方使用${变量名}即可调用变量实现参数化,如下图所示。

2.2.函数助手

函数助手也是我们经常用于参数化的方式之一,可以选择随机数(_Random)或者随机字符串(_RandomString)通过生成随机数据来进行参数化。

2.2.1.随机数

想用随机数可以在函数助手中选择_Random函数,然后设置最小值和最大值,点击生成按钮可以生成随机数的表达式,将其拷贝到所需要引用的地方即可,如生成1000~9999范围内的随机数,如下图所示。

2.2.2.随机字符串

想用随机字符串可以在函数助手中选择_RandomString函数,然后设置字符串长度和取值范围,点击生成按钮可以生成随机字符串的表达式,将其拷贝到所需要引用的地方即可,如生成1000~9999范围内的随机数,如下图所示。

2.3.从文件中读取

在函数助手中选择_CSVRead函数,在"用于获取值的CSV文件|*别名"处维护待参数化文件的路径,在"CSV文件列号"所在行维护取值列,然后点击生成按钮,即可生成变量表达式,如下图所示。

参数化文件中列与列之间用英文逗号分隔,在参数化取列的值时0代表第一列,1代表第二列,依此类推。

在实际执行过程中还发现,当有多个线程循环读取的时候,每个线程只读取1行值,如5个线程循环2次,共执行10次,只会读取到前5行所在值,1个线程循环10次都在读取第一行所在值。

小结:

**csv_read函数特点:**每个并发用户只读取1行,且永远使用同一行数据,无论并发用户循环多少次,执行多少个http请求。

**使用场景:**某些业务场景是流程式,需要分成多个http请求,且多个http请求需要用到一个共同的参数,如:用户id、用户名。

2.4.csv文件参数化

在线程组中添加"CSV数据文件设置"配置元件,在文件设置中"文件名"处维护参数化文件的路径,文件编码根据需求选择,我这里选择"UTF-8",在"变量名称"处维护要从文件中取值的变量名,如果要取多列值,不同变量之间用英文逗号分隔,"分隔符"所在处输入英文逗号,在需要引用变量的地方用${变量名}进行引用即可。

**需要注意的是:**遇到文件结束符再次循环和遇到文件结束符停止线程两个值是相反的。

相关推荐
sszmvb12341 小时前
测试开发 | 电商业务性能测试: Jmeter 参数化功能实现注册登录的数据驱动
jmeter·面试·职场和发展
小码哥说测试3 小时前
接口测试用例设计的关键步骤与技巧解析!
自动化测试·测试工具·jmeter·职场和发展·测试用例·接口测试·postman
小钱c76 小时前
Mac下安装Apache JMeter并启动
jmeter·macos·apache
古人诚不我欺9 小时前
jmeter常用配置元件介绍总结之函数助手
jmeter
川石课堂软件测试9 小时前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana
古人诚不我欺9 小时前
jmeter常用配置元件介绍总结之取样器
jmeter
十叶知秋9 小时前
【jmeter】jmeter的线程组功能的详细介绍
数据库·jmeter·性能测试
我非夏日9 小时前
JMeter基础篇
jmeter
茶馆大橘18 小时前
微服务系列五:避免雪崩问题的限流、隔离、熔断措施
java·jmeter·spring cloud·微服务·云原生·架构·sentinel
土小帽软件测试1 天前
jmeter基础01-2_环境准备-Mac系统安装jdk
java·测试工具·jmeter·macos·软件测试学习