为了解决重复性操作,比如查询30个学院信息,所以通过循环的方式,从一个数据源获取数据,对重复执行的操作,进行动态赋值的过程叫做参数化。

参数化原理:复杂的技术都是源于简单的重复
                (1)简单的重复过程:列表,分析哪里是不变的操作,哪里是变化的数据
                (2)把变化的数据告诉jmeter:使用参数,存储变化的数据
                (3)把需要使用参数的位置用同一个变量替代
                注意:

①变量名理论上可以是任意的英文字母组成,建议不要夹杂其他的字符
                        ②变量的引用形式  ${变量名}

参数化分析思路:

(1)罗列所有简单的重复过程,直到能看出规律
                (2)分析第一步中哪些是不变的部分,哪些是变化的部分
                (3)分别处理不变的部分和变化的部分
                (4)点击运行,观察动态赋值的过程,是否符合预期,如果不符,加以调试

接下来介绍参数化的四种方法

一、用户参数(在变化的部分使用变量替代)

步骤:

(1)新建http请求
                (2)设置线程组的属性,使得请求循环或者重复执行起来
                (3)添加前置处理器-用户参数,定义变量名和变量值
                注意:①用户数要和线程数保持一致,变量名要保持一致
                           ②每个用户的变量取值是不变的,第n个线程执行时取第n个用户的值,无论循环多少次

二、CSV数据文件设置

因为用户参数的参数化数据有限,CSV可以创建大量数据,所以使用配置元件-CSV数据文件设置(CSV Data configuration set)。

(一)CSV概念

定义:逗号分割值,数据和数据之间用英文半角逗号分割

创建CSV:①使用文本编辑工具编写,并另存为csv文件。
                                  ②使用excel表格编写,并导出为csv文件。

注意:①逗号必须是英文半角逗号,否则全角逗号当做一列。
                           ②有效数据之间不能有空行,否则空行取不到值。
                           ③编码格式建议是UTF-8编码,否则中文乱码。

(二)属性设置

文件名:填写或浏览CSV数据所在的目录和文件名

文件编码:指定CSV文件的编码方式,可以下拉列表选择

变量名称:定义引用CSV数据的变量名,多个变量之间使用英文半角逗号分割

(三)循环赋值方式

要遍历所有的csv数据,需要线程组总的循环次数(线程数x循环次数)要大于等于CSV数据的行数。

(1)从第几行取值,取决于是第几次循环
                (2)从第几列取值,取决于是第几个变量

(四)使用步骤

                (1)新建请求
                (2)设置线程组属性
                (3)准备CSV文件,用于参数化数据取值
                (4)添加配置元件----CSV数据文件设置
                (5)运行调试脚本

三、用户定义的变量(使用一个用户定义的变量,封装使用频繁,但是基本不变的数据)

路径使用繁琐,一旦发生变化,脚本维护和修改将花费大量时间成本。

定义:使用一个配置元件,定义一个变量,来封装不变但是使用频繁的数据,这个变量就叫做用户定义的变量,实现这个封装的元件,也叫用户定义的变量。

操作步骤:配置元件-用户定义的变量-添加变量名和值

四、函数

操作步骤:

               (1)调用函数助手-选择一个函数-填写函数的参数,生成函数的调用形式
               (2)将函数的调用形式粘贴到任意想要使用的地方
               (3)运行脚本,观察效果

(一)计数器函数counter

第一个参数的取值:

true---每个用户独享一个计数器
                        false---所有用户共享一个计数器
                        默认值为false

第二个参数:存储返回值的变量,可不写

(二)随机数函数random

第一个参数:区间的最小值,可以取到
                第二个参数:区间的最大值,可以取到
                第三个参数: 存储返回值的变量,可不写

(三)时间函数time(获取电脑本地时间)

第一个参数:作用是定义时间的显示格式

时间

表示字母

表示字母

年--year

y

月-month

M

日-day

d(本月的第几天)

D(本年的第几天)

时-hour

h(12小时制)

H(24小时制)

分-minute

m

秒-second

s(秒)

S(毫秒)

写法示例(结果相同):
                            y年M月d日h点m分s秒S毫秒
                            yyyy年MM月dd日hh点mm分ss秒SSS毫秒

(四)CSVRead函数(封装了对csv文件进行取值的功能)

通过读取外部csv文件,获取csv格式的数据,用于jmeter内部,常用于参数化。

第一个参数:指定csv文件所在的目录和文件名

第二个参数:指定从几列取值。0表示第一列,1表示第二列,以此类推

注意:

①从csv第几列取值由第二个参数指定
                        ②从csv第几行取值由第几个线程决定
                        ③要想遍历csv文件的所有行,需要保证线程数要大于等于csv的行数
                        ④如果csv数据中含有中文,csv编码格式改为ANSI

五、四种方式总结

相同点:都是从一个数据源获取数据,动态赋值到重复操作的过程中

不同点:

(1)用户参数数据源在jmeter内部准备,适用于数据量比较小的场景,使用次数较少
                (2)CSV数据源在jmeter外部准备,可以设计大量数据,也可借助于工具或者代码生成大量数据,用于数据量比较大的场景,使用较频繁
                (3)用户定义的变量适用于数据变化不大但是使用频繁的场景,使用次数较少
                (4)函数多样、灵活、功能强大、使用较多

CSV数据文件设置:总的循环次数每变化一次,CSV文件的取值就变化一次
         用户参数:用户数(线程数)每变化一次,用户参数的取值就变化一次

建议优先选择CSV数据文件设置和函数进行参数化。用户参数和用户定义的变量,作为辅助手段,择机使用。

jmeter参数化的四种方法相关推荐

  1. Jmeter参数化的几种方法

    参数化的五种方法: 利用函数助手获取参数值:工具-函数助手对话框–选需要的函数直接生成,把需要的数据位置直接替换生成即可 counter:这个函数是一个计数器,用于统计函数的使用次数,它从1开始,每调 ...

  2. Jmeter参数化的四种方式

    JMeter的四种参数化方式包括: 1.用户参数 2.用户自定义变量 3.CSV Data Set Config 4.函数助手 一.用户参数 位置:线程组右键-添加-前置处理器-用户参数 操作:用户参 ...

  3. Jmeter——参数化的9种方法

    本文由作者张迎贞授权网易云社区发布. 一.用户定义的变量 1.右键快捷菜单中选择 添加-配置元件-用户自定义变量. 用户自定义变量中的定义的所有参数的值在测试计划的执行过程中不能发生取值的改变,因此一 ...

  4. python单向认证_使用Python进行单向方差分析的四种方法

    python单向认证 The current post will focus on how to carry out between-subjects ANOVA using Python. As m ...

  5. java 中lock,java中lock获取锁的四种方法

    在java接口中会存放着许多方法,方便线程使用时的直接调用.对于lock接口大家都不陌生,我们已经初步对概念进行了理解.那么在获取锁的方法上想必还不是很清楚.下面我们就lock获取锁的四种方法分别进行 ...

  6. 简单介绍C语言使用四种方法初始化结构体

    这篇文章说明了什么是结构体,介绍了结构体的概念和使用优点,在C语言中如何使用和初始化结构体方法,通过详细的代码展开进行说明,希望该篇文章对你有所帮助 什么是结构体 在实际问题中,一组数据往往有很多种不 ...

  7. svg鼠标响应事件的四种方法(其中两种可支持火狐)

    svg鼠标响应事件的四种方法 鼠标响应事件的四种方法,以click事件为例. Mouse Events - SMIL <?xml version="1.0" encoding ...

  8. oracle调整字段精度的四种方法

    oracle调整字段精度的四种方法: 01_执行用户_ddl/dml_表名_注释(建表/授权/同义词) 调整方式一:(精度只能调大不能调小) alter table table_name_a MODI ...

  9. (转).NET导出Excel的四种方法及评测

    .NET导出Excel的四种方法及评测 导出Excel是.NET的常见需求,开源社区.市场上,都提供了不少各式各样的Excel操作相关包.本文,我将使用NPOI.EPPlus.OpenXML.Aspo ...

最新文章

  1. python建站与java建站有何不同_详解模板建站和定制建站的不同之处
  2. windows2003中mssql连接的NT AUTHORITY\NETWORK SERVICE登录失败的问题
  3. 面试中Spring常见问题
  4. linux resin 自动启动不了,Resin 安装-配置-自启动-Linux
  5. VTK:PolyData之CellPointNeighbors
  6. 《实用软件架构:从系统环境到软件部署 》——2.4 架构视图与架构视点
  7. mysql 多条记录判断相加减进行计算
  8. Android系统性能调优工具介绍
  9. 济南python工资一般多少-2020年济南学python好点的学校
  10. JEP 尝鲜系列 3 - 使用虚线程进行同步网络 IO 的不阻塞原理
  11. android保存裁剪图片,Android选择图片并裁剪,无法保存经过裁剪的图片
  12. 【NoteBook】莫瑞亚(Ash Maurya):精益创业实战(一、二部分)
  13. 蓝牙inquiry流程之命令下发
  14. [渝粤教育] 中国地质大学 婚姻与家庭法 复习题 (2)
  15. 参加百度深度学习培训总结
  16. 1208:2的幂次方表示
  17. 20189320《网络攻防》第六周作业
  18. 书法练习轨迹–明月几时有-简洁版
  19. 浪潮优派jsp_j2ee课程设计心得.docx
  20. 光电倍增管国产型号及相关知识

热门文章

  1. AutoCAD模拟三体运动,AutoCAD二次开发,C#,net
  2. [驱动] HT1621M
  3. iOS内购IAP(In App Purchases)入门
  4. Vue如何给页面加水印(超简单)
  5. 80ms的快感,使用免费日本CDN加速网站
  6. iOS 打包,及企业账号的使用
  7. 战斗 表现和逻辑分离_冗长的优点和表现力的缺点
  8. 编译google Zxing,实现安卓一、二维码的扫描与生成
  9. 传奇3源代码研究总结【实用】
  10. webrtc 丢包反馈之 rtcp goog-remb