性能测试03|JMeter:断言、关联、web脚本录制

目录

一、断言

1、响应断言

2、json断言

3、持续时间断言

二、关联

1、正则表达式介绍

2、正则表达式提取器

3、Xpath提取器

4、JSON提取器

5、JMeter属性

三、web脚本录制


一、断言

定义:让程序自动判断实际的返回结果是否与预期结果保持一致

  • 自动校验机制:自动判断响应状态码(2xx:成功,4xx/5xx:失败)
  • 响应内容需要自己写脚本

Jmeter常用断言:

  • 响应断言:对任意格式的响应数据进行断言
  • json断言:对json格式的响应数据进行断言
  • 持续时间断言:对响应时间进行断言

1、响应断言

作用:对HTTP请求的任意格式的响应结果进行断言

位置:测试计划→线程组→HTTP请求→(右键添加)断言→响应断言

参数

 

案例

断言响应体中包含:百度一下,你就知道
不报错就说明断言通过了
断言不通过的情况(这里是把中文逗号换成英文逗号了,所有断言没通过)

2、json断言

作用:对HTTP请求的JSON格式的响应结果进行断言

位置:测试计划→线程组→HTTP请求→(右键添加)断言→JSON断言

参数

红框为常用

路径格式以$.开头,表示根的意思 ,后面指定要取值的变量

操作步骤

  • 添加线程组
  • 添加HTTP请求
  • 添加JSON断言
  • 添加查看结果树

3、持续时间断言

作用:检查HTTP请求的响应时间是否超出要求范围

位置:测试计划 →线程组 →HTTP请求 →(右键添加)断言 →断言持续时间

参数:只有一个,允许最长响应时间

二、关联

定义:请求之间有依赖关系,一个请求的响应数据作为另一个的请求参数来传递

JMeter关联

  • 正则表达式提取器:提取任意格式的响应数据
  • Xpath提取器:提取HTML格式的响应数据
  • JSON提取器: 提取JSON格式的响应数据

1、正则表达式介绍

正则表达式:就是一个公式,或者说一套规则,使用这套规则可以从任意字符串中提取出想要的数据内容。

公式格式:左边界(匹配符号)右边界:可以提取出想要获取的数据内容

. :是通配符,可以代表任意字符(除换行回车)

* :代表前面的字符出现0次或者多次

.*:代表任意字符

(以上符号匹配规则:找到左边界值后,往右查找有边界,找到最后面的右边界,中间的所有数据都被记录下来)

? :代表非贪婪匹配,找到左边界后,往右查找匹配右边界,只要有匹配的右边界就停止继续查找;再次查找左边界和右边界,即一个一个的找。

公式格式:左边界(.*?)右边界

案例一:找到“百度一下,你就知道”

原始文本:<title>百度一下,你就知道</title>

正则表达式<title>(.*?)</title>

案例二

 原始文本:

021-1234-1234

022-1234-1235

023-1234-1236

024-1234-1237

025-1234-1238

026-1234-1239   要求:匹配出 城市号、地区号、个人号码三组

正则表达式:(.*?)-(.*?)-(.*?)\n

2、正则表达式提取器

作用:针对任意格式的响应数据进行提取

位置:测试计划→线程组→HTTP请求→(右键添加)后置处理器→正则表达式提取器

参数

模板:就是表明要匹配正则表达式中第几个括号
匹配数字:就是表明要取匹配结果中的第几个结果

操作步骤

  • 添加线程组
  • 添加HTTP请求
  • 添加正则表达式提取器
    • 引用名称:存放提取出的值的参数名称,如填写title
    • 正则表达式:左边界( .*? )右边界
    • 模板:用$$引用起来,表示解析出第几个()的值
    • 匹配数字::表示第1个值,-1表示所有取值
  • 添加HTTP请求-百度
  • 引用正则表达式中的引用名称。如:用${title}引用它
  • 添加查看结果树

案例:获取传智播客首页的地址,把第5个校区地址作为参数传递(span为地址的校区) 

方法1:

  • 添加线程组
  • 添加HTTP请求 - itcast
  • 添加正则表达式 —— 获取第5个地址

  • 添加HTTP请求 - 百度

  •  查看结果树

方法2:

  • 添加线程组
  • 添加HTTP请求 - itcast
  • 添加正则表达式 —— 获取所有匹配的地址数据

  • 添加Debug Sample:调试用的,会打印area信息
  • 添加HTTP请求 - 百度,引用第5个地址信息,格式:${变量名_索引},索引从1开始

  •  查看结果树

3、Xpath提取器

学过UI自动化就知道怎么匹配了

作用:针对HTML格式的响应结果数据进行提取

位置:测试计划 →线程组 →HTTP请求→(右键添加)后置处理器→XPath提取器

参数

引用方式:${变量名}  或  ${变量名_索引}

4、JSON提取器

作用:针对JSON格式的响应结果数据进行提取

位置:添加方式:测试计划→线程组→HTTP请求→(右键添加)后置处理器 →JSON提取器

参数

5、JMeter属性

类似postman中的全局变量

数据提取还是用上面三种方法实现,但是数据在不同线程组传递就可以用到JMeter属性 

详细过程: 

19.性能测试_JMeter属性的介绍_哔哩哔哩_bilibili 

三、web脚本录制

实际工作一般不用 

JMetr录制脚本:在没有接口文档的旧项目当中,快速录制web页面产生的http接口请求,帮助
编写接口测试脚本。

JMetr录制脚本原理

JMetr录制脚本的操作步骤

1、添加HTTP代理服务器,并进行配置

  • 加HTTP代理服务器:测试计划(右键)→非测试元件→HTTP代理服务器
  • 配置理代服务器的参数

2、开启windows操作系统的浏览器代理

3、启动代理服务器,开始录制

点完启动会出现一个弹窗,点OK即可
此弹窗放旁边,不管它就行,不要关掉

4、在浏览器页面中进行操作,成功后,就能在JMeter当中看到抓取到的接口请求了。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GitHub Fork 和 Clone 的深度指南:操作解析与 Pull Request 完整流程20241231

GitHub Fork 和 Clone 的深度指南&#xff1a;操作解析与 Pull Request 完整流程 快速导航 引言Fork 与 Clone 概念对比完整开发流程Pull Request 最佳实践常见问题与解决方案最佳实践建议实战案例 引言 在开发者的协作世界中&#xff0c;GitHub 就像一座桥梁&#xff0c;连…

『 Linux 』高级IO (三) - Epoll模型的封装与EpollEchoServer服务器

文章目录 前情提要Epoll 的封装Epoll封装完整代码(供参考) Epoll Echo ServerEpoll Echo Server 测试及完整代码 前情提要 在上一篇博客『 Linux 』高级IO (二) - 多路转接介绍并完成了两种多路转接方案的介绍以及对应多路转接方案代码的编写,分别为SelectServer服务器与PollSe…

vue路由模式面试题

vue路由模式 1.路由的模式有哪些?有什么区别? history和hash模式 区别: 1.表现的形态不同: 在地址栏url中:hash模式中带有**#**号,history没有 2.请求错误时表现不同: 在hash模式中,对于404地址请求时,不会进行请求 但是在history模式中,对于404请求时,仍然会进行请求…

Docker安装Prometheus和Grafana

概念简述 安装prometheus 第一步&#xff1a;确保安装有docker 第二步&#xff1a;拉取镜像 第三步&#xff1a;准备相关挂载目录及文件 第四步&#xff1a;启动容器 第五步&#xff1a;访问测试 安装grafana 第一步&#xff1a;确保安装有docker 第二步&#xff1a;拉…

UE5失真材质

渐变材质函数&#xff1a;RadialGradientExponential&#xff08;指数径向渐变&#xff09; 函数使用 UV 通道 0 来产生径向渐变&#xff0c;同时允许用户调整半径和中心点偏移。 用于控制渐变所在的位置及其涵盖 0-1 空间的程度。 基于 0-1 的渐变中心位置偏移。 源自中心的径…

Android授权USB使用权限示例

使用效果&#xff1a; 授权实现过程&#xff1a; 1.在AndroidManifest.xml中增加android.hardware.usb.action.USB_DEVICE_ATTACHED的action及meta-data action: <action android:name"android.hardware.usb.action.USB_DEVICE_ATTACHED"/> meta-data: &l…

matlab时频分析库

time frequency gallery

算法题(25):只出现一次的数字(三)

审题&#xff1a; 该题中有两个元素只出现一次并且其他元素都出现两次&#xff0c;需要返回这两个只出现一次的数&#xff0c;并且不要求返回顺序 思路: 由于对空间复杂度有要求&#xff0c;我们这里不考虑哈希表。我们采用位运算的方法解题 方法&#xff1a;位运算 首先&#…

python +tkinter绘制彩虹和云朵

python tkinter绘制彩虹和云朵 彩虹&#xff0c;简称虹&#xff0c;是气象中的一种光学现象&#xff0c;当太阳光照射到半空中的水滴&#xff0c;光线被折射及反射&#xff0c;在天空上形成拱形的七彩光谱&#xff0c;由外圈至内圈呈红、橙、黄、绿、蓝、靛、紫七种颜色。事实…

HTML——28.音频的引入

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>音频引入</title></head><body><!--audio:在网页中引入音频当属性名和属性值一样&#xff0c;可以只写属性名src属性:指定音频文件路径&#xff0c;必…

基于Spring Boot + Vue3实现的在线汽车保养维修预约管理系统源码+文档

前言 基于Spring Boot Vue3实现的在线汽车保养维修预约管理系统是一种前后端分离架构的应用&#xff0c;它结合了Java后端开发框架Spring Boot和现代JavaScript前端框架Vue.js 3.0的优势。这样的系统可以为汽车服务站提供一个高效的平台来管理客户的预约请求 技术选型 系统…

【Python学习(六)——While、for、循环控制、指数爆炸】

Python学习&#xff08;六&#xff09;——While、for、循环控制、指数爆炸 本文介绍了While、for、循环控制、指数爆炸&#xff0c;仅作为本人学习时记录&#xff0c;感兴趣的初学者可以一起看看&#xff0c;欢迎评论区讨论&#xff0c;一起加油鸭~~~ 心中默念&#xff1a;Py…

计算机网络——期末复习(5)期末考试样例1(含答案)

考试题型&#xff1b; 概念辨析&#xff15;个、计算与分析&#xff13;个、综合题&#xff13;&#xff0d;&#xff14;个 必考知识点&#xff1a; 概述&#xff1a;协议 体系结构 物理层&#xff1b;本次考核较少 链路层&#xff1a;CSMA/CD 退避二进制算法 &#xff0…

豆包ai 生成动态tree 增、删、改以及上移下移 html+jquery

[豆包ai 生成动态tree 增、删、改以及上移下移 htmljquery) 人工Ai 编程 推荐一Kimi https://kimi.moonshot.cn/ 推荐二 豆包https://www.doubao.com/ 实现效果图 html 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF…

5大常见高并发限流算法选型浅析

高并发场景下&#xff0c;如何确保系统稳定运行&#xff0c;成为了每一个开发工程师必须面对的挑战。**你是否曾因系统崩溃、请求超时或资源耗尽而头疼不已&#xff1f;**高并发限流算法或许能帮你解决这些难题。 在处理高并发请求时&#xff0c;应该如何选择合适的限流算法呢…

【重庆】《政务数字化应用费用测算规范》(T/CDCIDA 001—2023)-省市费用标准解读系列36

《政务数字化应用费用测算规范&#xff08;报批稿&#xff09;》于2023年11月18日实施&#xff0c;本文件按照GB/T 1.1-2020给出的规则起草&#xff0c;主要适用于重庆政务数字化应用项目的费用测算。我司基于专业第三方信息化项目造价机构角度&#xff0c;从标准创新点、定制软…

力扣【SQL连续问题】

180. 连续出现的数字 SELECT DISTINCT if(a.num b.num AND b.num c.num,a.num,null) AS ConsecutiveNums FROM Logs a LEFT OUTER JOIN Logs b ON a.id1 b.id LEFT OUTER JOIN Logs c ON a.id2 c.id WHERE if(a.num b.num AND b.num c.num,a.num,null) IS NOT NULL603. 连…

qml MouseArea详解

1. 概述 MouseArea 是 QML 中用于处理鼠标事件的一个非常重要的项&#xff08;Item&#xff09;。它允许开发者响应鼠标的点击、拖拽、悬停等操作。MouseArea 可以与任何 QML 项目&#xff08;如 Rectangle, Image, Text 等&#xff09;结合使用&#xff0c;用于实现用户交互。…

Git快速入门(三)·远程仓库GitHub以及Gitee的使用

目录 1. 远程仓库GitHub 1.1 登录 1.2 创建库 1.3 创建文件 1.4 修改文件 1.5 创建分支 1.6 删除库 1.7 将远程仓库下载到本地 1.7.1 关联登录 1.7.2 克隆 1.7.3 通过GitHub Desktop更改远程库 2. 远程仓库Gitee 2.1 登录 2.2 创建文件 2.3 关联…

Uncaught ReferenceError: __VUE_HMR_RUNTIME__ is not defined

Syntax Error: Error: vitejs/plugin-vue requires vue (>3.2.13) or vue/compiler-sfc to be present in the dependency tree. 第一步 npm install vue/compiler-sfc npm run dev 运行成功&#xff0c;本地打开页面是空白&#xff0c;控制台报错 重新下载了vue-loa…