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

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.mzph.cn/news/836328.shtml

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

相关文章

一套MySQL读写分离分库分表的架构,被秀到了!

📢📢📢📣📣📣 作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验, Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主,全网粉丝10万 擅长主流Oracle、My…

laravel,webman,hyperf,thinkphp推荐哪一个?

laravelwebmanhyperfthinkphp流行程度国内流行,欧洲特别是法国,美国,日本很多使用主要在国内流行,少量国外使用主要国内流行,少量国外使用国内流行,国外俄罗斯有使用性能fpm多进程模式,性能一般…

数据增强,迁移学习,Resnet分类实战

目录 1. 数据增强(Data Augmentation) 2. 迁移学习 3. 模型保存 4. 102种类花分类实战 1. 数据集 2.导入包 3. 数据读取与预处理操作 4. Datasets制作输入数据 5.将标签的名字读出 6.展示原始数据 7.加载models中提供的模型 8.初始化…

Android Studio在android Emulator中运行的项目黑屏

前言: 最近在做一个Android相关的小项目,因为之前这方面的项目做的比较的少。今天在使用虚拟机调试的时候经常出现一些莫名其妙的问题,经过自己多次的尝试和搜索终于解决了这些问题。 问题: 每次run(运行&#xff09…

Android之监控APP崩溃获取日志的方法,Bugly和其他方法

一、APP中集成Bugly 1、相关地址 完整的集成步骤请参考光那个文档,Bugly Android SDK集成文档 集成后,APP的崩溃日志会上传后台:Bugly官网,(后台管理) 2、步骤 (1)依赖 api co…

程序员·职场效能必修宝典㊻:如何快速的融入团队

📖 该文隶属 程序员职场效能必修宝典✍️ 作者:哈哥撩编程(视频号同名) 博客专家全国博客之星第四名超级个体COC上海社区主理人特约讲师谷歌亚马逊演讲嘉宾科技博主极星会首批签约作者🏆 推荐专栏: 🏅 程序员:职场关键角色通识宝典🏅

【机器学习300问】88、什么是Batch Norm算法?

一、什么是Batch Norm? (1)Batch Norm的本质 神经网络中的Batch Normalization(批量归一化,简称BatchNorm或BN)是一种改进神经网络训练过程的规范化方法,BatchNorm的主要目的是加速神经网络的训…

构建教育新未来:智慧校园平台的深度解读与全景呈现

引言 在全球数字化转型的大潮中,智慧校园平台作为教育信息化的重要载体,正以前所未有的姿态颠覆传统的教育模式,引领教育行业步入一个崭新的时代。这个融合了大数据、人工智能、云计算、物联网等一系列前沿科技的平台,以其强大的功…

python中的装饰器,例子说明

在Python中,嵌套装饰器是指在一个函数上应用多个装饰器。每个装饰器都可以为函数添加一些特定的功能。以下是一个稍微复杂一些的例子,我们将创建一个记录日志和验证权限的嵌套装饰器。 ### 例子:记录日志和权限验证的嵌套装饰器 假设我们正…

mybatis-plus使用指南(1)

快速开始 首先 我们 在创建了一个基本的springboot的基础框架以后&#xff0c;在 pom文件中 引入 mybatisplus的相关依赖 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5…

从0到1实现一个ui组件库

0.搭建vue pnpm create vue 1.下载依赖 {"name": "你的ui名","version": "1.0.6","type": "module","license": "MIT","keywords": ["vue3","components",&…

vue3 底层实现原理

设计思路 声明式UI(推荐使用): 即 template 形式(模板,模板的编译依赖于编译器),会被编译器的程序编译为渲染函数,再由渲染器渲染为真实 DOM 编译器:将模板编译为渲染函数,在编译的过程中编译器有能力分析动态内容,并在编译阶段把这些信息提取出来,把附带静动态属…

PyTorch的卷积和池化

卷积计算 input 表示输入的图像filter 表示卷积核, 也叫做滤波器input 经过 filter 的得到输出为最右侧的图像&#xff0c;该图叫做特征图 卷积的计算是将卷积核放入左上角&#xff0c;在局部区域间做点积&#xff0c;然后将卷积核在Input上面依次从左向右&#xff0c;从上到下…

免费证件照一键换底色

最近星期天在家搞了一个小工具&#xff0c;在这里分享下! 废话不多说看看效果&#xff1a; 效果还不错&#xff0c;需要的可以联系我!!!!!!!!! 别的网上可都是一次五块钱这种。太贵了。。&#xff01;&#xff01;

【Dash】开始学习dash

安装Dash 网上很多安装dash的教程&#xff0c;不再赘述 开始Dash 一个dash页面的基本写法 # dash 的基本写法 import dash from dash import html,dcc,callback,Input,Output# 创建一个 dash 应用 app dash.Dash()# 定义布局&#xff0c;定义一个输入框和一个输出框 app.l…

VS项目Debug下生成的EXE在生产机器上运行

使用Visual Studio开发应用程序时&#xff0c;为了临时在非开发机上看一下效果&#xff0c;就直接把Debug下的文件全部拷贝到该机器上&#xff0c;直接双击exe运行。双击之后&#xff0c;没有直接打开应用程序&#xff0c;而是弹出了一个Error弹框。  赶快在网上搜了一遍&…

整理好了!2024年最常见 100 道 Java基础面试题(四十一)

上一篇地址&#xff1a;整理好了&#xff01;2024年最常见 100 道 Java基础面试题&#xff08;四十&#xff09;-CSDN博客 八十一、equals 和 hashCode 的区别和联系&#xff1f; 在Java中&#xff0c;equals() 方法和 hashCode() 方法是对象比较和散列表&#xff08;如 Hash…

MFC窗口更新与重绘

窗口更新与重绘 窗口或控件更新其外观的情况通常包括以下几种&#xff1a; 窗口大小变化&#xff1a; 当用户调整窗口大小时&#xff0c;窗口的客户区大小会改变&#xff0c;需要重新绘制窗口内容以适应新的大小。 窗口重叠或暴露&#xff1a; 当窗口被其他窗口遮挡部分或完…

axios、fetch和ajax

axios、fetch和ajax都是在前端开发中用于发送HTTP请求的工具或技术&#xff0c;但它们之间存在一些明显的区别。 ajax&#xff1a; Ajax即Asynchronous Javascript And XML&#xff08;异步JavaScript和XML&#xff09;&#xff0c;是一种在2005年被提出的技术&#xff0c;用于…

「 安全设计 」68家国内外科技巨头和安全巨头参与了CISA发起的安全设计承诺,包含MFA、默认密码、CVE、VDP等七大承诺目标

美国网络安全和基础设施安全局&#xff08;CISA&#xff0c;CyberSecurity & Infrastructure Security Agency&#xff09;于2024年5月开始呼吁企业是时候将网络安全融入到技术产品的设计和制造中了&#xff0c;并发起了安全设计承诺行动&#xff0c;该承诺旨在补充和建立现…