当前位置: 首页 > news >正文

性能测试笔记

4、数据驱动性能测试

数据驱动的理念

什么是数据驱动

定义

  •  从数据文件中读取测试数据,驱动测试过程的一种测试方法
  •  数据驱动可以理解为更高级的参数化

特点

  •  测试数据与测试代码分离
  •  数据控制过程

优势

  •  减少测试代码量
  •  降低脚本开发和维护的成本
  •  便于用例的修改和维护(不需要修改代码)

数据驱动的使用场景

  • 复杂的业务流程
  •  根据业务场景分流(金牌,银牌,铜牌)
  •  符合条件的并发场景

JMeter中的数据驱动

  • 控制方式
  • 参数化
  • 逻辑控制器

JMeter数据驱动演示

JMeter中参数化的五种方式:

  • User Defined Variables:用户定义的变量
  • 函数助手:_CSVRead
  • CSV Data Set Config:CSV数据集配置
  • User Parameters:用户参数
  • 数据库

用户定义变量

  • 添加方法:选择“线程组”,添加-配置元件-用户定义变量,在这个控件中,定义所需要的参数
  • 使用方法:在对应的需要使用参数的位置,使用${host}替代
  • 应用场景:当测试环境变化时,只需要修改一处的IP就可以让脚本马上应用于另外一个环境的测试,而不需要逐个脚本进行修改

_CSVRead函数

CSV 数据文件设置

  • 配置元件/CSV Data Set Config
  • 适合于大数据量的并发,注意使用英文,进行分割

可以从指定的文件中一行一行地提取文本内容

  • 文件名:指保存参数化数据的文件目录,可以相对或者绝对路径
  • 文件编码:UTF-8,文件的编码格式
  • 变量名称:user,pwd 参数名称(如:有几列参数,在这里面就写几个参数名称,每个名称中间用分隔符分割,分隔符在下面的“分隔符”中定义,为了和文件中的“,”对应,这里也用“,”分割每个参数名,这里的 user,pwd,可以被可以利用变量名来引用:${user},${pwd}
  •     遇到文件结束符再次循环(默认是True):是否循环读入,因为CSV Data Set Config一次读入一行,分割后存入若干变量中交给一个线程,如果线程数超过文本的记录行数,那么可以选择从头再次读入

用户参数

  • JMeter主要用来一些全局的用户变量的存储
  • 比如一些hostname,server,port,database,username等参数都可以存储在User Defined Variables里,取变量的时候直接使用${变量名}的格式即可

“前置处理器/用户参数”

JMeter之数据库

需求

  • 测试student表

环境准备
https://dev.mysql.com/downloads/connector/j/

  • mysql驱动 mysql-connector-java-5.1.6-bin.jar
  • jmeter->jdbc 配置
  • jmeter->jdbc请求

步骤:

  • 在测试计划中加入jar包
  • jdbc配置 jdbc:mysql://localhost:3306/test
  • com.mysql.jdbc.Driver
  • jdbc请求
  • 断言、结果树

实现jdbc请求与http请求的关联

获取指定的数据:
cv = vars.getObject("result").get(0).get("sname");
vars.put("rr",cv);

相关文章:

  • asp.net进销存软件WEB进销存ERP软件库存玻璃行业
  • MySQL 5.7升级8.0报异常:处理新增关键字
  • [ACTF2020 新生赛]BackupFile-3.23BUUCTF练习day5(1)
  • 【北京大学】DeepSeek内部研讨系列:DeepSeek原理和落地应用
  • Linux shell脚本3-if语句、case语句、for语句、while语句、until语句、break语句、continue语句,格式说明及程序验证
  • 使用Ollama(自定义安装位置)与RagFlow构建本地知识库
  • 跟着StatQuest学知识07-张量与PyTorch
  • 【leetcode hot 100 34】在排序数组中查找元素的第一个和最后一个位置
  • LLM-01-第一章-预训练/神经网络的激活函数(一)概述
  • 信息安全和病毒防护——非对称加密和对称加密
  • 在 SaaS 应用上构建 BI 能力的实战之路
  • Ciallo~ (∠・ω< )⌒★
  • 【redis】主从复制:单点问题、配置详解、特点详解
  • 阻塞队列:原理、应用及实现
  • 第十六届蓝桥杯康复训练--8
  • 学习记录-vue2,3-vue实现tab栏
  • 齿轮啮合频率计算及其频谱图
  • [C语言基础] 第2章 算法的概念
  • kube-score K8S Yaml静态代码分析工具详解
  • 【申论】规范表达-科技创新类
  • 阿曼外交部:美伊谈判因故推迟
  • 5月人文社科中文原创好书榜|巫蛊:中国文化的历史暗流
  • 杭州挂牌临平区两宗住宅用地,起始总价约11.02亿元
  • 国台办:相关优化离境退税政策适用于来大陆的台湾同胞
  • 黄宾虹诞辰160周年|一次宾翁精品的大集结
  • 违规行为屡禁不止、责任边界模糊不清,法治日报:洞穴探险,谁为安全事故买单?