Jmeter参数化

本文介绍了Jmeter中两种参数化方法。一是使用CSV Data Set Config,包括添加配置、设置参数(如文件名、编码、变量名、分隔符等)及使用变量,还说明了Recycle on EOF与Stop thread on EOF的关联;二是使用Jmeter函数助手,选择_CSVRead函数并设置参数,还提及Jmeter模板可作学习参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、使用CSV Data Set Config:

  1、添加CSV Data Set Config:

  

 

  2、配置参数:

  

  

  •   Filename:文件名,指保存参数化数据的文件目录,可以相对或者绝对路径。

  

  •   File encoding:文件的编码格式,可以使用电脑自带的笔记本另存为时选择编码方式即可
  •   Variable Names(comma-delimited):参数名称(如:有几列参数,在这里面就写几个参数名称,每个名称中间用分隔符分割,分隔符在下面的“Delimitet”中定义,为了和文件中的“,”对应,这里也用“,”分割每个参数名,引用方法:${username},${password}
  •   Delimitet:定义分隔符,这里定义某个分隔符,则在“Variable Names”用这里定义的分隔符分割参数。
  •   Allow quote data:选项选为“true”的时候对全角字符的处理出现乱码 
  •   Recycle on EOF:是否循环读入,因为CSV Data Set Config一次读入一行,分割后存入若干变量中交给一个线程,如果线程数超过文本的记录行数,那么可以选择从头再次读入

  注意:

 

Filename --- 参数项文件
File Encoding --- 文件的编码,设置为UTF-8
Vaiable Names --- 文件中各列所表示的参数项;各参数项之间利用逗号分隔;参数项的名称应该与HTTP Request中的参数项一致。
Delimiter --- 如文件中使用的是逗号分隔,则填写逗号;如使用的是TAB,则填写\t;(如果此文本文件为CSV格式的,默认用英文逗号分隔)

 

Recycle on EOF? --- True=当读取文件到结尾时,再重头读取文件
                    False=当读取文件到结尾时,停止读取文件
Stop thread on EOF? --- 当Recycle on EOF为False时,当读取文件到结尾时,停止进程,当Recycle on EOF为True时,此项无意义

 

 

 

备注说明:这里我用通俗的语言大概讲一下Recycle on EOF与Stop thread on EOF结果的关联

 

Recycle on EOF :到了文件尾处,是否循环读取参数,选项:true和false

 

Stop thread on EOF:到了文件尾处,是否停止线程,选项:true和false

 

当Recycle on EOF 选择true时,Stop thread on EOF选择true和false无任何意义,通俗的讲,在前面控制了不停的循环读取,后面再来让stop或run没有任何意义

 

当Recycle on EOF 选择flase时,Stop thread on EOF选择true,线程4个,参数3个,那么只会请求3次

 

当Recycle on EOF 选择flase时,Stop thread on EOF选择flase,线程4个,参数3个,那么会请求4次,但第4次没有参数可取,不让循环,所以第4次请求错误

 

  3、使用变量:

  

 

二、使用Jmeter函数助手:

  1、点击 选项-->函数助手 调出函数助手对话框

  2、选择 _CSVRead 函数(下图第一个框)

  3、函数参数:

    1)第一个参数:填写文件路径。

    2)第二个参数:文件列号是从0开始的,第一列0、第二列1、第三列2、依次类推,然后点击【生成】按钮,则会自动生成我们需要的参数化函数。

    3) 复制生成的参数化函数, copy过程需要使用的地方即可。

  

 

 

 

另外,在Jmeter的bin\templates目录下面有些模板可供学习参考,这些都是非常不错的资料:

 

### JMeter 参数化测试实现方法 #### 参数化测试简介 参数化测试是一种测试方法,它允许使用不同的数据集多次运相同的测试逻辑。JMeter 提供了多种实现参数化的方式,可以根据具体需求选择合适的实现方式。 #### 参数化实现方式 1. **CSV Data Set Config** - CSV Data Set ConfigJMeter 中最常用的参数化方式,适用于参数取值范围较大的情况。它能够从 CSV 文件中读取数据并生成变量,供 JMeter 脚本引用。 - 使用 CSV Data Set Config 时,需要指定文件名、变量名以及是否循环读取等参数。通过这种方式,可以轻松实现数据驱动测试,避免每次修改用例时都需要重新编辑 JMeter 脚本 [^2]。 2. **User Parameters** - User Parameters 适用于参数取值范围较小的情况。可以在测试计划中直接定义参数及其取值,这些参数可以在整个测试计划中被引用 [^3]。 3. **User Defined Variables** - User Defined Variables 通常用于测试计划中不需要随请求迭代的参数设置。可以在测试计划的任何地方定义这些变量,并在整个测试计划中使用它们 [^3]。 4. **FunctionHelper 中的函数** - FunctionHelper 提供了一些内置函数,可以作为其他参数化方式的补充。例如,可以使用 `${__Random(,)}` 函数生成随机数,为测试增加更多的不确定性 [^3]。 #### 数据驱动测试的实现 为了实现数据驱动测试,可以将测试用例的数据存储在外部文件(如 CSV 文件)中,然后通过 JMeter 的配置元件读取这些数据并执测试。这种方法的好处在于,当需要增加或修改用例时,只需修改外部文件,而无需重新编辑 JMeter 脚本,大大简化了用例的维护工作 [^4]。 ##### 示例:使用 CSV 文件进数据驱动测试 1. **准备 CSV 文件** - 创建一个 CSV 文件,其中包含测试所需的参数数据。例如,假设有一个登录接口,需要用户名和密码作为参数,CSV 文件可以如下所示: ``` username,password user1,pass1 user2,pass2 user3,pass3 ``` 2. **配置 CSV Data Set Config** - 在 JMeter添加一个 CSV Data Set Config 元件,并配置以下参数: - **Filename**: 指定 CSV 文件的路径。 - **Variable Names**: 指定变量名,如 `username,password`。 - **Delimiter**: 指定分隔符,默认为逗号。 - **Recycle on EOF?**: 是否在文件末尾循环读取。 - **Stop thread on EOF?**: 是否在文件末尾停止线程。 3. **使用参数** - 在 HTTP 请求中使用 `${username}` 和 `${password}` 变量来引用 CSV 文件中的数据。 4. **执测试** - 运测试时,JMeter 会自动从 CSV 文件中读取数据,并为每数据执一次请求。 #### 示例代码 ```python # 假设有一个简单的 Python 脚本用于生成 CSV 文件 import csv data = [ ["username", "password"], ["user1", "pass1"], ["user2", "pass2"], ["user3", "pass3"] ] with open('test_data.csv', 'w', newline='') as csvfile: writer = csv.writer(csvfile) writer.writerows(data) ``` #### 总结 JMeter 提供了多种参数化测试的实现方式,可以根据具体的测试需求选择合适的方法。对于大规模的参数化测试,推荐使用 CSV Data Set Config,因为它具有更大的灵活性和可维护性。而对于小规模的参数化测试,User Parameters 或 User Defined Variables 可能更加简单直接。FunctionHelper 中的函数则可以作为补充,提供额外的功能,如生成随机数等 [^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值