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,pass1111

【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} + 1b的实际值不是整型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四种参数化方式的更多相关文章

  1. 【Jmeter基础知识】Jmeter的三种参数化方式

    JMeter的三种参数化方式包括: 1.用户参数 2.函数助手 3.CSV Data Set Config 一.用户参数 位置:添加-前置处理器-用户参数 操作:可添加多个变量或者参数 二.函数助手 ...

  2. Android开发之基本控件和详解四种布局方式

    Android中的控件的使用方式和iOS中控件的使用方式基本相同,都是事件驱动.给控件添加事件也有接口回调和委托代理的方式.今天这篇博客就总结一下Android中常用的基本控件以及布局方式.说到布局方 ...

  3. lua中for循环的四种遍历方式

    lua中for的四种遍历方式区别 table.maxn 取最大的整数key #table 从1开始的顺序整数最大值,如1,2,3,6 #table == 3   key,value pairs 取每一 ...

  4. Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (一) —— 总览

    Android数据的四种存储方式SharedPreferences.SQLite.Content Provider和File (一) —— 总览   作为一个完成的应用程序,数据存储操作是必不可少的. ...

  5. HttpwebClient的四种请求方式

    最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷.      本文旨在发布代码,供自己参考,也供大家参考,谢谢. 正题: Ht ...

  6. Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (三) —— SharePreferences

    除了SQLite数据库外,SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息.其存储位置在/data ...

  7. Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (四) —— ContentProvider

    ContentProvider是安卓平台中,在不同应用程序之间实现数据共享的一种机制.一个应用程序如果需要让别的程序可以操作自己的数据,即可采用这种机制.并且此种方式忽略了底层的数据存储实现,Cont ...

  8. Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (二) —— SQLite

    SQLite是一种转为嵌入式设备设计的轻型数据库,其只有五种数据类型,分别是: NULL: 空值 INTEGER: 整数 REAL: 浮点数 TEXT: 字符串 BLOB: 大数据 在SQLite中, ...

  9. xml常用四种解析方式优缺点的分析×××××

    xml常用四种解析方式优缺点的分析 博客分类: xml   最近用得到xml的解析方式,于是就翻了翻自己的笔记同时从网上查找了资料,自己在前人的基础上总结了下,贴出来大家分享下. 首先介绍一下xml语 ...

随机推荐

  1. [状压DP]车II

    车 I I 车II 车II 题目描述 有一个 n ∗ m n*m n∗m的棋盘 ( n . m ≤ 80 , n ∗ m ≤ 80 ) (n.m≤80,n*m≤80) (n.m≤80,n∗m≤80)要 ...

  2. [hash]集合

    集合 题目描述 给定两个集合A.B,集合内的任一元素x满足1 ≤ x ≤ 109,并且每个集合的元素个数不大于105.我们希望求出A.B之间的关系. 任 务 :给定两个集合的描述,判断它们满足下列关系 ...

  3. buuctf --pwn part2

    pwn难啊! 1.[OGeek2019]babyrop 先check一下文件,开启了NX 在ida中没有找到system.'/bin/sh'等相关的字符,或许需要ROP绕过(废话,题目提示了) 查看到 ...

  4. 深入学习spring cloud gateway 限流熔断

    前言 Spring Cloud Gateway 目前,Spring Cloud Gateway是仅次于Spring Cloud Netflix的第二个最受欢迎的Spring Cloud项目(就GitH ...

  5. Zookeeper基础原理&应用场景详解

    简单了解Zookeeper Tips: 如果之前对Zookeeper不了解的话,这里大概留个印象就好了 Zookeeper是一个分布式协调服务,可以用于元数据管理.分布式锁.分布式协调.发布订阅.服务 ...

  6. 痞子衡嵌入式:利用i.MXRT1xxx系列内部DCP引擎计算Hash值时需特别处理L1 D-Cache

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是利用i.MXRT1xxx系列内部DCP引擎计算Hash值时需特别处理L1 D-Cache. 关于i.MXRT1xxx系列内部通用数据协处 ...

  7. 所谓 ICMP,不过将军与士卒而已

    什么是 ICMP 协议 关于这点我们在 IP 协议那篇文章中提过一嘴,IP 协议作为一种提供不可靠数据交付的网络层协议,在传输的过程中,其 IP 数据报可能会发生丢失.重复.延迟和乱序等各种情况, 但 ...

  8. GridSearchCV 参数

    GridSearchCV(estimator, param_grid, scoring=None, fit_params=None, n_jobs=1, iid=True, refit=True, c ...

  9. Java IO流知识总结

    Java IO的原理 I/O是Input和Output的缩写,用来处理设备之间的数据传输.如读/写文件,网络通讯等. Java程序中,对于数据的输入/输出操作以"流(stream)" ...

  10. 10- sudo,exit命令

    sudo命令: 作用:用超级用户权限来执行这些命令. 格式:sudo 命令 [选项] [参数] Linux root根目录文件夹 exit命令: 退出用户登陆 Linux关机 开机 重启命令: