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

【性能测试】6_JMeter_JMeter断言

文章目录

  • 一、JMeter断言
    • 1.1 断言的概念
    • 1.2 JMeter中常用断言
  • 二、响应断言
    • 2.1 场景
    • 2.2 操作方法
    • 2.3 同一个HTTP请求下包含多个响应断言
    • 2.4 参数详解
      • 2.4.1 Apply to:适用范围
      • 2.4.2 测试字段:要检查的项
      • 2.4.3 模式匹配规则
      • 2.4.4 测试模式
  • 三、JSON断言
    • 3.1 场景
    • 3.2 操作方法
      • 3.2.1 查看json响应
      • 3.2.2 添加json断言
    • 3.3 参数详解
  • 四、断言持续时间
    • 4.1 场景
    • 4.2 操作方法

一、JMeter断言

1.1 断言的概念

  • 断言: 让程序判断预期结果和实际结果是否一致。
  • 提示: JMeter断言是在请求的返回层面增加一层判断机制; 因为请求成功了, 并不代表结果一定正确, 因此需要检测机制提高测
    试准确性。

1.2 JMeter中常用断言

  • 响应断言
  • JSON断言
  • 断言持续时间(Duration Assertion)

二、响应断言

添加方式: 测试计划 --> 线程组–> HTTP请求 --> (右键添加) 断言 --> 响应断言(断言一定是在HTTP请求的子节点下)

2.1 场景

需求:jmeter 请求:https://www.baidu.com,让程序检查 响应数据中是否包含“百度一下, 你就知道“

2.2 操作方法

1、类型:

  • 响应文本:断言 响应体 中包含的字符串。
  • 响应代码:断言 响应状态码。

2、注意事项:

  • 一个响应文本中,可以放置多个 字符串 关键字。
  • 响应状态码,必须放在响应代码中。

2.3 同一个HTTP请求下包含多个响应断言

2.4 参数详解

2.4.1 Apply to:适用范围

  • Main sample and sub-samples: 作用于父节点取样器及对应子节点取样器;
  • Main sample only: 仅作用于父节点取样器;
  • Sub-samples only: 仅作用于子节点取样器;
  • JMeter Variable: 作用于jmeter变量(输入框内可输入jmeter的变量名称);

2.4.2 测试字段:要检查的项

  • 响应文本: 来自服务器的响应文本, 即主体, 不包括任何HTTP头
  • 响应代码: 响应的状态码, 例如: 200
  • 响应信息: 响应的信息, 例如: OK
  • Response Headers: 响应头部
  • Request Headers: 请求头部
  • Request Data: 请求数据
  • URL样本: 响应的URL
  • Document(text): 响应的整个文档
  • 忽略状态: 忽略返回的响应状态码

2.4.3 模式匹配规则

  • 包括: 文本包含指定的正则表达式
  • 匹配: 整个文本匹配指定的正则表达式
  • Equals: 整个返回结果的文本等于指定的字符串(区分大小写)
  • Substring: 返回结果的文本包含指定字符串(区分大小写)
  • 否: 取反
  • 或者: 如果存在多个测试模式, 勾选代表逻辑或(只要有一个模式匹配, 则断言就是OK) , 不勾选代表逻辑与(所有都必
  • 须匹配, 断言才是OK)

注意: Equals和Substring模式是普通字符串, 而不是正则表达式。

2.4.4 测试模式

即填写你指定的结果(可填写多个),按钮【添加】 、 【删除】 是进行指定内容的管理

三、JSON断言

该组件用来对JSON文档进行验证, 验证步骤如下:

  1. 首先解析JSON数据, 如果数据不是JSON, 则验证失败。
  2. 使用Jayway JsonPath 1.2.0中的语法搜索指定的路径。 如果找不到路径, 就会失败。
  3. 如果在文档中找到JSON路径, 并且要求对期望值进行验证, 那么它将执行验证操作。

添加方式: 测试计划 --> 线程组–> HTTP请求 --> (右键添加) 断言 --> JSON断言

3.1 场景

需求:让程序检查响应的JSON数据中, city对应的内容是否为“北京”

URL:https://www.weather.com.cn/data/sk/101010100.html

场景:响应数据可以转换为json数据时,首选json断言。否则为其它断言

3.2 操作方法

3.2.1 查看json响应

{"weatherinfo":{"isRadar":"1","rain":"0","temp":"18","city":"北京","WSE":"1","qy":"1011","njd":"暂无实况","cityid":"101010100","WD":"东南风","SD":"17%","Radar":"JC_RADAR_AZ9010_JB","time":"17:05","WS":"1级"}}

3.2.2 添加json断言

JsonPath语法 :https://github.com/json-path/JsonPath

$.代表整个json响应结果 第一种语法: $.一级键名.二级键名.三级键名 $.weatherinfo.city 第二种语法:$...N级键名(N是几级,前面应该有几个点) $..city 第三种语法:weatherinfo.city

3.3 参数详解

  • Assert JSON Path exists: 用于断言的JSON元素的路径
  • Additionally assert value: 如果您想要用某个值生成断言, 请选择复选框
  • Match as regular expression: 如果需要使用正则表达式, 请选择复选框
  • Expected Value: 期望值, 用于断言的值或用于匹配的正则表达式的值
  • Expect null: 如果希望为空, 请选择复选框
  • Invert assertion (will fail if above conditions met): 反转断言(如果满足以上条件则失败)

四、断言持续时间

断言持续时间:客户端发送请求,到收到服务器的响应时间,要求不超过指定的时间。

添加方式: 测试计划 --> 线程组–> HTTP请求 --> (右键添加) 断言 --> 持续时间断言

4.1 场景

需求:请求: https://www.jd.com ,让程序检查响应时间是否大于500毫秒

4.2 操作方法

http://www.jsqmd.com/news/257378/

相关文章:

  • 【性能测试】7_JMeter _JMeter关联
  • 杰理之打开歌词显示功能后,没有歌词数据【篇】
  • 杰理之双声道开关辅听时容易vPortfree 433死机【篇】
  • 订货系统平台选购看什么?这份2026年深度评测与口碑排名推荐说清楚了 - 十大品牌推荐
  • 杰理之快速获取播放状态【篇】
  • 2026年度广州叛逆孩子管理学校排名:少年叛逆行为学校哪家靠谱? - 工业品牌热点
  • 2026解酒降血脂饮料公司权威推荐榜单:降血脂健康饮料/降血脂睡眠饮料/降痛风尿酸饮料/降尿酸专用饮料源头厂家精选。 - 品牌推荐官
  • 2026年江苏电子招标采购权威推荐榜单:招标采购工具 /招标采购平台 /招标采购平台排行榜/ 招标采购管理方法 /招标采购流程 /招标采购服务平台流渠道精选 - 品牌推荐官
  • 一文搞懂K-Means 聚类!
  • Logoly:几秒钟做出「P站 风格」Logo 的开源小工具
  • 未知 = 希望?
  • iStoreOS_24.10.4 兼容性列表及镜像下载地址更新日志
  • 2026年四川按摩椅选购看什么?这份深度评测与口碑排名推荐给你答案 - 十大品牌推荐
  • 未知 = 确定性?
  • 2026年四川按摩椅品牌推荐:2026年度横向对比评测与真实排名报告 - 十大品牌推荐
  • 2026年四川按摩椅品牌推荐:基于市场口碑与用户评价的TOP5排名深度评测 - 十大品牌推荐
  • 创业项目用 XinServer 打造零代码后端平台
  • 2026年四川按摩椅品牌推荐:基于用户口碑的TOP5排名与深度评测 - 十大品牌推荐
  • 2026年冻干机厂家权威推荐榜单:真空冻干机/实验室冻干机/果蔬冻干机/宠物冻干机/进口冻干机源头厂家精选 - 品牌推荐官
  • 2025年乌鲁木齐黄金回收公司权威推荐榜单:本地黄金回收 /黄金上门回收 /黄金首饰回收多少钱一克/ 黄金首饰加工/乌鲁木齐黄金回收优质服务商精选 - 品牌推荐官
  • 第17天:信息打点-语言框架开发组件FastJsonShiroLog4jSpringBoot等
  • 2026年四川按摩椅品牌推荐:2026年度权威评测与用户评价排名报告 - 十大品牌推荐
  • AI提示惊人的一致性
  • 深入解析:CCF-NOI2025第二试题目与解析(第二题、集合(set))
  • 【无人机三维路径规划】基于人工势场算法APF实现复杂山地模型下无人机路径规划附Matlab代码
  • 电科金仓 KES Oracle 迁移避坑:核心障碍排查与解决
  • 模拟器 金铲铲 界面显示异常 装备栏显示异常 解决方法 2026-01-17
  • 技术日报|Eigent协同工具爆火,单日狂揽2100+星登顶GitHub
  • 常见的五个编译时异常和常见的五个编译时异常 - 实践
  • 【C++】2.10智能指针详解