JMeter四种参数化方式
JMeter参数化是指把固定的数据动态化,这样更贴合实际的模拟用户请求,比如模拟多个不同账号。JMeter一共有四种参数化方式,分别是:
- CSV Data Set Config
- Function Helper
- User Defined Variables
- User Parameters
CSV Data Set Config
所属组件:Config Element。

Name
带业务含义的名字。
Comments
可以为空的注释。
Configure the CSV Data Source
【Filename】文件名,可以是相对路径也可以是绝对路径。推荐使用相对路径,好处是脚本迁移或者分发到多台远程负载机,不改脚本就能直接复用。相对路径的根节点是%JMETER_HOME%\bin,把CSV文件放到这个目录或其子目录下。
注意,打开方式选择bin目录下jmeter.bat或快捷方式才会把bin作为相对路径的根节点。如果把bin目录加入系统环境变量后,用cmd执行jmeter命令打开,那么相对路径的根节点是cmd的工作目录,比如C:\Users\dongfanger\Desktop。
【File encoding】文件编码,推荐用UTF-8。
【Variable Names (comma-delimited)】定义的变量名,用逗号隔开,与CSV文件的列一一对应。变量比列多,多余的变量取不到值;变量比列少,多余的列不会被取值。此选项可以为空。
【Ignore first line (only used if Variable Names is not empty)】上一个选项的变量名为空时,此选项生效。它会把CSV文件的第一行的列名作为变量名,并在取值时忽略第一行。
【Delimiter (use '\t' for tab)】CSV文件分隔符,默认为逗号,也可以用制表符。
【Allow quoted data】是否允许引用数据,比如双引号"dongfanger,pass",1111,允许后能拆分出dongfanger,pass和1111。
【Recycle on EOF】设置为True时,循环遍历CSV文件。
【Stop thread on EOF】设置为True时,遍历完CSV文件就结束线程。
EOF是End Of File缩写,文件结束符。JMeter在测试执行过程中每个线程每次迭代会从参数文件中新取一行数据,从头遍历到尾。
【Sharing mode】有三种共享模式:默认为All threads,对所有线程共享;Current thread group只对当前线程组中的线程共享;Current thread仅当前线程获取。
比如2个线程组,每个线程组2个线程,共享同一个csv文件,那么迭代1次这4个线程会分别取前4条数据,互不重复;迭代2次这4个线程会分别取前8条数据,互不重复。
User Defined Variables
所属组件:Config Element。

JMeter有两个User Defined Variables,它们的区别是:Test Plan的User Defined Variables作用域是全局的,配置元件的User Defined Variables作用域可以是全局的也可以是局部的。
表格共三列,第一列是Name变量名,第二列是Value变量值,第三列是Description描述。表格下方的功能按钮,用来对表格进行增删改查和上下移动,还能直接从剪贴板添加。
定义好的变量通过${}格式来使用,比如变量a值为1,使用时写作${a}。这个地方定义的实际上是字符串常量,比如刚才已经定义了一个变量名a变量值1,再定义变量名b变量值${a} + 1,b的实际值不是整型2而是字符串"${a} + 1"。
User Parameters
所属组件:Pre Processors。由于User Parameters属于前置处理器,所以它只会对当前Sampler生效。

Name
带业务含义的名字。
Comments
可以为空的注释。
Update Once Per Iteration
经过反复多次试验,勾选与否没看出区别。官方解释如下:
A flag to indicate whether the User Parameters element should update its variables only once per iteration. if you embed functions into the UP, then you may need greater control over how often the values of the variables are updated. Keep this box checked to ensure the values are updated each time through the UP's parent controller. Uncheck the box, and the UP will update the parameters for every sample request made within its scope.
从各文章截图总结,一般会勾选上这个选项。
Parameters
表格列Name指变量名,表格列User_x指某个用户的变量值。下方有6个按钮,分别是“添加变量”、“删除变量”、“添加用户”、“删除用户”、“上移”、“下移”。每个线程分配一个变量值;如果线程数大于User_x,那么会循环取值。
User Parameters在参数较少的情况下使用。
Function Helper

函数除了参数化,还可以用来做运算,字符编码格式转换,获取运行时参数等,下篇文章专门来写。
小结
本文介绍了配置组件里面的CSV Data Set Config和User Defined Variables,作用域可全局可局部。接着介绍了前置处理器User Parameters,只对当前Sampler生效。但都有局限性,为了帮助我们更好地进行参数化,JMeter提供了一组函数来帮我们生成需要的数据,这些函数在有个地方能够进行编辑,它就是:Function Helper。
参考资料:
《全栈性能测试修炼宝典JMeter实战》
http://tutorialjmeter.blogspot.com/2017/05/pre-processor-in-jmeter.html
https://jmeter.apache.org/usermanual/component_reference.html#User_Parameters
JMeter四种参数化方式的更多相关文章
- 【Jmeter基础知识】Jmeter的三种参数化方式
JMeter的三种参数化方式包括: 1.用户参数 2.函数助手 3.CSV Data Set Config 一.用户参数 位置:添加-前置处理器-用户参数 操作:可添加多个变量或者参数 二.函数助手 ...
- Android开发之基本控件和详解四种布局方式
Android中的控件的使用方式和iOS中控件的使用方式基本相同,都是事件驱动.给控件添加事件也有接口回调和委托代理的方式.今天这篇博客就总结一下Android中常用的基本控件以及布局方式.说到布局方 ...
- lua中for循环的四种遍历方式
lua中for的四种遍历方式区别 table.maxn 取最大的整数key #table 从1开始的顺序整数最大值,如1,2,3,6 #table == 3 key,value pairs 取每一 ...
- Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (一) —— 总览
Android数据的四种存储方式SharedPreferences.SQLite.Content Provider和File (一) —— 总览 作为一个完成的应用程序,数据存储操作是必不可少的. ...
- HttpwebClient的四种请求方式
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷. 本文旨在发布代码,供自己参考,也供大家参考,谢谢. 正题: Ht ...
- Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (三) —— SharePreferences
除了SQLite数据库外,SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息.其存储位置在/data ...
- Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (四) —— ContentProvider
ContentProvider是安卓平台中,在不同应用程序之间实现数据共享的一种机制.一个应用程序如果需要让别的程序可以操作自己的数据,即可采用这种机制.并且此种方式忽略了底层的数据存储实现,Cont ...
- Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (二) —— SQLite
SQLite是一种转为嵌入式设备设计的轻型数据库,其只有五种数据类型,分别是: NULL: 空值 INTEGER: 整数 REAL: 浮点数 TEXT: 字符串 BLOB: 大数据 在SQLite中, ...
- xml常用四种解析方式优缺点的分析×××××
xml常用四种解析方式优缺点的分析 博客分类: xml 最近用得到xml的解析方式,于是就翻了翻自己的笔记同时从网上查找了资料,自己在前人的基础上总结了下,贴出来大家分享下. 首先介绍一下xml语 ...
随机推荐
- python之极简ATM系统示例
"""用户可登陆系统输错三次锁定账号用户可以创建新的用户名密码新用户初始账户设为0新用户可直接登陆系统用户登陆成功后可以选择业务类型用户数据可以根据业务修改输入Q随时退出 ...
- springboot的拦截器报错plicationFilterChain.java:193) ~[tomcat-embed-core-9.0.36.jar:9.0.36]
解决方案: spingboot的拦截器"index.html"少"/",太粗心了
- PAT (Advanced Level) Practice 1011 World Cup Betting (20 分) 凌宸1642
PAT (Advanced Level) Practice 1011 World Cup Betting (20 分) 凌宸1642 题目描述: With the 2010 FIFA World Cu ...
- 借鉴Elasticsearch 7.x 深入系列学习
开始 Elasticsearch 深入系列目录如下: Elasticsearch 7.x 深入 数据准备 Elasticsearch 7.x 深入[1]索引[一]原理 Elasticsearch 7. ...
- .NET 6 Preview 3 中 ASP.NET Core 的更新和改进
原文:bit.ly/2Qb56NP 作者:Daniel Roth 译者:精致码农-王亮 .NET 6 预览版 3 现已推出,其中包括许多对新的 ASP.NET Core 改进.以下是本次预览版的新内容 ...
- ubuntu20.04开机显示recovering journal死机的解决方法
事发突然,在今天开机的时候无法进入登陆界面,一直卡在黑屏界面,屏幕上只显示几行代码,且任何按键都无法起作用 /dev/sdb2:recovering journal /dev/sdb2:Clearin ...
- 201871030127-王明强 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告
项目 内容 课程班级博客链接 18级卓越班 这个作业要求链接 实验三 软件工程结对项目 我的课程学习目标 1.熟悉PSP流程2. 熟悉github操作3.加深对D{0-1}问题的解法的理解4.熟悉ja ...
- MzzTxx——团队介绍
项目 内容 这个作业属于哪个课程 2021春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 团队项目-团队介绍 我在这个课程的目标是 提升工程能力和团队意识,熟悉软件开发的流程 这个作业在哪 ...
- 结对作业-stage_2
见队友博客:结对编程-stage_2
- 动态的创建Class对象方法及调用方式性能分析
有了Class对象,能做什么? 创建类的对象:调用Class对象的newInstance()方法 类必须有一个无参数的构造器. 类的构造器的访问权限需要足够. 思考?没有无参的构造器就不能创建对象吗? ...