jemter连接数据json断言
文章目录
- 一、jmeter连接数据库
- 1、加载JDBC驱动
- 2、连接数据
- 3、SQL Query的Query Type使用方法:
- 4、Variable Name使用方法:
- 5、Result variable name使用方法:
- 二、Json响应断言
- 1、添加 》 断言 》 JSON断言
- 2、JSON断言界面参数说明:
一、jmeter连接数据库
以 apache-jmeter-5.0 版本为例。
1、加载JDBC驱动
以Mysql数据库为例,数据库测试需要加载JDBC驱动
(1)先下载mysql-connector-java-5.1.26.jar
(2)打开JMeter,直接拷贝驱动jar包放到到jmeter安装目录的lib目录下或在jmeter中的测试计划中导入,导入JDBC驱动


2、连接数据
(1)在线程组右键—添加—配置元件–“JDBC Connection Configuration”,添加配置JDBC Connection Configuration

(2)配置JDBC Connection Configuration,配置JDBC Connection Configuration,具体配置项如下

1、名称:默认为空,填写你所想设置的名称,可为空
2、注释:默认为空,可为空
3、Variable Name:变量名称,需要唯一标识,与JDBC取样器中的相对应,简单理解就是jdbc request的时候确定去哪个绑定的配置。
4、Max Number of Connections 数据库最大连接数,默认10,建议设置为500
5、Pool Timeout 数据库连接超时,单位ms,默认10000 默认即可
6、Idle Clearup Interval 空闲连接清理时间间隔 默认即可
7、Auto Commit 自动提交,有三个选项:true、false、编辑(jmeter提供的函数设置)。默认为true 默认即可
8、Transaction Isolation 有TRANSACTION_NODE 事务节点 、TRANSACTION_READ_UNCOMMITTED事务未提交读、TRANSACTION_READ_COMMITTED事务已提交读 、TRANSACTION_SERIALIZABLE事务序列化 、DEFAULT默认、TRANSACTION_REPEATABLE_READ事务重复读、编辑等选项,默认为default 默认即可
9、Keep-Alive 是否保持连接,默认为true 默认即可
10、Max Connection age (ms) 最大连接时长,超过时长的会被拒绝,默认为5000
11、 Validation Query 验证sql语法,默认为select1
12、Database URL 数据库url,可以带上字符集,比如jdbc:mysql://10.199.132.12:3306/xqy-portal?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true
13、JDBC Driver class JDBC的类,默认为空,必填,mysql一般输入com.mysql.jdbc.Driver
14、Username 数据库的用户名
15、Password 数据库的密码
(3)添加JDBC Request,线程组右键—添加—Sampler—JDBC Request,添加JDBC Request

(4)JDBC Request配置

具体JDBC Request配置项说明如下:
1、Variable Name 和上面JDBC Connection Configuration中的Variable Name保持一致
2、Query type 主要包括:Select 、Update、Callable Statement、Commit、Rollback选项,详见下文使用方法
3、Parameter values 默认为空,填写sql中要添加的数据,也可以参数化
4、Parameter types : 默认为空,赋值参数的数据类型,需与Parameter values对应起来,并以逗号隔开
5、Variable Name : 默认为空,自定义值,供其他接口调用返回值,详见下文使用方法
6、Result variable name : 把sql执行结果保存到一个数组中
7、Query timeout(s) : 定义查询超时时间,单位s,默认为空
3、SQL Query的Query Type使用方法:
1、多个查询语句(不使用参数的情况下)可以放在一起顺序执行,需要设置Query Type为:Callable Statement,然后顺序输入select语句,不用加go或者分号。如果Query Type设置为:Select Statement的话,只执行第一个SQL语句;
2、如果SQL语句中需要使用参数变量,那么Query Type 需要设置为:Select Statement ,需要先添加Random Variable,然后在Parameter Values中输入{变量名称},中间用逗号分隔。只能执行第一个SQL语句;
3、对于Insert、Update、Delete语句,需要设置Query Type为:Update Statament.数据修改语句中可以使用参数,而且可以顺序执行多个修改语句;
4、Commit是将SQL Query执行后马上提交,使用这个选项时JDBC Connection Configuration中的Auto Commit选项为False。
4、Variable Name使用方法:
jmeter官网给的解释是:如果给这个参数设置了值,它会保存sql语句返回的数据和返回数据的总行数。假如,sql语句返回2行,3列,且variables names设置为A,B,C,那么如下变量会被设置为:
A_#=2 (总行数)
A_1=第1列, 第1行
A_2=第1列, 第2行
C_#=2 (总行数)
C_1=第3列, 第1行
C_2=第3列, 第2行
如果返回结果为0,那么A_#和C_#会被设置为0,其它变量不会设置值。
如果第一次返回6行数据,第二次只返回3行数据,那么第一次那多的3行数据变量会被清除。
可以使用{A_1}…来获取相应的值
5、Result variable name使用方法:
如果给这个参数设置值,它会创建一个对象变量,保存所有返回的结果,获取具体值的方法:
columnValue = vars.getObject("resultObject").get(0).get("Column Name")
二、Json响应断言
该组件使您可以执行JSON文档的验证。
首先,它将解析JSON,如果数据不是JSON则失败。
其次,它将使用https://github.com/json-path/JsonPath中的语法搜索指定的路径。如果找不到该路径,它将失败。
第三,如果在文档中找到JSON路径,并要求针对期望值进行验证,它将执行验证。对于null值,在GUI中有一个特殊的复选框。请注意,如果路径将返回数组对象,则将对其进行迭代,并且如果找到期望值,则断言将成功。要验证空数组,请使用[]字符串。另外,如果patch将返回字典对象,则在比较之前将其转换为字符串。
1、添加 》 断言 》 JSON断言

2、JSON断言界面参数说明:
(1)名称:节点的名称,显示在查看结果树中,自己根据实际情况定义。
(2)注释:对该节点进行注释。
(3)断言存在JSON路径:断言JSON元素的路径。
(4)附加断言值:如果要使断言具有某个值,把这个值勾选上。如果写了(3)JSON元素的路径,要把这个值勾选上。
(5)匹配为正则表达式:如果要使用正则表示式,选中该复选框。
(6)预期值:JSON元素路径对应的值。
(7)反转断言:就是否的意思,即如果符合就失败。


可以直接在查看结果树中进行JSON语法的测试。测试ok了再直接放在JSON断言中。
$ 表示跟节点。
[] 表示数组,0表示第一个;$[0] 表示跟节点后的第一个对象。
resultcode 即key,这里要获取resultcode的值,所以填写resultcode。


当接口的返回数据比较多的时候,可以去https://www.json.cn/进行解析:

举例:
取第一个id的值,$.data[0].id

三、登录获取cooike


相关文章:
jemter连接数据json断言
文章目录 一、jmeter连接数据库1、加载JDBC驱动2、连接数据3、SQL Query的Query Type使用方法:4、Variable Name使用方法:5、Result variable name使用方法: 二、Json响应断言1、添加 》 断言 》 JSON断言2、JSON断言界面参数说明:…...
JavaFX 加载 fxml 文件
JavaFX 加载 fxml 文件主要有两种方式,第一种方式通过 FXMLLoader 类直接加载 fxml 文件,简单直接,但是有些控件目前还不知道该如何获取,所以只能显示,目前无法处理。第二种方式较为复杂,但是可以使用与 fx…...
(三)Redis——Set
SADD key value SMEMBERS 127.0.0.1:6379> SADD set aaa 1 127.0.0.1:6379> SMEMBERS set aaa 127.0.0.1:6379> SADD set aaa 0 127.0.0.1:6379> SMEMBERS set aaaSISMEMBER 判断 aaa 是否在 set 中 127.0.0.1:6379> SISMEMBER set aaa 1 127.0.0.1:6379>…...
Vue组件通信方式详解(全面版)
在Vue应用开发中,组件通信是一个重要的话题。不同的组件可能需要在不同的情况下进行数据传递和交互。Vue提供了多种方式来实现组件通信,每种方式都有其适用的场景。本文将详细介绍Vue中实现组件通信的各种方式,并为每种方式提供通俗易懂的代码…...
什么是Promise对象?它的状态有哪些?如何使用Promise处理异步操作?以及 async、await
聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ Promise对象⭐ 创建Promise对象⭐ 使用Promise处理异步操作⭐ async、await⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅…...
Android 之自定义绘制一
绘制的基本要素 onDraw(Canvas) 绘制方法 Canvas 绘制工具 Paint 调整风格 粗细等 坐标系: x y ,3D 会有z轴,x 左到右,y 上至下,与数学中y颠倒 尺寸单位: 布局中 dp ,sp ,代码中 px;dp 为了适配不同的尺寸 绘制的关键: draw(Canvas )......(关键类:Paint) Paint.ANTI_A…...
vue3 计算两个表单得到第三个表单数据
<el-formref"ruleFormRef"label-width"150px"label-suffix":":rules"rules":disabled"drawerProps.isView":model"drawerProps.rowData"><el-form-item label"云平台名称" prop"cloudId&…...
Premiere Pro软件安装包分享(附安装教程)
目录 一、软件简介 二、软件下载 一、软件简介 Adobe Premiere Pro,简称PR,是Adobe公司开发的一款非线性视频编辑软件,被广泛应用于电影、电视剧、广告、纪录片、独立电影和音乐会等影视制作领域。它被公认为是行业内的标准工具,…...
springboot设置文件上传大小,默认是1mb
问题排查和解决过程 之前做了个项目,需要用到文件上传,启动项目正常,正常上传图片也正常,但这里图片刚好都小于1M,在代码配置文件里面也写了配置,限制大小为500M,想着就没问题(测试…...
Unity 之transform.LookAt() 调整一个物体的旋转,使其朝向指定的位置
文章目录 总的介绍补充(用于摄像机跟随的场景) 总的介绍 transform.LookAt 是 Unity 引擎中 Transform 组件的一个方法,用于调整一个物体的旋转,使其朝向指定的位置。通常情况下,它被用来使一个物体(如摄像…...
linux————haproxy
一、概述 HAProxy是一个免费的负载均衡软件,可以运行于大部分主流的Linux操作系统上(CentOS、Ubuntu、Debian、OpenSUSE、Fedora、麒麟、欧拉、UOS)。 HAProxy提供了L4(TCP)和L7(HTTP)两种负载均衡能力,具备丰富的功能。HAProxy具…...
【80天学习完《深入理解计算机系统》】第十天 3.3 条件码寄存器【CF ZF SF OF】【set】
专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录) 文章字体风格: 红色文字表示&#…...
使用WSL修改docker文件存储位置
按照以下说明将其重新定位到其他驱动器/目录,并保留所有现有的Docker数据。 首先,右键单击Docker Desktop图标关闭Docker桌面,然后选择退出Docker桌面,然后,打开命令提示符: wsl --list -v您应该能够看到&a…...
软件设计师学习笔记6-存储系统
1.层次化存储体系 1.1层次化存储结构 局部性原理是层次化存储结构的支持 时空局部性:刚被访问的内容,立即又被访问(eg: 循环体 ) 空间局部性:刚被访问的内容,临近的空间很快被访问(eg:数组) 1.2层次化存储结构的分类 DRAM&…...
【TI毫米波雷达笔记】CCS雷达工程内存RAM指定(DATA_SECTION,以IWR6843AOP为例)
【TI毫米波雷达笔记】CCS雷达工程内存RAM指定(DATA_SECTION,以IWR6843AOP为例) 工程建立好以后会有一个cmd文件 此文件描述的是内存map /*----------------------------------------------------------------------------*/ /* r4f_linker…...
安卓移动应用开发实训室建设方案
一 、系统概述 安卓移动应用开发作为新一代信息技术的重点和促进信息消费的核心产业,已成为我国转变信息服务业的发展新热点:成为信息通信领域发展最快、市场潜力最大的业务领域。互联网尤其是移动互联网,以其巨大的信息交换能力和快速渗透能…...
我的编程学习过程
自信与经验 在毕业的时候就觉得繁体字很难。大陆都在使用简体字,戴季陶说这是在亡国,没有这么严 重。繁体字会意,简体字简单,中国文盲很多,为了加快经济建设的步伐,不得不牺牲很多 东西。为了解决温饱&…...
亚马逊云科技 云技能孵化营 初识机器学习
目录 前言 一、课程介绍 二、什么是机器学习 三、机器学习算法进阶过程 四、亚马逊云科技能给我们什么 总结 前言 近期参加了“亚马逊云科技 云技能孵化营”,该孵化营的亚马逊云科技培训与认证团队为开发者准备了云从业者的精要知识及入门课程,帮助…...
多种编程语言运行速度排名-10亿次除7求余数为0的数量
最佳方式是运行10次,取平均数,用时秒数显示3位小数。 因为第一次打开,可能CPU还没优化好,多次取平均,比较准确 第1次共10次,用时3秒,平均3秒 第2次共10次,用时4秒,平均3.…...
Web 应用框架 Express 构建 RESTful API
Express框架 Express 是 Node.js 平台上最常用的 Web 应用框架之一,它简洁、灵活且易于使用。Express 提供了一组强大的功能和工具,可以帮助开发者快速构建 Web 应用程序和 RESTful API。 以下是 Express 框架的一些主要特点和功能: 轻量级…...
VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...
智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...
JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...
