目录

  • 一、JMeter参数化简介
  • 1.JMeter参数化的概念
  • 2.JMeter参数化方式之使用场景对比
  • 二、JMeter参数化的4种主要方式-操作演练
  • 1.User Parameters(用户参数)
  • 1)添加User Parameters功能模块
  • 2)设置参数项、参数值
  • 3)配置HTTP取样器界面的请求参数
  • 4)配置Thread Group
  • 5)添加View Results Tree监控执行过程
  • 2.CSV Data Set Config(CSV数据配置)
  • 1)添加CSV Data Set Config模块
  • 2)预先准备好要参数化的所有参数值
  • 3)配置CSV Data来源
  • 4)设置HTTP取样器的请求参数
  • 5)设置Thread Group的线程执行的总次数
  • 6)执行Run,查看效果
  • 3.User Defined Variables(用户自定义变量)
  • 1)添加User Defined Variables模块
  • 2)配置User Defined Variables界面中的参数及其值
  • 3)配置HTTP取样器中的请求参数
  • 4)执行Run,观察效果
  • 4.Function Helper中的函数
  • 1)选择参数化所需的函数,配置函数
  • 2)配置HTTP取样器的请求参数
  • 3)配置Thread Group
  • 4)执行Run,查看效果


一、JMeter参数化简介

1.JMeter参数化的概念

  • 当使用JMeter进行测试时,测试数据的准备是一项重要的工作。若要求每次迭代的数据不一样时,则需进行参数化,然后从参数化的文件中来读取测试数据。

参数化:是自动化测试脚本的一种常用技巧,可将脚本中的某些输入使用参数来代替,如登录时利用GET/POST请求方式传递参数的场景,在脚本运行时指定参数的取值范围和规则。
脚本在运行时,根据需要选取不同的参数值作为输入,该方式称为数据驱动测试(Data Driven Test),而参数的取值范围被称为数据池(Data Pool)。

2.JMeter参数化方式之使用场景对比

参数化方式 使用场景

  • 1 User Parameters 适用于参数取值范围很小的时候使用
  • 2 CSV Data Set Config 适用于参数取值范围较大的时候使用,该方法具有更大的灵活性
  • 3 User Defined Variables 一般用于Test Plan中不需要随请求迭代的参数设置,如:Host、Port Number
  • 4 Function Helper中的函数 可作为其他参数化方式的补充项,如:随机数生成的函数${__Random(,)}

二、JMeter参数化的4种主要方式-操作演练

1.User Parameters(用户参数)

  • 操作路径:HTTP取样器–>Add–>Pre Processors–>User Parameters

1)添加User Parameters功能模块

jmeter中java请求参数_jMeter

2)设置参数项、参数值

jmeter中java请求参数_参数动态_02

3)配置HTTP取样器界面的请求参数

jmeter中java请求参数_参数动态设置_03

4)配置Thread Group

  • 设置线程数=2,即2个虚拟用户数,对应User Parameters中设置的2个用户

jmeter中java请求参数_参数动态_04

5)添加View Results Tree监控执行过程

执行Run完成之后的效果:

jmeter中java请求参数_jmeter中java请求参数_05

2.CSV Data Set Config(CSV数据配置)

  • 操作路径:HTTP取样器–>Add–>Config Element–>CSV Data Set Config

1)添加CSV Data Set Config模块

jmeter中java请求参数_参数动态_06

2)预先准备好要参数化的所有参数值

jmeter中java请求参数_参数化_07

3)配置CSV Data来源

jmeter中java请求参数_参数化_08

Configure the CSV Data Source配置项&功能:

  • 配置项 取值or选择项
  • Filename 参数化文件的读取位置,即保存参数化数据的文件目录。可为绝对路径,也可为相对路径。在分布式测试中,还是利用相对路径比较方便,因为有的机器可能安装路径不一样,同时可避免脚本迁移时需要修改路径
  • File Encoding 编码格式,选择utf-8
  • Variable Names 变量名称。这里定义的变量名称,后面就可以直接用来引用了。(多个变量名称以逗号隔开,例如username,passwd。参数化文件中同样有对应的两列数据。)
  • Ignore first line 忽略第一行数据(类似LR中第一行数据是变量名称,如果你的配置文件中为了记忆第一行也是变量名,可以选择是忽略该行数据)
  • Delimiter Variable Names中的参数分隔符,默认为英文逗号
  • Allow quoted data? 是否允许引用数据,默认false。选项为“true”时对全角字符的处理可能会出现乱码
  • Recycle on EOF? 是否循环读取参数文件内容;因为CSV Data Set Config一次读入一行,分割后存入若干变量中交给一个线程,如果线程数超过文本的记录行数,那么可以选择从头再次读入
  • Stop thread on EOF? 当Recycle on EOF为False时(读取文件到结尾),停止进程,当Recycle on EOF为True时,此项无意义
  • Sharing mode 共享模式,即参数文件的作用域:All Threads;Current Thread Group;Current Thread

4)设置HTTP取样器的请求参数

jmeter中java请求参数_jmeter中java请求参数_09

5)设置Thread Group的线程执行的总次数

jmeter中java请求参数_参数化_10

6)执行Run,查看效果

jmeter中java请求参数_参数动态设置_11

3.User Defined Variables(用户自定义变量)

  • 操作路径:Thread Group–>Add–>Config Element–>User Defined Variables

1)添加User Defined Variables模块

jmeter中java请求参数_参数化_12

2)配置User Defined Variables界面中的参数及其值

jmeter中java请求参数_jMeter_13

3)配置HTTP取样器中的请求参数

  • 此时可以联合其他参数化方式(如:User Parameters)一起检测效果

4)执行Run,观察效果

jmeter中java请求参数_jMeter_14

4.Function Helper中的函数

  • 操作路径:Options–>Function Helper Dialog

1)选择参数化所需的函数,配置函数

jmeter中java请求参数_jMeter_15

2)配置HTTP取样器的请求参数

jmeter中java请求参数_jMeter_16

3)配置Thread Group

jmeter中java请求参数_jMeter_17

4)执行Run,查看效果

jmeter中java请求参数_参数化_18