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

Jmeter断言、关联、录制脚本

  • Jmeter断言

断言:让程序自动判断预期结果实际结果是否一致

提示:

  • Jmeter在请求的返回层面有个自动判断机制(响应状态码 2xx:成功,4xx/5xx:失败)
  • 但是请求成功了,并不代表结果一定正确,因此需要检测机制提高测试准确性。

Jmeter中常用断言

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

作用:对HTTP请求的任意格式的响应结果进行断言
位置:测试计划–>线程组–>HTTP请求–>(右键添加)断言–>响应断言
参数:在这里插入图片描述
在这里插入图片描述

练习:

请求:https://www.baidu.com

检查:让程序检查响应数据中是否包含“百度一下,你就知道“

操作步骤:

1.添加线程组

2.添加HTTP请求
在这里插入图片描述
3.在http请求下添加响应断言在这里插入图片描述
4.添加查看结果树
在这里插入图片描述

小结

(1)什么时候可以使用响应断言?

任意HTTP请求的响应结果,都可以使用响应断言
(2)使用”响应断言“的操作步骤?

  • 添加线程组
  • 添加HTTP请求
  • 添加响应断言
    • 测试字段:要检查的项(实际结果)
    • 模式匹配规则:比较的方式
    • 测试模式:预期结果
  • 添加查看结果树
  • JSON断言

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

位置:测试计划–>线程组–>HTTP请求—>(右键添加)断言—>JSON断言
参数:
在这里插入图片描述

练习:

请求:http://www.weather.com.cn/data/sk/101010100.html

检查:让程序检查响应的JSON数据中,city对应的内容是否为”北京“
步骤:
1.添加线程组
2.添加HTTP请求
在这里插入图片描述

3.在http请求下添加json断言
在这里插入图片描述
4、查看结果树

小结

(1)什么时候可以使用JSON断言?

对HTTP请求的响应结果为JSON格式时,可以使用JSON断言
(2)使用"JSON断言"的操作步骤?

  • 添加线程组
  • 添加HTTP请求
  • 添加JSON断言
    • 填写Assert JSON Path exists(实际结果-json路径)
    • 勾选Addtionally assert value。
    • 填写 Expected Value(预期结果)。
  • 添加查看结果树
  • 断言持续时间

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

位置:测试计划–>线程组–>HTTP请求—>(右键添加)断言—>断言持续时间
参数:
在这里插入图片描述

练习:

请求:https://www.jd.com

检查:让程序检查响应时间是否大于100毫秒

操作步骤:

  • 添加线程组
  • 添加HTTP请求
    在这里插入图片描述
  • 添加断言持续时间
    在这里插入图片描述
  • 添加查看结果树
    在这里插入图片描述
    在这里插入图片描述
  • 关联
    关联:当请求之间有依赖关系,比如一个请求的入参是另一个请求返回的数据,这时候就需要用到关联处理。

Jmeter中常用的关联方法

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

正则表达式:就是一个公式,或者说是一套规则,使用这套规则可以从任意字符串中提取出想要的数据内容。
格式格式:左边界(匹配符号)右边界:可以提取出想要获取的数据内容

  • .:是通配符,可以代表任意字符(除换行回车)
  • *:代表前面的字符出现0次或者多次
  • .* 匹配规则:找到左边界值后,往右查找有边界,找到最后面的右边界,中间的所有数据
    都被记录下来(贪婪匹配)。
    在这里插入图片描述
  • ?:代表非贪婪匹配,找到左边界后,往右查找匹配右边界,只要有匹配的右边界就停止继续
    查找;再次查找左边界和右边界
    在这里插入图片描述
    公式格式:左边界(.*?)右边界
百度一下,你就知道 百度一下,你就知道 (.*?)

案例:
原始文本:
021-1234-1234
022-1234-1235
023-1234-1236
024-1234-1237
025-1234-1238
026-1234-1239
027-1234-1230
要求:匹配出 城市号、地区号、个人号码三组

  • 正则表达式匹配: (.?)-(.?)-(.*?)\n
    在这里插入图片描述
  • 结论:
    • 通过一个正则表达式可以提取出多组数据,每组数据设置对应的左边界和右边界即可
    • 每一组数据都可以有一个或者多个值
  • 正则表达式提取器

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

位置:测试计划–>线程组–>HTTP请求–>(右键添加)后置处理器—>正则表达式提取器
参数:
在这里插入图片描述

练习1:
1.请求:http://www.itcast.cn/获取网页的title

2.请求:https://www.baidu.com/ 把获取到title作为请求参数

操作步骤:

  • 添加线程组
  • 添加HTTP请求- itcast
    在这里插入图片描述
  • 添加正则表达式提取器
    在这里插入图片描述
  • 添加HTTP请求-baidu
    在这里插入图片描述
  • 添加查看结果树
    在这里插入图片描述

小结

(1)什么时候可以使用正则表达式提取器?

任意格式的响应数据,都可以使用正则表达式提取器进行提取
(2)使用”正则表达式提取器“的操作步骤?

  • 添加线程组

  • 添加HTTP请求-itcast

  • 添加正则表达式提取器

    • 引用名称:存放提取出的值的参数名称,如填写title
    • 正则表达式:左边界(.*?)右边界
    • 模板:用$ $引用起来,表示解析出第几个()的值
    • 匹配数字:1代表取第一个值,-1代表全部取值
  • 添加HTTP请求-百度

  • 引用正则表达式中的引用名称,如:用${title}引用

  • 添加查看结果树

  • 练习2:获取黑马首页的地址(https://www.itheima.com),把第五个校区地址作为参数传递(span为地址的校区)
    -响应中的地址格式显示:<p><span>地址:</span>湖北省武汉市长江新城区青龙路传智教育科创园</p>

方法1:

  • 添加线程组
  • 添加HTTP请求-heima
    在这里插入图片描述
  • 添加正则表达式提取器-—获取第5个地址
    在这里插入图片描述
  • 添加HTTP请求-baidu
    在这里插入图片描述
  • 查看结果树
    在这里插入图片描述

方法2:

  • 添加线程组

  • 添加HTTP请求-heima

  • 添加正则表达式——获取所有匹配的地址数据
    在这里插入图片描述

  • 添加DebugSample
    在这里插入图片描述

  • 添加HTTP请求-百度,引用第5个地址信息,格式:${变量名_索引},索引从1开始
    在这里插入图片描述

  • 添加查看结果树

练习3:获取黑马首页的地址,把第5个校区地址作为参数传递(span为地址/后面带一、二、三)

地址格式1<p><span>地址一</span>昌平区建材城西路金燕龙办公楼一层</p>
地址格式2<p><span>地址</span>上海市浦东新区航头镇航都路18号万香创新港</p>

步骤:

  • 添加线程组
  • 添加HTTP请求-heima
  • 添加正则表达式提取器-地址信息
    在这里插入图片描述
  • 添加HTTP请求-百度
    在这里插入图片描述
  • 查看结果树
  • xpath提取器
    在这里插入图片描述

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

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

参数:
在这里插入图片描述

练习:

1.请求:http://www.itcast.cn/,获取网页的title值

2.请求:https://www.baidu.com/,把获取到的title作为请求参数

操作步骤:

1.添加线程组

2.添加HTTP请求-itcast
在这里插入图片描述

3.添加Xpath提取器
在这里插入图片描述
4.添加HTTP请求-百度
在这里插入图片描述
5.添加查看结果树

小结

小结

(1)什么时候可以使用XPATH提取器?

针对HTML格式的响应数据,可以使用XPATH提取器进行提取
(2)使用"Xpath提取器"的操作步骤?

  • 添加线程组

  • 添加HTTP请求-itcast

  • 添加Xpath提取器

    • 勾选use Tidy(tolernat parser)
    • 引用名称:存放提取出的值的参数名称。如:填写title
    • Xpath Query:用于提取值的Xpath表达式
    • 匹配数字:0:表示随机,-1:表示提取所有,1表示第一个值
  • 添加HTTP请求-baidu

    • 引用正则表达式中的引用名称。如:用${title}引用它。
  • 添加查看结果树

  • JSON提取器

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

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

参数:
在这里插入图片描述

练习:

1.请求获取天气的接口,http://www.weather.com.cn/data/sk/101010100.html,获取返回结果中的城市名称”北京“

2.请求https://www.baidu.com/s?wd=北京,把获取到的城市名称作为请求参数
步骤:

  • 添加线程组
  • 添加HTTP请求-天气
    在这里插入图片描述
  • 添加Json提取器
    在这里插入图片描述
  • 添加HTTP请求-百度
    在这里插入图片描述
  • 添加查看结果树
    在这里插入图片描述

小结

(1)什么时候可以使用JSON提取器?

针对JSON格式的响应数据,可以使用JSON提取器进行提取
(2)使用“JSON提取器”的操作步骤?

  • 添加线程组
  • 添加HTTP请求-天气
  • 添加JSON提取器
    • Name of created variables:存放提取出的值的参数名称如:city
    • JSON Path Expressions:用于提取值的JSON路径表达式
    • Match No:0:表示随机,-1:表示提取所有,1表示第一个值
  • 添加HTTP请求-百度
    • 引用正则表达式中的引用名称。如:用${city}引用它
  • 添加查看结果树
  • JMeter属性
    为什么要使用JMeter属性?
    在这里插入图片描述
    Jmeter属性的配置函数
    在这里插入图片描述
    Jmeter属性的函数执行
    在这里插入图片描述

练习:

1.线程组1:请求获取天气的接口,https://www.weather.com.cn/data/sk/101010100.html,获取返回结果中的城市名称”北京“

2.线程组2:请求https://www.baidu.com/s?wd=北京,把获取到的城市名称作为请求参数

操作步骤:

  • 添加线程组1
  • 添加HTTP请求-天气
    在这里插入图片描述
  • 添加JSON提取器
    在这里插入图片描述
  • 添加BeanShell取样器(将JSON提取器的值保存为JMeter属性

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 添加线程组2

  • 添加HTTP请求-百度(读取JMeter属性
    在这里插入图片描述

  • 添加查看结果树
    在这里插入图片描述
    在这里插入图片描述

小结

(1)什么时候需要使用JMeter属性?

需要实现跨线程组的数据传递时,可以使用Jmeter属性
(2)使用”Jmeter属性“的操作步骤?

  • 添加线程组1

  • 添加HTTP请求-天气

  • 添加JSON提取器

  • 添加BeanShell取样器(将JSON提取器的值保存为JMeter属性) ​

    • 保存Jmeter属性:${__setProperty(P_city,${city},)}
  • 添加线程组2

  • 添加HTTP请求-百度(读取JMeter属性)

    • 读取Jmeter属性:${__property(p_city,)}
  • 添加查看结果树

JMeter录制脚本
在这里插入图片描述
Jmeter录制脚本:在没有接口文档的旧项目当中,快速录制web页面产生的http接口请求,

帮助编写接口测试脚本

原理:录制时,Jmeter作为代理服务器来拦截和转发请求与响应数据。
在这里插入图片描述

Jmeter录制脚本的操作步骤:

  • 添加HTTP代理服务器,并进行配置
  • 加HTTP代理服务器:测试计划(右键)-非测试元件-HTTP代理服务器
  • 添加线程组
  • 配置代理服务器的参数
    在这里插入图片描述
    在这里插入图片描述
  • 开启windows 操作系统的浏览器代理
    在这里插入图片描述
  • 启动代理服务器,开始录制
    在这里插入图片描述
  • 在浏览器页面中进行操作,成功后,就能在JMeter当中看到抓取到的接口请求了。
    在这里插入图片描述
    在这里插入图片描述

当使用代理的过程中,发现抓不到包,几个可能的情况:

  • 过滤规则设置有问题
  • 重启Jmeter代理服务器或者重启Jmeter
  • 换浏览器来使用(Chrome、IE)
  • 检查PC机中的代理设置是否处于可用状态
  • 拔掉网线,抓包

http://www.mrgr.cn/news/91556.html

相关文章:

  • Navicat16安装教程(附安装包)2025最新版详细图文安装教程
  • 【动态路由】系统Web URL资源整合系列(后端技术实现)【nodejs实现】
  • 小胡说技书博客分类(部分目录):服务治理、数据治理与安全治理对比表格
  • 【Linux】命令操作、打jar包、项目部署
  • 如何简单的去使用jconsloe 查看线程 (多线程编程篇1)
  • 某大型业务系统技术栈介绍【应对面试】
  • 轻松搭建本地大语言模型(二)Open-WebUI安装与使用
  • 浏览器报错:无法访问此网站 无法找到xxx.xxx.net的DNS地址。正在诊断该问题。尝试运行Windows网络诊断。DNS_PROBE_STARTED
  • 23. AI-大语言模型-DeepSeek赋能开发-Spring AI集成
  • 二、几何体BufferGeometry顶点笔记
  • docker 部署JAR
  • java框架--Mybatis 1
  • Java和SQL测试、性能监控中常用工具
  • 代码随想录算法【Day49】
  • 【SQL】SQL多表查询
  • Django 美化使用ModelForm的输入框
  • java听书项目
  • SolidWorks速成教程P3-7【零件 | 第七节】——3D设计打印手机支架+草图文本草图图片材质与质量属性测量
  • uni-app发起网络请求的三种方式
  • electron下载文件,弹窗选择下载路径,并通知下载进度