【性能测试】5_JMeter _JMeter参数化

文章目录

  • 一、JMeter参数化常用方式
  • 二、用户定义的变量
    • [2.1 场景](#2.1 场景)
    • [2.2 配置方式](#2.2 配置方式)
      • [2.2.1 配置方法1:配置元件中配置](#2.2.1 配置方法1:配置元件中配置)
      • [2.2.2 配置方法2:在测试计划中配置(全局生效)](#2.2.2 配置方法2:在测试计划中配置(全局生效))
  • 三、用户参数
    • [3.1 场景](#3.1 场景)
    • [3.2 操作方法](#3.2 操作方法)
  • [四、CSV 数据文件设置](#四、CSV 数据文件设置)
    • [4.1 场景](#4.1 场景)
    • [4.2 操作方法](#4.2 操作方法)
    • [4.3 CSV数据文件-扩展](#4.3 CSV数据文件-扩展)
    • [4.4 问题](#4.4 问题)
  • 五、函数(counter)
    • [5.1 场景](#5.1 场景)
    • [5.2 需求1-配置](#5.2 需求1-配置)
    • [5.3 需求2-配置](#5.3 需求2-配置)

一、JMeter参数化常用方式

  • 用户定义的变量
  • 用户参数
  • CSV Data Set Config
  • 函数

二、用户定义的变量

2.1 场景

  • 请求: https://www.baidu.com:443
  • 要求: 使用用户定义的变量,配置被测系统的协议、 域名和端口
  • 场景:多个请求,使用相同的公共数据时,使用 用户定义的变量。

2.2 配置方式

json 复制代码
用户定义的变量:{参数名:值}

在HTTP取样器中应用:${参数名}

2.2.1 配置方法1:配置元件中配置

  • 添加路径:测试计划------线程组------配置元件------用户定义的变量。
  • 线程组下配置的用户定义的变量,在线程组下生效,与测试计划中配置的变量冲突时,以线程组下的为准。

2.2.2 配置方法2:在测试计划中配置(全局生效)

三、用户参数

使用用户定义的变量时,不同的用户在访问时,读取的参数值完全相同,如果希望每个用户在访问时的变量不同,可以使用用户参数。

添加位置:测试计划------线程组------前置处理器------用户参数

3.1 场景

  • 需求:请求百度首页,3个用户访问,每个用户携带不同的姓名和年龄。
  • 请求: https://www.baidu.com
  • 要求:第一次请求附带参数:name="张三"&age=28;第二次请求附带参数:name="李四"&age=30;第三次请求附带参数:name="王五"&age=100。
  • 场景:并发访问,但每个请求使用不同的参数。如:登录
name 张三 李四 王五
age 28 30 100

3.2 操作方法

1、在测试计划中添加 线程组、HTTP请求、查看结果树。

2、线程组设置,线程数=3 。

3、用户参数设置,添加用户和针对每个用户添加变量。

4、HTTP请求设置,添加值。

5、查看结果树。

四、CSV 数据文件设置

  • 使用用户参数时,每个用户可以取不同的数据,但是同一用户的多次循环时读取的数据是不变的。如果想让同一用户多次循环读取时的数据也不同,需要使用CSV数据文件设置的方式。
  • 添加方式: 测试计划 --> 线程组--> 配置元件 --> CSV 数据文件设置

4.1 场景

  • 需求:访问百度首页,1个用户循环访问3次,每次携带不同的用户名、密码、验证码。

  • 请求: https://www.baidu.com

  • 要求: 循环3次,每次请求时附带参数username,password,code的值不相同 。

  • 场景:单用户测试,使用大量不同数据发送请求场景。如:注册。

csv 复制代码
username,password,code	---第一行为字段名
user01,123456,1111		---第二行开始,以后的每行,都是与字段对应的字段值
user02,123456,2222
user03,123456,3333

jmeter为了方便使用,可以使用.csv 或 .txt文件组织数据

4.2 操作方法

1、在测试计划中添加 线程组、HTTP请求、查看结果树。

2、定义定义CSV数据文件

3、线程组设置,循环次数= 3 。

4、CSV 数据文件设置

5、HTTP请求设置,引用参数值时,使用时CSV数据文件中定义的变量名。

6、查看结果树

4.3 CSV数据文件-扩展

场景:当不清楚 数据文件 中有多少条数据时:

1、修改"线程组",循环次数=永远。

2、修改"CSV 数据文件设置":

  • 遇到遇到文件结束符再次循环?设置=False
  • 遇到文件结束符停止线程? 设置=True

4.4 问题

复制代码
Response code:Non HTTP response code: java.net.URISyntaxException
Response message:Non HTTP response message:llegal character in query at index 89:.

解决方法:需要将对传入参数进行编码。

五、函数(counter)

  • 计数函数, 一般做执行次数统计使用;
  • 通过counter函数,生成动态变化的数值

在HTTP取样器中,应用counter函数生成的函数字符串,就可以读取counter函数生成的数值。

  • 如果counter参数设置为:TRUE,则每个用户分别从1开始计算,每循环一次加1
  • 如果counter参数设置为:FALSE,则所有用户公用一个计数器,每发送一个请求时,取值加1

5.1 场景

需求1:给 京东 发送 50 次请求,每个请求自带序列号,自己是第几次请求。

需求2:给 京东 发送 50 次请求,每个请求携带序号不同的 用户名。

场景:在发送请求时,需要提供唯一数据作为请求参数时使用。例如:快速注册1000个用户。

扩展:在计算机中,保证数据唯一性的方法:时间戳、计数器。

5.2 需求1-配置

1、在"函数助手对话框",选择函数counter

2、做函数相应的设置(如:只需一个计数器,FALSE)

3、点击"生成"按钮,生成函数对应的代码,同时自动复制。

4、将复制的代码,粘贴到使用的位置。

5.3 需求2-配置

html 复制代码
GET https://www.jd.com/?name=username008
GET data:
[no cookies]
相关推荐
_OP_CHEN5 小时前
【测试理论和实践】(十一)吃透性能测试核心概念!从入门到精通,一文扫清所有盲区
测试开发·压力测试·性能测试·负载测试·并发测试·基准测试·测试开发工程师
石头wang1 天前
jmeter java.lang.OutOfMemoryError: Java heap space 修改内存大小,指定自己的JDK
java·开发语言·jmeter
少云清1 天前
【性能测试】2_JMeter _JMeter文件目录
jmeter·性能测试
Wpa.wk1 天前
性能测试 - JMeter练习-JMeter录制Web端压测脚本操作步骤
java·前端·经验分享·jmeter·自动化
一颗没有尽头的心1 天前
jmeter使用
jmeter
Wpa.wk1 天前
性能测试-性能监控相关命令-基础篇
android·linux·运维·经验分享·测试工具·性能测试·性能监控
少云清2 天前
【性能测试】1_JMeter_JMeter环境搭建和配置
jmeter·性能测试
@汤圆酱2 天前
【无标题】
python·jmeter