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

本文主要是介绍从零开始的软件测试学习之旅(九)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最常用的断言类型是什么?

这篇关于从零开始的软件测试学习之旅(九)jmeter直连数据库及jmeter断言,关联的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/973937

相关文章

Oracle数据库定时备份脚本方式(Linux)

《Oracle数据库定时备份脚本方式(Linux)》文章介绍Oracle数据库自动备份方案,包含主机备份传输与备机解压导入流程,强调需提前全量删除原库数据避免报错,并需配置无密传输、定时任务及验证脚本... 目录说明主机脚本备机上自动导库脚本整个自动备份oracle数据库的过程(建议全程用root用户)总结

虚拟机Centos7安装MySQL数据库实践

《虚拟机Centos7安装MySQL数据库实践》用户分享在虚拟机安装MySQL的全过程及常见问题解决方案,包括处理GPG密钥、修改密码策略、配置远程访问权限及防火墙设置,最终通过关闭防火墙和停止Net... 目录安装mysql数据库下载wget命令下载MySQL安装包安装MySQL安装MySQL服务安装完成

MySQL进行数据库审计的详细步骤和示例代码

《MySQL进行数据库审计的详细步骤和示例代码》数据库审计通过触发器、内置功能及第三方工具记录和监控数据库活动,确保安全、完整与合规,Java代码实现自动化日志记录,整合分析系统提升监控效率,本文给大... 目录一、数据库审计的基本概念二、使用触发器进行数据库审计1. 创建审计表2. 创建触发器三、Java

SQL server数据库如何下载和安装

《SQLserver数据库如何下载和安装》本文指导如何下载安装SQLServer2022评估版及SSMS工具,涵盖安装配置、连接字符串设置、C#连接数据库方法和安全注意事项,如混合验证、参数化查... 目录第一步:打开官网下载对应文件第二步:程序安装配置第三部:安装工具SQL Server Manageme

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

SpringBoot中如何使用Assert进行断言校验

《SpringBoot中如何使用Assert进行断言校验》Java提供了内置的assert机制,而Spring框架也提供了更强大的Assert工具类来帮助开发者进行参数校验和状态检查,下... 目录前言一、Java 原生assert简介1.1 使用方式1.2 示例代码1.3 优缺点分析二、Spring Fr

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

从原理到实战深入理解Java 断言assert

《从原理到实战深入理解Java断言assert》本文深入解析Java断言机制,涵盖语法、工作原理、启用方式及与异常的区别,推荐用于开发阶段的条件检查与状态验证,并强调生产环境应使用参数验证工具类替代... 目录深入理解 Java 断言(assert):从原理到实战引言:为什么需要断言?一、断言基础1.1 语

MySQL数据库中ENUM的用法是什么详解

《MySQL数据库中ENUM的用法是什么详解》ENUM是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用,下面:本文主要介绍MySQL数据库中ENUM的用法是什么的相关资料,文中通过代码... 目录mysql 中 ENUM 的用法一、ENUM 的定义与语法二、ENUM 的特点三、ENUM 的用法1

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示