[转帖]Jmeter 参数化

jmeter,参数 · 浏览次数 : 0

小编点评

**JMeter参数化概念及使用场景对比** **User Parameters (用户参数)** *适用于参数取值范围很小的时候使用。 * 在脚本运行时指定参数的取值范围和规则。 **CSV Data Set Config (CSV数据控件)** *适用于参数取值范围较大的时候使用。 * 配置CSV数据文件,包括文件存在路径、文件编码、变量名称等。 **User Defined Variables (用户自定义变量)** * 一般用于Test Plan中不需要随请求迭代的参数设置。 * 如:Host、Port Number **各种方式演示** 1. **User Parameters (用户参数)** * 在在线程组下面添加用户参数添加->前置处理器->用户参数,并设置参数项和参数值。 * 在http请求参数设置中使用用户参数。 * 设置线程数设置线程数=2,对应User Parameters中设置的2个用户注意这里只能设置线程数2,如果是循环次数设置为2,那么指的是拿用户1循环。 2. **CSV Data Set Config (CSV数据控件)** * 在http请求上添加CSV Data Set Config添加->配置元件->CVS数据文件设置,设置文件存在路径、文件编码、变量名称等。 * 在分布式测试中,还是利用相对路径比较方便,因为有的机器可能安装路径不一样,同时可避免脚本迁移时需要修改路径File Encoding(文件编码)编码格式,选择utf-8Variable Names(变量名称)。 3. **Function Helper (函数助手)** * 打开函数助手对话框,选择需要的函数并配置。 * 在http请求参数设置中复制函数助手生成的函数字符串。 * 执行结果每次执行传的参数都不一样。 4. **User Defined Variables (用户自定义变量)** * 添加用户自定义变量添加->配置元件->用户定义的变量。 * 在http请求参数设置中设置用户自定义变量。 * 执行结果每次执行传的参数都不一样。

正文

一、Jmeter参数化概念

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

     参数化是自动化测试脚本的一种常用技巧。简单来说,参数化的一般用法就是将脚本中的某些输入使用参数来代替,在脚本运行时指定参数的取值范围和规则;

     这样,脚本在运行时就可以根据需要选取不同的参数值作为输入。这种方式通常被称为数据驱动测试(Data Driven Test),参数的取值范围被称为数据池(Data Pool)

 

二、JMeter参数化方式之使用场景对比

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

 

 

 

 

 

 

 

三、各种方式演示

1、User Parameters(用户参数)

(1)在线程组下面添加用户参数

添加->前置处理器->用户参数,并且设置参数项和参数值

 

 

 (2)添加http请求

请求参数的值使用用户参数

 

 

 (3)设置线程数

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

注意这里只能设置线程数2,如果是循环次数设置为2,那么指的是拿用户1循环。

 

 

 (4)执行结果

 

 

 

 

 2、CSV Data Set Config(CSV数据控件)

(1)新建数据文件

(2)在http请求上添加CSV Data Set Config

添加->配置元件->CVS数据文件设置,设置文件存在路径、文件编码、变量名称

 

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

(3)设置http请求的参数

 

 (4)设置线程

设置线程数3或者设置循环次数3都可以

 

 (5)执行结果

 

 

 

 

 

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

(1)添加用户自定义变量

添加->配置元件->用户定义的变量

 

 (2)http请求的参数设置

 

 (3)执行结果

 

 4、Function Helper(函数助手)

(1)打开函数助手对话框,选择需要的函数并配置

 

 (2)http请求参数设置

复制函数助手生成的函数字符串

 

 (3)执行结果

每次执行传的参数都不一样

与[转帖]Jmeter 参数化相似的内容:

[转帖]Jmeter 参数化

一、Jmeter参数化概念 当使用JMeter进行测试时,测试数据的准备是一项重要的工作。若要求每次迭代的数据不一样时,则需进行参数化,然后从参数化的文件中来读取测试数据。 参数化是自动化测试脚本的一种常用技巧。简单来说,参数化的一般用法就是将脚本中的某些输入使用参数来代替,在脚本运行时指定参数的取

[转帖]Jmeter接口测试:参数化

Jmeter接口请求中的参数经常需要通过参数进行赋值 引用形式:${} 变量时:${变量名} 函数时,${_函数名(参数1,参数2,参数3)} 值中"${n}"中,n为变量名;“${__Random(0,999,n)}”中Random为函数名。 接口测试过程中常见的参数化大概有下面几种: 随机数 h

[转帖]jmeter之使用csv文件传递参数-05篇

csv文件格式,第一列为手机号,第二列为密码 1.右键添加一个配置元件 csv数据文件设置 2.设置csv数据提取路径 3.引用数据 4.设置线程循环运行两次,然后发送请求 看到结果就执行了两次,取得用户名和密码发生了变化

[转帖]Jmeter中如何读取MYSQL数据作为请求参数

在项目测试过程中,我经常需要将数据库中的数据作为参数传递到请求中。Jmeter中MYSQL数据库连接操作过程如下: 1、下载/n导入mysql的jdbc驱动包 下载mysql驱动包地址: http://central.maven.org/maven2/mysql/mysql-connector-ja

[转帖]Jmeter跨线程组传参

https://www.cnblogs.com/a00ium/p/10462576.html 我们知道,同一线程组中可以通过“正则表达式提取器”获取其中一个取样器的响应结果中的参数,直接传给线程组中的其他取样器。但其他线程组中的取样器也想使用同样的参数时,无法直接获取。举个例子: 提取“登录”取样器

[转帖]Jmeter脚本录:抓取https请求

Jmeter抓取http请求 https://blog.csdn.net/qq19970496/article/details/86595109 代理设置步骤请参照该篇文章。本文件只做补充HTTPS中证书的相关配置。 HTTPS(SSL)原理 https://blog.csdn.net/qq1997

[转帖]Jmeter常用配置元件(二):“HTTP Cookie管理器”登录状态保持

在API接口测试过程中,我们需要传递cookie值作为连接状态的保持,例如登录后状态信息。通过使用Jmeter提供的“HTTP Cookie管理器”来实现。 一般情况下不需要输入什么值,就这样即可,如何想手动传递cookie值。可以请参考“渗透测试:通过Jmeter实现CSRF(Cross-site

[转帖]jmeter及serveragent的安装、常见报错及解决方法

一.说明: 1.jmeter必须在java环境下运行 2.jmeter抓包可以用自带服务器录制抓取,也可以手动网页抓取(含fiddler),也可以用badboy(更推荐手动抓取和badboy) 3.后面单独开一篇来说明各个功能的用处。 二.安装: 1.jmeter.properties配置:在jme

[转帖]JMETER性能监控之serverAgent

对linux服务器的服务进行压测时,服务器的运行情况可以通过添加插件serverAgent来观察,可以实时监控性能指标。 1 (一)环境准备 1、下载zip包ServerAgent-2.2.3.zip 2、在服务器中,创建一个文件夹serveragent,名字随便起 mkdir serveragen

[转帖]jmeter分布式执行原理

jmeter分布式执行原理https://www.jianshu.com/p/bcfc48054b1e Jmeter分布式执行原理: 1、Jmeter分布式测试时,选择其中一台作为控制机(Controller),其它机器做为代理机(Agent)。 2、执行时,Controller会把脚本发送到每台A