Jmeter做数据构造步骤详解

news2024/12/28 4:08:38

Jmeter做数据构造步骤详解

  • 引入
    • 什么是数据构造
    • 数据构造的方式
    • 数据构造的意义
  • 一、JDBC请求执行SQL语句构造数据
    • 01 环境准备:添加Jmeter插件
    • 02 使用步骤
  • 二、HTTP请求调用接口构造数据
    • 01 使用步骤
  • 完善脚本
    • 01 运用函数
    • 02 使用逻辑控制器和定时器
    • 03 添加响应断言自动判断构造是否成功
    • 04 参数化和关联的使用
  • 运行线程组生成数据
  • 总结一下

引入

什么是数据构造

数据构造简单来说就是造数据,需求需要造数据进行演示,开发需要造数据验证自己写的代码能够正常运行,测试需要造数据执行测试用例。团队中的每一个成员,需要频繁造数据来满足日常工作的需要。

数据构造的方式

在这里插入图片描述
几种数据构造方式的关系
1、界面新增和UI自动化其实是调用了后端接口
2、接口工具和接口自动化绕过前端进行造数,一定程度上提高了效率,本质是代码执行了相应的SQL语句
3、数据构造平台看代码逻辑走的是SQL、界面操作还是接口
4、补充一种构造方式,生产环境导入

数据构造的意义

除了需要性外,还有必要性
忘记从哪看到的报告数据,测试数据构造时间约占功能测试总体时间的35%

本次分享的目的是讲清楚如何用Jmeter做数据脚本,综合SQL语句和调用接口的方式构造数据,让测试数据构造前置化、共建化,为大家提供便利

注意:运用Jmeter做数据构造
这里我们把Jmeter不再当成性能测试工具,而是接口测试工具,综合运用Jmeter各种元件达到构造所需数据的目的

一、JDBC请求执行SQL语句构造数据

01 环境准备:添加Jmeter插件

Jmeter添加插件的两种方式:
1、全局式:jar包放入lib/ext文件目录下
查看mysql版本和下载对应版本的jdbc驱动文件
网上建议5.7版本用5.1版本和8.0版本
在这里插入图片描述
驱动下载地址:https://downloads.mysql.com/archives/c-j/,这里下载的是平台独立的版本
在这里插入图片描述
下载完成后,解压,将解压出来的jar文件放在lib/ext文件目录下,关闭Jmeter重新启动完成
在这里插入图片描述2、当前测试计划式:测试计划下添加jar包
在这里插入图片描述

02 使用步骤

1、添加测试计划
名称:xx需求名称或者xx项目名称
2、添加JDBC常量配置
目录 :测试计划——配置元件——JDBC Connection Configuration
名称:A数据库
Variable Name for created pool:连接池名字,JDBC Request中Variable Name Bound to Pool要和它保持一致
数据库url:jdbc数据库连接地址
示例:jdbc:mysql://xx.xx.xx.xx:3306/database_A?userSSL=false&useUnicode=true&characterEncoding=UTF8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
JDBC Driver:com.mysql.jdbc.Driver
Username:数据库连接用户名
Password:数据库连接用户密码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:这里建立了两个JDBC常量配置,因为测试的场景就是要涉及到两个库
3、添加线程组
目录:测试计划——线程(用户)——线程组
名称:xx场景前置条件:xx
线程数:1
启动时间:1
循环次数:1
在这里插入图片描述
4、添加JDBC请求取样器
目录 :线程组——取样器——JDBC Request
名称:xx场景前置条件:xx
Variable Name Bound to Pool:绑定连接池名字,要和JDBC Connection Configuration中Variable Name for created pool保持一致
SQL Query :语句类型,想要批量执行的话选择Callable Statement Query
Query:SQL语句
Parameter values :用于替换SQL语句中占位符?,用逗号分隔
Parameter types:上面占位符?代表的参数类型
Variable names:查询sql返回结果数据储存的变量名,用逗号分隔,返回几列就有几个变量名
图片
在这里插入图片描述5、添加查看结果树
目录:线程组——监听器——查看结果树
在这里插入图片描述

二、HTTP请求调用接口构造数据

01 使用步骤

(一到三、五)同上
(四)添加HTTP取样器
目录:线程组——取样器——HTTP请求
web服务器和HTTP请求:接口测试内容,这里不具体展开了
在这里插入图片描述

完善脚本

01 运用函数

位置:菜单工具栏——tools——函数助手对话框
拷贝并粘贴函数字符串:拷贝出来可以直接使用
在这里插入图片描述
例子:
${__Random(1,5,num) 1~5的随机数
${__timeShift(yyyy-MM-dd HH:mm:ss,)} 时间的格式化
${__time(,)} 时间戳函数
在这里插入图片描述

02 使用逻辑控制器和定时器

在这里插入图片描述有些场景需要用到逻辑控制器,比如这里我用到循环控制器不断的造数据
目录:线程组——逻辑控制器——循环控制器
在这里插入图片描述
模拟B系统每隔30秒调用一次本系统接口产生xx数据,后台每分钟统计一次,判断指标是否超限
目录:循环控制器——定时器——固定定时器

03 添加响应断言自动判断构造是否成功

在这里插入图片描述目录:HTTP请求/JDBC请求——断言——响应断言

04 参数化和关联的使用

参数化
常用的参数化元件:
(1)CSV数据文件设置
目录:测试计划——配置元件——数据文件设置
用法:前面文章讲了,这里不再重复
(2)用户定义的变量
目录:测试计划
用法:添加用户定义的变量,引用的时候和csv变量一样,用${param_name}
在这里插入图片描述

(3)用户参数
目录:线程组——前置处理器——用户参数
用法:添加用户参数,引用的时候和csv变量一样,用${param_name}
在这里插入图片描述

添加“测试计划——取样器——调试取样器”,可查看所有Jmeter变量
在这里插入图片描述

关联
常用的三个:JSON提取器、正则表达式提取器、BeanShell 后置处理程序

运行线程组生成数据

选择要生成测试数据的线程组,右键,运行
在这里插入图片描述

总结一下

1、修改测试计划名称为项目名称或者需求名称
2、添加线程组,线程组名称为场景名称
3、添加数据库连接配置:JDBC常量配置,有多少数据库就要有多少个JDBC常量配置
4、理清该场景所需数据需要调用哪些接口、执行哪些SQL,一步一步添加HTTP取样器或者JDBC请求构造数据
5、添加控制器和定时器让脚本运行逻辑更加符合实际使用情况
6、添加函数、参数化元件、前置处理器、后置处理器让脚本可以多次复用,更灵活
7、添加查看结果树和响应断言调试脚本,查看构造结果
8、运行线程组成功后,拿到构造数据进行测试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/164636.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

拒绝平庸,张扬出彩——维乐VELO Angel Revo

在赛场上就要做那个万众瞩目的明星,闪耀自己,让自己的实力让所有人看到!作为骑行运动员,骑行配件当然是最能够彰显自我个性的地方,维乐美学系列明星产品Angel Revo正如其名,全面革新,也给了所有…

【自学Python】Python拼接字符串

Python拼接字符串 Python拼接字符串教程 Python 拼接 字符串 有两种方法:一种是直接把两个字符串写在一起,即可实现拼接,另一种是使用 来实现字符串的拼接。 Python拼接字符串详解 写在一起 语法 str1str2参数 参数描述str1要拼接的字…

BERT 词向量理解及训练更新

1、BERT 词向量理解 在预训练阶段中,词向量是在不断更新的,而在fine-tuning阶段中,词向量是固定不变的。在fine-tuning阶段中,我们使用预训练好的模型参数来对新的数据进行训练。 BERT模型在预训练阶段中,会学习词表中…

win10开启自带的手机投屏功能方式

本篇文章主要讲解win10开启自带的手机投屏方式。 日期:2023年1月15日 作者:任聪聪 开启后效果 点击连接 打开连接或通过手机其他网络进行连接。 连接步骤: 步骤一、打开手机端的wifi网络设置,点击高级设置或其他网络设置&…

论文的正确打开方式—如何细读一篇论文分享

前段时间听了一个关于读论文的公开课,课上的老师讲的非常好,听完之后确实发现从以前看论文的没头没脑到现在的有了一些思绪的变化,所以特此整理了一下分享给大家,希望对大家有用。 在我们初次接触论文的时候,经常性的遇…

《后端技术面试 38 讲》学习笔记 Day 12

《后端技术面试 38 讲》学习笔记 Day 12 31 | 大数据架构:大数据技术架构的思想和原理是什么? 原文摘抄 大数据技术其实是分布式技术在数据处理领域的创新性应用,本质和我们此前讲到的分布式技术思路一脉相承:用更多的计算机组成…

smart-doc的使用

smart-doc的使用 目录 1. 什么是smart-doc 2. smart-doc的功能特性 3. smart-doc自定义注释tag 4. 通过引入依赖生成文档 5. 通过集成smart-doc的maven插件生成文档 6. 生成Postman json文件与导入Postman测试 1. 什么是smart-doc smart-doc是一款同时支持JAVA REST API和…

MySQL监控(二): Prometheus入门

1.官网 OpenTelemetry - CNCF Prometheus官方文档 安装包下载页 Prometheus安装官方文档指引 2.安装mysqld_exporter (1)下载 mysqld_exporter下载 (2)配置文件 my.cnf [client] hostxx.xx.xx.xx port31090 userroot passwordroot(3)启动 启动命令: nohup …

关于常见排序的一些细节的理解

最近复习了一下十种基本的排序算法,但是发现有很多的细节理解不到位,不是忘了而是根本没理解。就比如为啥有的排序是不稳定排序,而有的排序的时间复杂度高等等问题。一、不稳定排序的稳定性分析和复杂度常见排序算法中有4种排序是不稳定的。快…

详解最近公共祖先(LCA)

看本博客前建议先看一下ST算法解决BMQ问题详解一,LCA概念最近公共祖先(Lowest Common Ancestors, LCA)指有根树中距离两个节点最近的公共祖先。祖先指从当前节点到树根路径上的所有节点。u和v的公共祖先指一个节点既是u的祖先,又是v的祖先。u和v的最近公…

php网上书城|基于PHP实现网上书店商城藉项目

作者主页:编程指南针 作者简介:Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容:Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助 收藏点赞不迷路 关注作者有好处 文末获取源…

3分钟秒懂,最简单通俗易懂的spring bean 生命周期介绍与源码分析,附上demo完整源码

文章写作背景 最近突然身边很多小伙伴问我有没有spring bean生命周期的通俗移动的介绍 起初不太理解为什么,后来才想明白,哦对了,年底了,快开始跳槽季了,这不就是java八股文面试 的题目嘛,不得不说&#xf…

【5G RRC】Master Information Block (NR-MIB)

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…

手把手教你分析 Linux 启动流程

下载 Linux 内核网址: https://www.kernel.org/ 常用 Linux 内核源码为 4.14、4.19、4.9、5.10、5.15、6.1 等版本,其中 4.14 版本源码压缩包大概 90+M,解压后 700+M,合计 61350 个文件。如此众多的文件,用 source insight 或者 VSCode 查看都会比较卡,所以可以采用在线…

计算机网络第四章

1.网络层主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务,网络层传输单位是数据报三个功能:路由选择与分组转发(最佳路径)异构网络互联拥塞控制数据交换方式三种交换方式:电路交换…

一动不动是王八?动态内存有话说

文章目录前言动态内存函数介绍mallocfreecallocrealloc柔性数组柔性数组特点柔性数组的优点方便内存释放提高我们的访问速度总结前言 一动不动是王八,出自2014年的春晚,小时候经常喜欢说这句话,那在我们C语言中,我们知道&#xf…

年度征文|一个业余电脑玩家的30年(1992-2022)

《论语为政》:“五十而知天命”。岁月真的是一把刀,一晃已过不惑之年,还有几天就要进入知非之年。不论知非还是知天命,反正是花甲将至而从心所欲了。年少时因某种不合机缘,错与IT界擦肩而过,每每想起就扼腕…

gradel学习+IDEA配置

Gradle的下载 Gradle下载地址如下 https://gradle.org/releases/ 我自己的下载的7.4.2 可以选择下载完整的压缩包,将压缩包解压到自己指定的目录中即可。 Gradle安装 1、配置系统变量 GRADLE_HOME 2、配置环境变量 %GRADLE_HOME%是获取变量名称为GRADLE_HOME的…

项目看板开发经验分享(一)——光伏绿色能源看板

今天新开一个系列,专门介绍近期工作中开发的几个比较酷炫的看板的开发思路与经验分享。第一节我们就来介绍下这个光伏绿色能源看板,整体浏览如下: 那就直接进入正题吧—— 0、可复用组件panel 在讲解各个模块之前,我们先来完成一…

Mybatis 框架下 SQL 注入攻击的 3 种方式

SQL注入漏洞作为WEB安全的最常见的漏洞之一,在java中随着预编译与各种ORM框架的使用,注入问题也越来越少。 新手代码审计者往往对Java Web应用的多个框架组合而心生畏惧,不知如何下手,希望通过Mybatis框架使用不当导致的SQL注入问…