jmeter之接口功能自动化
一、接口测试简述
接口:用来连接前端,后端还有移动端的程序模块。由于不同端的工作进度不一样,需要对最开始出来的接口进行接口测试。
接口分类:POST,GET,PUT,DELETE。
POST请求的数据是放在WebForm里面的,以表单的形式提交;GET请求的数据是拼接在URL中的,以URL的形式提交数据。
不同接口类型的差异:
1.参数提交的方式;
2.请求数据的大小;
3.安全性。
接口测试主要测试要点:
1、检查请求是否成功,默认请求成功时状态码是200
2、检查返回数据的正确性(即返回的数据是否与预期结果一致)与格式
3、检查接口的容错性,即传递数据的类型错误时是否可以处理
4、接口参数的边界值。例如,传递的参数足够大或为负数时,接口是否可以正常处理
5、接口的性能,接口处理数据的时间也是测试的一个方法。这直接影响用户的使用体验
6、接口的安全性
二、jmeter工具栏及常用组件介绍
1、Jmeter常用组件介绍——HTTP请求(GET)
线程组->添加->Sampler->HTTP请求
2、Jmeter常用组件介绍——HTTP请求(POST)
线程组->添加->Sampler->HTTP请求
3、Jmeter常用组件介绍——响应断言
HTTP请求->添加->断言->响应断言
4、Jmeter常用组件介绍——HTTP请求默认值
线程组->添加->配置元件->JDBC Connection Configuration
5、Jmeter常用组件介绍——HTTP信息头管理器
线程组->添加->配置元件->HTTP信息头管理器
6、Jmeter常用组件介绍——用户定义的变量
线程组->添加->监听器->查看结果树
7、Jmeter常用组件介绍——聚合报告
线程组->添加->监听器->聚合报告
8、Jmeter常用组件介绍——JDBC Connection Configuration
线程组->添加->配置元件->JDBC Connection Configuration
9、Jmeter常用组件介绍——JDBC Request
线程组->添加->配置元件->JDBC Request
10、Jmeter常用组件介绍——正则表达式提取器
线程组->添加->后置处理器->正则表达式提取器
三、接口测试过程
4、问题
一、如何引用变量?
1、定义变量 给需要被引用的参数值定义一个变量名,变量名是唯一的。 2、引用变量 在需要使用参数值的地方引用变量名,引用格式为: ${变量名} PS:引用变量名用到的符号均为英文字符。
二、当接口有依赖关系,即某个接口的输入参数是另一个接口的请求结果时,应该如何进行参数传递?
1、当依赖接口所需入参出现在被依赖接口的返回结果中时,
在被依赖接口的【 HTTP请求】下添加【正则表达式提取器】,使用(.+?)将所需数据从返回结果中提取出来
2、当依赖接口所需入参没有在被依赖接口的返回结果中出现时
在被依赖接口的HTTP请求后面添加【 JDBC Connection Configuration 】和【 JDBC Request】,从数据库中查询需要的数据,并在【 JDBC Request】下添加【正则表达式提取器】使用(.+?)将所需参数从查询结果中提取出来
步骤流程:请求‘注册短信验证码’接口
短信验证码验证’接口依赖‘注册短信验证码’接口
1、请求发送验证码接口
2、添加JDBC Connection Configuration连接数据库
3、添加JDBC Request查询‘注册短信验证码’接口产生的数据
4、查看数据库查询结果
5、提取验证码
6、引用验证码名称,请求‘短信验证码验证’接口
三、为什么要连接数据库进行数据查询?
当接口之间有依赖关系,但是被依赖接口的返回结果中并没有直接返回依赖接口所需的数据时,便需要从数据库中查询出需要的测试数据。 例如: ‘短信验证码验证’需要获取‘注册短信验证码’生成的验证码,但‘注册短信验证码’的返回结果为: {“StatusCode”:200,“DataCount”:0,“Data”:1,“Error”:null},并没有直接返回验证码,因此需要连接数据库查询接口生成的验证短信,并用正则表达式提取出验证码,同时定义一个引用名称,便于‘短信验证码验证’引用。
四、当多个接口可以串成一个完整业务流程时如何处理?
前提:熟悉业务逻辑和接口所实现的功能
最好实行新增操作,然后进行一系列的操作后再删除
例如:
1.新增标签
2.新增/删除指定标签下的医生/药店/商品,同时更改标签名称
3.获取指定标签下的医生/药店/商品详情
4.删除指定标签下的医生/药店/商品
5.删除标签
以上5个接口可以按照顺序串成一个完整业务流程,在Jmeter中需要按照业务逻辑顺序来安排接口先后位置。
具体实现如下:
1.请求‘新增标签’;
2.从数据库中查询新增的标签ID,引用标签ID,请求‘新增/删除指定标签下的医生/药店/商品,同时更改标签名称’;
3.引用标签ID,请求‘获取指定标签下的医生/药店/商品详情’;
4.引用标签ID,请求‘删除指定标签下的医生/药店/商品’;
5.引用标签ID,请求‘删除标签’。
如此可以保证测试数据的一致性,且不会产生过多垃圾数据。
五、如果生成的csv测试报告文件显示乱码怎么办?
1.用txt方式打开csv文件
2.文件另存为UTF-8编码格式,替换原来的csv文件
3.打开csv文件优化测试报告
4.另存为.xlsx格式
PS:最后一步一定要另存为普通excel格式,否则数据位置会错乱。
相关文章:

jmeter之接口功能自动化
一、接口测试简述 接口:用来连接前端,后端还有移动端的程序模块。由于不同端的工作进度不一样,需要对最开始出来的接口进行接口测试。 接口分类:POST,GET,PUT,DELETE。 POST请求的数据是放在…...
【openGL4.x手册07】几何着色器
目录 一、说明二、关于几何着色器三、原始输入/输出规范3.1 实例 四、输入五、输出5.1 分层渲染 六、输出限制 一、说明 几何着色器对于渲染管线设计是一个新生事物;目前对应于几何着色器的资料不多,并且说法不一,因此如何用几何着色器&…...

鸿蒙OpenHarmony开发实战:【MiniCanvas】
介绍 基于OpenHarmony的Cavas组件封装了一版极简操作的MiniCanvas,屏蔽了原有Canvas内部复杂的调用流程,支持一个API就可以实现相应的绘制能力,该库还在继续完善中,也欢迎PR。 使用说明 添加MiniCanvas依赖 在项目entry目录执行…...

【JavaEE初阶系列】——单例模式 (“饿汉模式“和“懒汉模式“以及解决线程安全问题)
目录 🚩单例模式 🎈饿汉模式 🎈懒汉模式 ❗线程安全问题 📝加锁 📝执行效率提高 📝指令重排序 🍭总结 单例模式,非常经典的设计模式,也是一个重要的学科&#x…...
flutter-elinux的基本介绍及安装调试
搜集到两个很有用的网站: 1、flutter-elinux的基本介绍:https://juejin.cn/post/7257285697383612453 2、flutter-elinux的安装调试等:https://github.com/sony/flutter-elinux/wiki 其中,在flutter-elinux设置环境变量时&#…...

二分查找法总结
目录 1、思路讲解(LC704)2、代码思路讲解(循环不变量)(1) 左闭右闭(2)左闭右开(3)总结:左开右闭和左闭右开(4)复杂度分析 …...

Python工具-清理Unity(批量深度)清理U3D项目工程保留关键工程文件
前沿 1. Unity工程越来越多,很久不用的工程里存在了很多无用的大文件夹,极大的影响电脑容量。 2. 我电脑里面U3D工程只有17个,但容量就高达60GB,使用自己编写的工具清理后,减到了30GB多。清理了不是很重要的文件和文件…...

vue 安装脚手架报错 certificate has expired
vue 安装脚手架的时候报错,报错信息如下: 错误信息:npm ERR! request to https://registry.npm.taobao.org/vue%2fcli failed, reason: certificate has expired 翻译:npm ERR!请求到https://registry.npm.taobao.org…...
使用 Python 快速开始机器学习
🔗 快速开始 PyTorch|使用 Python 建立深度学习模型 认识 PyTorch 1.1 Torch 与 PyTorch 1.2 安装 PyTorch 1.3 验证安装并查看 PyTorch 版本PyTorch 深度学习模型的建立范式 2.1 准备数据 2.2 定义模型 2.3 训练模型 2.4 评估模型 2.5 做出预测为预测任…...

CCDP.02.OS正确部署后的Dashboard摘图说明
前言 在部署成功OpenStack后,应该可以在浏览器打开Dashboard,并对计算资源(这里主要是指VM)进行管理,也可以在Dashboard上面查看OpenStack是否存在错误,下面,已针对检查的关键点,用红…...

【计算机视觉】Gaussian Splatting源码解读补充(二)
第一部分 本文是对学习笔记之——3D Gaussian Splatting源码解读的补充,并订正了一些错误。 目录 三、相机相关scene/cameras.py:class Camera 四、前向传播(渲染):submodules/diff-gaussian-rasterization/cuda_rast…...
Java transient 关键字
Java字段不想序列化怎么办 在 Java 中,如果某个字段不想被序列化(即不希望被写入到序列化的数据流中),可以使用 transient 关键字进行标记。通过在字段前加上 transient 关键字,可以告诉 Java 序列化机制忽略该字段&am…...
前端工程化(三)邂逅Webpack和打包过程
目录 Vue项目加载Webpack 安装Webpack的默认打包创建局部的 webpack Vue项目加载 JavaScript的打包: 将ES6转换成ES5的语法; TypeScript的处理,将其转换成JavaScript; Css的处理: CSS文件模块的加载、提取&a…...

Gradle v8.5 笔记 - 从入门到进阶(基于 Kotlin DSL)
目录 一、前置说明 二、Gradle 启动! 2.1、安装 2.2、初始化项目 2.3、gradle 项目目录介绍 2.4、Gradle 项目下载慢?(万能解决办法) 2.5、Gradle 常用命令 2.6、项目构建流程 2.7、设置文件(settings.gradle…...

Jmeter-基础元件使用(二)-属性及对数据库简单操作
一、Jmeter属性 当我们想要在不同线程组中使用某变量,就需要使用属,此时Jmeter属性的设置需要函数来进行set和get操作 1.创建set函数 2.然后采用Beanshell取样器进行函数执行 3.调用全局变量pro_id 4.将上面生成的函数字符串粘贴到另一个线程组即可…...

docker 的八大技术架构(图解)
docker 的八大技术架构 单机架构 概念: 应用服务和数据库服务公用一台服务器 出现背景: 出现在互联网早期,访问量比较小,单机足以满足需求 架构优缺点: 优点:部署简单,成本低 缺点࿱…...
LeetCode-热题100:131. 分割回文串
题目描述 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。 示例 1: 输入: s “aab” 输出: [[“a”,“a”,“b”],[“aa”,“b”]] 示例 2: 输入&am…...

常用相似度计算方法总总结
一、欧几里得相似度 1、欧几里得相似度 公式如下所示: 2、自定义代码实现 import numpy as np def EuclideanDistance(x, y):import numpy as npx np.array(x)y np.array(y)return np.sqrt(np.sum(np.square(x-y)))# 示例数据 # 用户1 的A B C D E商品数据 [3.3…...

【漏洞复现】WordPress Plugin NotificationX 存在sql注入CVE-2024-1698
漏洞描述 WordPress和WordPress plugin都是WordPress基金会的产品。WordPress是一套使用PHP语言开发的博客平台。该平台支持在PHP和MySQL的服务器上架设个人博客网站。WordPress plugin是一个应用插件。 WordPress Plugin NotificationX 存在安全漏洞,该漏洞源于对用户提供的…...

AI新工具(20240322) 免费试用Gemini Pro 1.5;先进的AI软件工程师Devika;人形机器人Apptronik给你打果汁
✨ 1: Gemini Pro 1.5 免费试用Gemini Pro 1.5 Gemini 1.5 Pro是Gemini系列模型的最新版本,是一种计算高效的多模态混合专家(MoE)模型。它能够从数百万个上下文Token中提取和推理细粒度信息,包括多个长文档和数小时的视频、音频…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...

CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...

《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...