性能测试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当中看到抓取到的接口请求了。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MetaGPT - 多Agent框架

文章目录 一、关于 MetaGPT功能介绍快速开始的演示视频教程 二、安装Pip安装Docker安装 一、关于 MetaGPT MetaGPT 为GPTs分配不同的角色&#xff0c;以形成一个协作实体来完成复杂的任务。 github : https://github.com/geekan/MetaGPTtwitter : https://twitter.com/MetaGP…

Qt窗口获取Tftpd32_svc服务下载信息

前言 一个由Qt开发的Windows小工具需要布置Tftp协议服务端来支持设备下载数据&#xff0c;并显示下载列表&#xff08;进度、下载源等&#xff09;。 考虑开发方便&#xff0c;优先使用了Qtftp方案&#xff0c;经测试发现&#xff0c;不够稳定&#xff0c;会有下载超时的情况&a…

xml格式化(3):增加头部声明

前言 这篇文章&#xff0c;是用来增加头部声明。 正文 from lxml import etreedef pretty_print(element, level0, indent" "):result ""# 判断元素是否为注释节点if isinstance(element, etree._Comment):result f"{indent * level}<!--{el…

python +tkinter绘制彩虹和云朵

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

【Linux】定时运行shell脚本

1、at命令 at命令允许指定Linux系统何时运行脚本&#xff0c;它会将作业提交到队列中&#xff0c;指定shell在什么时候运行该作业。 at 的守护进程 atd 在后台运行&#xff0c;在作业队列中检查待运行的作业。 at 守护进程会检查系统的一个特殊目录&#xff08;一般位于/var/…

vue3 css实现文字输出带光标显示,文字输出完毕,光标消失的效果

Vue实现过程如下&#xff1a; <template><div ><p ref"dom_element" class"typing" :class"{over_fill: record_input_over}"></p></div> </template> <script setup> import {onMounted, ref} from…

数据库高安全—角色权限:角色创建角色管理

目录 3.1 角色创建 3.2 角色管理 书接上文openGauss安全整体架构&安全认证&#xff0c;从安全整体架构与安全认证两方面&#xff0c;对高斯数据库的高安全性能进行了解读&#xff0c;本篇我们将从角色创建和角色管理两方面对高斯数据库的角色权限进行介绍。 3.1 角色创建…

【U8+】用友U8软件中,出入库流水输出excel的时候提示报表输出引擎错误。

【问题现象】 通过天联高级版客户端登录拥有U8后&#xff0c; 将出入库流水输出excel的时候&#xff0c;提示报表输出引擎错误。 进行报表输出时出现错误&#xff0c;错误信息&#xff1a;找不到“fd6eea8b-fb40-4ce4-8ab4-cddbd9462981.htm”。 如果您正试图从最近使用的文件列…

《GICv3_Software_Overview_Official_Release_B》学习笔记

1.不同版本的 GIC 架构及其主要功能如下图所示&#xff1a; 2.GICv2m&#xff08;Generic Interrupt Controller Virtualization Model&#xff09;是针对ARM架构的GIC&#xff08;通用中断控制器&#xff09;的一种扩展&#xff0c; GICv2m扩展为虚拟化环境中的中断管理提供了…

【循环神经网络】RNN介绍

在人工神经网络中&#xff0c;”浅层网络”是指具有一个输入层、一个输出层和最多一个没有循环连接的隐藏层的网络。随着层数的增加&#xff0c;网络的复杂性也在增加。更多的层或循环连接通常会增加网络的深度&#xff0c;并使其能够提供不同级别的数据表示和特征提取&#xf…

C#调用Lua

目录 xLua导入 打包工具导入 单例基类导入与AB包管理器导入 Lua解析器 文件加载与重定向 Lua解析器管理器 全局变量获取 全局函数获取 对于无参数无返回值 对于有参数有返回值 对于多返回值 对于变长参数 完整代码 List与Dictionary映射Table 类映射Table 接口映射…

麒麟操作系统服务架构保姆级教程(七)Nginx+PHP+Mysql部署服务

上边几篇文章已经交过大家二进制部署nginx和php&#xff0c;现在咱们打通nginx和php&#xff0c;mysql和php&#xff0c;开始部署服务&#xff0c;学会部署服务之后就可以开始学习负载均衡啦&#xff0c;话不多说&#xff0c;咱们直接开始~~~ 目录 一、.nginx部署 二、安装PH…

开源模型迎来颠覆性突破:DeepSeek-V3与Qwen2.5如何重塑AI格局?

不用再纠结选择哪个AI模型了&#xff01;chatTools 一站式提供o1推理模型、GPT4o、Claude和Gemini等多种选择&#xff0c;快来体验吧&#xff01; 在全球人工智能模型快速发展的浪潮中&#xff0c;开源模型正逐渐成为一股不可忽视的力量。近日&#xff0c;DeepSeek-V3和Qwen 2.…

【Java项目】基于SpringBoot的【新生宿舍管理系统】

【Java项目】基于SpringBoot的【新生宿舍管理系统】 技术简介&#xff1a;本系统使用采用B/S架构、Spring Boot框架、MYSQL数据库进行开发设计。 系统简介&#xff1a;管理员登录进入新生宿舍管理系统可以查看首页、个人中心、公告信息管理、院系管理、班级管理、学生管理、宿舍…

《learn_the_architecture_-_trustzone_for_aarch64_102418_0101_03_en》学习笔记

1.TrustZone是Arm A-profile架构中安全架构的名称。TrustZone首次在Armv6K中引入&#xff0c;Armv7-A和Armv8-A也支持。TrustZone提供两个执行环境&#xff0c;它们之间具有系统范围的硬件强制隔离。在Arm架构中&#xff0c;有两种安全状态&#xff1a;安全和非安全。在EL0、EL…

Excel | 空格分隔的行怎么导入excel?

准备工作&#xff1a;windows&#xff0c;一个记事本程序和微软的Excel软件。 打开记事本&#xff0c;选中所有内容&#xff0c;按CtrlA全选&#xff0c;然后复制(CtrlC)。 在Excel中&#xff0c;定位到你想粘贴的单元格&#xff0c;按CtrlV进行粘贴。粘贴后&#xff0c;你会在…

南京观海微电子----GH7009国宇测试盒使用

1. SPI接线 针对7009&#xff1a; 2. 国宇上位机代码准备 在主函数首尾两端加入IO2时序控制的代码、以及国语SPI有效位控制的代码&#xff08;请注意7009和其他700x使用的有效位控制不一致&#xff0c;需要用哪一款加入哪一行即可&#xff09;&#xff1a; 三、国宇SPI读的使…

Arduino Uno简介与使用方法

目录 一、Arduino Uno概述 1. 硬件特性 2. 开发环境 二、Arduino Uno的基本使用方法 1. 硬件连接 2. 软件编程 三、Arduino Uno编程基础 1. 基本语法 2. 常用函数 四、Arduino Uno应用举例 1. LED闪烁 2. 温度检测 3. 超声波测距 五、Arduino Uno的扩展与应用 1…

使用命令行管理git项目

# 初始化一个新的Git仓库 git init # 添加文件到暂存区 git add <file> # 提交暂存区的更改到仓库 git commit -m "commit message" # 查看当前仓库的状态 git status # 查看提交历史 git log # 查看文件的改动 git diff <file> # 创建一个新…

网络安全的学习与实践经验(附资料合集)

学习资源 在线学习平台&#xff1a; Hack This Site&#xff1a;提供从初学者到高级难度的挑战任务&#xff0c;适合练习各种网络安全技术。XCTF_OJ&#xff1a;由XCTF组委会开发的免费在线网络安全网站&#xff0c;提供丰富的培训材料和资源。SecurityTube&#xff1a;提供丰…