【性能测试】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]
相关推荐
se-tester5 天前
JMeter、Postman 和 SoapUI 在做接口测试上的优势和缺点
测试工具·jmeter·接口测试·postman·soapui
se-tester5 天前
性能测试(Performance Testing)、压力测试(Stress Testing)和 负载测试(Load Testing)三者的区别
性能测试
Felven5 天前
国产沐创N20 100G网卡性能测试
linux·性能测试·国产100g网卡·沐创
feathered-feathered5 天前
测试实战【用例设计】自己写的项目+功能测试(1)
java·服务器·后端·功能测试·jmeter·单元测试·压力测试
七夜zippoe8 天前
性能测试实战:Locust负载测试框架深度指南
分布式·python·性能测试·locust·性能基准
七夜zippoe10 天前
属性测试革命:Hypothesis框架深度实战指南
python·性能测试·数据驱动·hypothesis·状态机测试
质量保障小乔10 天前
JMeter+Jenkins+AI自动化测试
jmeter
xcLeigh11 天前
基于 IoT-benchmark 的时序数据库性能测试实战:从安装到结果分析
数据库·物联网·性能测试·时序数据库·iotdb
装不满的克莱因瓶12 天前
Java高并发异步请求实战,Jmeter暴力压测下的解决方案
jmeter·线程池·多线程·并发·resttemplate·qps·压测
在坚持一下我可没意见17 天前
ideaPool论坛系统测试报告
java·spring boot·功能测试·selenium·jmeter·mybatis·压力测试