从零开始的软件测试学习之旅(九)jmeter直连数据库及jmeter断言,关联

news2025/2/27 20:54:34

jmeter直连数据库及断言,关联

    • jmeter直连数据库步骤
    • jmeter断言
    • jmeter逻辑控制器
      • if控制器
      • ForEach控制器
      • 循环控制器
    • Jmeter关联
      • Jmeter关联XPath提取器
      • Jmeter关联正则表达式提取器
      • 二者比较
      • 跨线程组关联
    • 每日复习

jmeter直连数据库
概念
这不叫直连:Jmeter -> java/python 提供的接口 -> 访问数据库
这才叫直连:Jmeter -> 直接访问数据库
作用:获取数据 (用于判断结果(断言))
实现
第一步:直连数据库, 获取所有 area_name 区域名称的值
第二步:取出第一个值, 并在百度上进行搜索

jmeter直连数据库步骤

1 编写脚本 并 导入第三方包因为 jmeter不具备连接数据库的能力

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

2 配置数据库连接信息
添加配置元件 -> JDBC Connection Configuration 配置数据库的连接信息
连接名称 mysql
dbc:mysql://localhost:3306/test
driver: 选择 com.mysql.jdbc.Driver
登录名: root
登录密码: 123456
在这里插入图片描述
在这里插入图片描述
接受多个值在这里插入图片描述

3 向数据库发送 sql 语句 并接受响应结果
线程组右键添加 -> 取样器 -> JDBC Request
选择 连接名称
输入sql语句
输入接收的变量名
在这里插入图片描述
在这里插入图片描述

4 处理接收到的响应结果 (如, 在百度上搜索)
在这里插入图片描述
注意:非浏览器访问百度会进行拦截,我们需要获取百度端口ID输入cookie的值中在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

jmeter断言

概念:程序驱动代替人工驱动, 判断响应结果是否符合预期

分类
1.响应断言 判断状态码和响应体
在这里插入图片描述

2.大小断言 判断相应内容的字节长度是否符合预期

作用 高效 安全

实现: 需求 直连数据库,获取 相应内容中包含脚本中的测试文本内容

jmeter逻辑控制器

应用场景

比如要下订单, 需要先登录:

  • 登录成功, 则可以继续下订单
  • 登录失败, 则不能下订单
if 登录接口, 执行结果为 成功:
	执行下订单请求的接口, 预期下订单成功
else:
	执行再次登录的接口, 预期结果为登录成功

此时, 就需要通过逻辑控制器实现

概念
控制接口(取样器)执行顺序的组件

  • 顺序执行
  • 分支执行 == if 语句 == 如果(if)控制器
  • 循环执行 == for/ while 语句 == ForEach控制器 / 循环控制器

作用

控制执行逻辑

if控制器

步骤

  1. 搭框架: 测试计划/ 线程组/ 查看结果数/ 添加一个用户定义的变量
  2. 核心: 以分支方式控制取样器的执行(逻辑控制器和取样器是父子级关系)
  3. 运行并查看结果

设置if条件

在这里插入图片描述

ForEach控制器

步骤

  1. 搭框架: 测试计划/ 线程组/ 查看结果数/ 添加一个用户定义的变量

  2. 核心: 以循环的方式控制取样器的执行(逻辑控制器和取样器是父子级关系)

  3. 运行并查看结果

    定义用户值
    在这里插入图片描述

设置输出变量
在这里插入图片描述

在http请求中设置请求参数
在这里插入图片描述

循环控制器

步骤

  1. 搭框架: 测试计划/ 线程组/ 查看结果数

  2. 核心: 以循环的方式控制取样器的执行(逻辑控制器和取样器是父子级关系)

  3. 运行并查看结果

    在这里插入图片描述

线程组和循环控制器的循环控制的区别

二者作用域不同, 相对来说循环控制器更灵活一点,线程组循环代表外循环,循环控制器为内部请求循环

Jmeter关联

应用场景: 测试考试交卷的接口, 需要学生先登录, 再进行交卷操作

概念:上一个请求的响应结果作为下一个请求的参数

作用:在接口测试中所涉及的不同接口间传递数据

需求 访问京东(请求A), 提取页面源码中的 title 标签的值, 传递给百度搜索(请求B)

Jmeter关联XPath提取器

步骤

  1. 搭框架
  2. 从响应结果中提取
    • 右键 http请求 -> 添加 -> 后置处理器 -> XPath提取器
  3. 调用提取到的数据, ${变量名}

在这里插入图片描述

在这里插入图片描述

Jmeter关联正则表达式提取器

步骤

  1. 搭框架
  2. 从响应结果中提取
    • 右键 http请求 -> 添加 -> 后置处理器 -> 正则表达式提取器
  3. 调用提取到的数据, ${变量名}

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

扩展

正则表达式(通过特殊符号来指定一定的匹配规则)

(.*?)  一般来说,使用这个规则可以解决大部分问题
() 表示截取区间
.  表示任意字符
*  表示出现任意次
.* 表示任意字符串
?  表示截取到第一个结束标记

二者比较

相同点

  • 二者实现流程一致
  • 都可以从响应结果提取数据

不同点

  • XPath提取器 只能从标签文档(如, html 或 xml)提取数据, 一般文本数据无法使用
  • 正则表达式提取器 既适用于标签文档又适用于一般文本文档, 作用范围更广

推荐大家重点掌握正则表达式提取器

跨线程组关联

需求

在前一个需求的基础上, 把请求A和B放到不同的线程组中, 并且设置了线程的执行顺序, 先A后B, 但是关联失败, 通过跨线组关联让它关联成功

原因: 变量作用域不对

解决: 将局部变量转换成全局变量

步骤

  1. 搭框架
  2. 把局部变量转换成全局变量
    1. 建立局部变量和全局变量的对应关系 (通过函数 __setProperty)
    2. 导出为全局变量 (通过 Bean Shell 取样器)
  3. 调用全局变量 (通过 __Property)

在这里插入图片描述

建立局部变量和全局变量的对应关系

在这里插入图片描述

在这里插入图片描述

放入BeanShell取样器,导出为全局变量
在这里插入图片描述

调用全局变量,放入http请求中使用

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

每日复习

Jmeter断言的概念是什么?
Jmeter最常用的断言类型是什么?

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

W801学习笔记二十四:NES模拟器游戏

之前已经实现了NES模拟器玩游戏。W801学习笔记九:HLK-W801制作学习机/NES游戏机(模拟器) 现在要在新版本掌机中移植过来。 1、把NES文件都拷贝到SD卡中。 这回不会受内存大小限制了。我这里拷贝了4个,还可以拷贝更多。 2、应用初始化中,加载…

Spring:OAuth2.0

文章目录 一、认证与授权二、OAuth2.0介绍 一、认证与授权 认证(Authentication)与授权(Authorization)在网络安全和系统管理中是两个重要的概念,它们各自有不同的作用和目标。 认证是验证确认身份以授予对系统的访问…

编辑员工信息——后端

需求: 在员工管理列表页面点击编辑按钮,跳转到编辑页面,在编辑页面回显员工信息并进行修改,最后点击保存按钮完成编辑操作。 代码开发流程: 点击编辑按钮,页面跳转到add.html,并在url中携带参…

高精度数学计算的瑞士军刀,mpmath库详解与应用示例

写在前言 hello,大家好,我是一点,专注于Python编程,如果你也对感Python感兴趣,欢迎关注交流。 做为一个一只脚已经踏进35岁大关的程序员,对于职场,几乎向上无望,已经没有太多的期待…

面向侧扫声纳目标检测的YOLOX-ViT知识精馏

面向侧扫声纳目标检测的YOLOX-ViT知识精馏 摘要IntroductionRelated WorkYOLOv-ViTKnowledge DistillationExperimental Evaluation Knowledge Distillation in YOLOX-ViT for Side-Scan Sonar Object Detection 摘要 在本文中,作者提出了YOLOX-ViT这一新型目标检测…

Springboot+vue项目零食销售商城

摘要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,零食销售商城当然也不能排除在外。零食销售商城是以实际运用为开发背景,运用软件工程原理和开发方法&#xff…

Yolov8实现loopy视频识别

1、前言 loopy是一个非常可爱的动漫角色(可爱粉色淀粉肠),闲来无事,打算用yolov8训练一个模型对loopy进行识别。 2、准备工作 先在网络上搜寻很多loopy的图片,然后将图片导入Lablel Studio软件进行标注,并…

Ansible---inventory 主机清单

一、inventory 主机清单 1.1、inventory介绍 hosts配置文件位置:/etc/ansible/hosts Inventory支持对主机进行分组,每个组内可以定义多个主机,每个主机都可以定义在任何一个或多个主机组内。 1.2、inventory中的变量 Inventory变量名含义…

Service 和 Ingress

文章目录 Service 和 IngressServiceEndpointservice 的定义代理集群外部服务反向代理外部域名Service 常用类型 IngressIngress-nginx安装使用 Service 和 Ingress service 和 ingress 是kubernetes 中用来转发网络请求的两个服务,两个服务用处不同,se…

python魔法方法是什么

魔法方法是python内置方法,不需要主动调用,存在的目的是为了给python的解释器进行调用,几乎每个魔法方法都有一个对应的内置函数,或者运算符,当我们对这个对象使用这些函数或者运算符时就会调用类中的对应魔法方法&…

【软考】模拟考卷错题本2024-05-07

1 项目路径 这里的图没有加载出来,没u哦i关系了。其实主要是的算出最长的路径中包含那些元素即可。这里是蒙圈了,没有考虑到还有更长的。要顾头也顾尾。 2 算法分析-贪心 该问题主要考核的是算法设计策略来达到目标的方式。主要的设计策略有:…

python实现图书馆借阅管理系统-文件存储

《面向对象》案例引入 通过本章的学习,请用面向对象思想实现《图书馆借阅管理系统》的登录注册页面和用户信息维护页面和图书借阅页面。 【功能要求】: 1、用面向对象思想改写上一章的《函数模块》案例引入。 2、增加图书借阅页面。 ①学生登录后,可以进入图书借阅页面,实现…

【自动驾驶|毫米波雷达】卡尔曼滤波

目录 一. 滤波器分类 二.卡尔曼滤波(Kalman Filter)原理 (1)定性理解 (2)定量推导 1. 预测阶段 2. 更新阶段 3. 卡尔曼增益 1)卡尔曼增益 2)如何理解卡尔曼增益? 三…

线程理论篇1

本章问题:什么是线程?线程的使用场景?什么是线程池?线程池是如何工作的?线程池共享了哪些资源?线程安全代码怎么写?什么是线程安全? 什么是线程? 线程是为了提高进程的效率。进程的地址空间中保存了cpu…

紧跟生成式AI暴雨发布新时代推理服务器

近日,暴雨发布最新训推一体AI服务器,以大容量内存和灵活的高速互连选项满足各种AI应用场景,最大可能支持扩展插槽,从而大幅提升智能算力性能,以最优的性能和成本为企业的模型训练推理落地应用提供更好的通用算力。 AIG…

重学java 31.API 3.数学相关类

看似不起波澜的日复一日,会突然在某一天让人看到坚持的意义 —— 24.5.8 数学相关类 1.Math类介绍 1.概述 数学工具类 2.作用 主要用于数学运算 3.特点 a、构造方法私有了 b、方法都是静态的 4.使用 类名直接调用 static int abs(int a) ->求参数的绝对值 stat…

ChatGLM-Math:强化数学能力

大型语言模型(LLM)在文本摘要、问答和角色扮演对话等语言任务上表现出色,在数学推理等复杂问题上也具有应用潜力。 但目前提高 LLM 数学问题解决能力的方法,往往会导致其他方面能力的下降。例如RLHF的方法,虽然可以提…

软考系列必过资料分享-系统架构师-系统分析师-信息系统项目管理师

建议,写在前面 知识点是公用的,原则上不分新旧。每年会有少部分的题目切合当前时间段(也是通过旧的知识演变的) 信息系统项目管理师证书 系统架构师证书 系统分析师证书 资料分享 关注公众号 回复 信息系统项目管理师资料 即可获取信息系统项目管理师资…

翻译《The Old New Thing》 - The new scratch program

The new scratch program - The Old New Thing (microsoft.com)https://devblogs.microsoft.com/oldnewthing/20050422-08/?p35813 Raymond Chen 2005年4月22日 译注:此篇是 翻译《The Old New Thing》 - The scratch program 姊妹篇,对 scratch 程序作…

【通信】电子科协通信专题

数字通信 最直观的通信方式-基带通信 问题:①无限大的带宽②天线体积