Jmeter使用 -1

1 接口测试

1.1 为什么要进行接口测试
  • 接口测试能够绕过前端校验,对后端的接口处理逻辑进行测试(数据的边界/格式/类型)

  • 在一些需要重复测试的需求中,接口自动化的效率比手工执行效率高

1.2 接口测试流程
  1. 熟悉API接口文档(接口业务,地址,端口,鉴权,入参,出参,错误码等信息)

  2. 编写接口用例后进行用例评审

  3. 执行用例

用例编写

  • 正例:输入正常的参数,接口能够正常返回

  • 反例:

    • 鉴权异常:Cookie / Token 为空/过期/错误

    • 参数异常:为空 / 长度异常 / 类型异常 / 边界异常 / 缺少必要参数

    • 其他异常:调用次数限制,分页场景

    • 兼容异常:接口被多端调用 ,版本兼容

2 Jmeter基础知识

2.1 Jmeter文件
  • Jmeter/bin/jmeter.properties 是Jmeter的全局配置文件(设置中文 / Cookie信息管理)

  • Jmeter/bin/jmeter.bat 是Jmeter的启动文件

2.2 Jmeter组件(执行顺序从上到下)
  1. 测试计划:存放测试线程组的容器

  2. 线程组:代表执行的用户数量

  3. 配置元件:配置请求信息(请求头,Cookie)

  4. 前置处理器:请求之前的操作

  5. 定时器:延时发送请求

  6. 逻辑控制器:处理请求逻辑

  7. 取样器:发送请求的最小单元

  8. 后置处理器:请求之后的操作

  9. 断言:对响应结果进行判断

  10. 监听器:收集测试结果

2.3 组件作用域
  • 组件可以作用于同级组件

  • 组件可以作用于统计组件下的下级组件

  • 组件可以作用于上级组件

2.4 使用Jmeter发送请求
  1. 创建测试计划

  1. 在测试计划中添加线程组

  2. 在线程组下添加配置元件

    1. 在线程组添加HTTP Cookie头管理器(实现Cookie自动关联)

    2. 在线程组中添加HTTP 请求默认值(设置默认协议,域名,端口,编码格式)

    3. 在线程组中添加HTTP信息头管理器(公共请求头管理)

  3. 在线程组中添加HTTP取样器,填写请求信息

  4. 在HTTP取样器下添加前置处理器 / 后置处理器(提取器) / 断言

3 Jmeter HTTP请求参数类型

参数:用于在HTTP请求的URL查询字符串或者是在表单数据中发送键值对数据

  • 发送GET请求,会作为URL查询字符串拼接在URL之后

  • 发送POST请求,会作为请求体数据(表单)

消息体数据:数据作为请求体内容传输,通常用于传输JSON类型的参数

  • 需要设置正确的Content-Type头,以告知服务器数据的格式。

文件上传:用于传输二进制数据

  • 文件名称(文件路径) 参数名称 MIME类型(填写multipart/form-data)

4 Jmeter提取器

4.1 正则提取器

名称:提取器名称

注释:提取器备注信息

提取器作用范围:主请求是HTTP取样器配置的请求,子请求是由主请求触发的嵌套请求(重定向/嵌入资源:例如在HTML页面中会请求图片,CSS样式,JS文件等,都会触发子请求)

  • Main Sample and sub-samples:对主请求以及子请求生效(从主请求/子请求中提取数据)

  • Main Sample only:仅对主请求生效(默认选项)

  • sub-samples only:仅对子请求生效

要检查的响应字段:指定从哪个部分提取数据

  • 主体:响应主体(推荐选择)

  • Body(unescaped):响应主体,不转义

  • Body as a Document:通过Apache Tika作为文档处理响应主体

  • 信息头:响应头

  • Requests Headers:请求头(从请求中进行提取)

  • URL:请求的URL。

  • 响应代码:响应状态码(例如200)。

  • 响应信息:响应消息(例如“OK”)

引用名称:后续请求引用该数据使用的名称,通过 ${引用名称} 来使用该变量

正则表达式:提取数据的正则表达式,一个表达式中可以有多个捕获组

  • 捕获组:用()括起来的字符串称为捕获组

  • {"code":(.*?),"message":"(.*?)","data":null} 此处正则表达式有两个捕获组,会从响应中匹配符合该正则表达式的字符串

  • 访问捕获组:在匹配成功后,Jmeter会为每个捕获组分配一个编号,从1开始,可以通过${引用名称_gX}(X为捕获组编号)来访问捕获组的内容

模板:用于从正则匹配结果中创建字符串的模板

使用 $数字$ 表示捕获组-- $1$ 表示第一个捕获组 ,多个捕获组可以自定义连接: $1$_$2$ (使用下划线连接)

匹配数字:指定提取哪个匹配结果。

0 表示随机匹配 , 1 表示匹配第一个符合条件(推荐选项),N 表示匹配第N个 , -1 表示提取所有匹配结果,并存储到多个变量中,多个变量名称为 引用名称_X(1,2,3...)

缺省值:查询失败给变量设置的默认值

使用空默认值:勾选此选项后,如果没有找到匹配项,则变量将被设置为空字符串

正则提取器提取失败可能原因

  • 提取器的作用范围错误或者是提取器提取的响应字段错误,检查正则提取器提取范围和提取字段

  • 正则表达式匹配错误,可以在察看结果树处对正则表达式进行测试,如果提取成功,则说明表达式正确,提取失败,则说明表达式错误

4.2 JSON提取器

  • 只能针对JSON数据生效

JSONPath的提取表达式

  • 表达式 $.节点Key.节点Key ,

  • 取所有子节点,使用 $.* 提取所有子节点

  • 如果key返回的value是列表,列表取值通过下标,下标从0开始

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

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

相关文章

GitHub 趋势日报 (2025年07月16日)

📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图2415markitdown570claude-code434ART330erpnext150MusicFree146rustdesk129vanna80…

Python+Tkinter制作音频格式转换器

我们将使用Python的Tkinter库来构建一个音频格式转换器界面。由于音频转换需要实际的处理,我们将使用pydub库(需要安装)来进行音频格式转换。同时,我们会使用ffmpeg作为后端,因此请确保系统中已安装ffmpeg并添加到环境…

Haproxy算法精简化理解及企业级高功能实战

文章目录4. Haproxy的算法4.1 静态算法4.1.1 static-rr:基于权重的轮询调度1. 示例:4.1.2 first1. 示例2. 测试效果:4.2 动态算法4.2.1 roundrobin1. 示例2. 动态调整权重4.2.2 leastconn1. 示例4.3 其他算法4.3.1 source1. 示例2. 测试4.3.2…

git fork的项目远端标准协作流程 仓库设置[设置成upstream]

这是一个在开源协作中非常常见的配置。 简单来说,upstream 在这里指的是你 Fork 来的那个原始的、官方的仓库。 下面我们来详细解释一下这个 git remote -v 输出的含义: 1. 两条“遥控器” (Remotes) 你的 git 配置了两个远程仓库的地址,就像…

[FFmpeg] 输入输出访问 | 管道系统 | AVIOContext 与 URLProtocol | 门面模式

链接:https://trac.ffmpeg.org/ docs:FFmpeg FFmpeg 是一个强大的多媒体框架,旨在处理媒体处理的各个阶段。 它就像一个数字媒体工厂,包含以下部门:打包/解包(容器处理)、 转译/压缩&#xff…

微服务的编程测评系统2

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言工程创建创建ck-oj创建oj-modules创建具体微服务oj-system推送码云管理员登录逻辑分析docker安装mysqldocker客户端docker desktop安装安装mysqlmysql-plus和数据…

AR智能巡检:电力运维的数字化变革

在电力行业快速发展的当下,传统运维方式已难以满足现代电网对高效、安全的需求。近年来,增强现实(AR www.teamhelper.cn )技术的兴起为电力巡检带来了全新的解决方案。通过实时数据可视化、远程协作和智能分析,AR技术…

NeRF和3DGS原理详细

NeRF和3DGS一、传统三维表征方法1.1 显示表征1.2 隐式表征二、NeRF(Nerual Radiance Field)2.1 NeRF场景表示2.2 NeRF训练流程2.3 NeRF体渲染2.4 NeRF位置编码2.5 NeRF体素分层采样(Volume Hierarchical Sampling)2.6 NeRF网络结构…

035_ClaudeCode_MCP_介绍

035_ClaudeCode_MCP_介绍 摘要 Model Context Protocol(MCP)是一个开放的标准化协议,专为大型语言模型提供上下文数据而设计。作为Claude Code生态系统的重要组成部分,MCP如同"AI应用程序的USB-C端口",提供…

Python 程序无法找到 Oracle 的 64 位客户端库 (libclntsh.so)

数据库错误: DPI-1047: Cannot locate a 64-bit Oracle Client library: "libclntsh.so: cannot open shared object file: No such file or directory". See https://oracle.github.io/odpi/doc/installation.html#linux for help 这个错误表明 Python 程序无法找到…

Kubernetes常用命令总结

文章目录Kubernetes常用命令总结1. 集群管理命令kubectl cluster-infokubectl get nodeskubectl describe node <node-name>kubectl top nodes2. Pod相关命令kubectl get podskubectl get pods -o widekubectl describe pod <pod-name>kubectl logs <pod-name&g…

roboflow使用教程

如何利用roboflow标注自己的训练集、调用开源数据集 官网&#xff1a;Roboflow: Computer vision tools for developers and enterprises&#xff08;国内代理进不去&#xff09; 先注册登陆进去 训练自己的数据集 点击“New Project”,名字按照自己的需求来 我不想写了&am…

IDEA中使用Tomcat两种方式

Catalogue1 集成本地Tomcat2 Tomcat Maven插件&#xff08;推荐&#xff09;1 集成本地Tomcat 将本地Tomcat集成到Idea中&#xff0c;然后进行项目部署即可 点击编辑配置 点击加号 添加local的Tomcat 配置Application Server 可以修改一下Name 至此&#xff0c;配置完成 …

服务器上的文件复制到本地 Windows 系统

在 Windows 上通过 SSH 连接到 Linux 服务器后&#xff0c;如果需要将服务器上的文件复制到本地 Windows 系统&#xff0c;可以使用以下几种方法&#xff1a;方法 1&#xff1a;使用 scp&#xff08;Secure Copy&#xff09;命令 scp&#xff08;基于 SSH 的安全复制&#xff0…

大语言模型置信度增强实战指南

LLM怎么简单增强置信度 在大语言模型(LLM)的应用中,“置信度增强”核心目标是提升模型输出的可靠性(减少错误/幻觉) 并让模型更清晰地表达自身的不确定性(避免“一本正经地胡说”)。常用方式可分为“输出优化”“知识补充”“校准调整”三大类, 一、基于“推理过程优…

NLP:人名分类器案例分享

本文目录&#xff1a;一、案例介绍&#xff08;一&#xff09;关于人名分类&#xff08;二&#xff09;人名分类数据预览二、案例步骤&#xff08;一&#xff09;导入工具包&#xff08;二&#xff09;数据预处理1. 获取常用的字符数量2. 国家名种类数和个数3.读数据到内存4.构…

3分钟实战!用DeepSeek+墨刀AI生成智能对话APP原型图

如今&#xff0c;AI生成原型图已经逐渐成为产品经理的一项常用辅助技能&#xff0c;不仅能加快设计进程&#xff0c;还能显著提升前期沟通效率。最近我尝试将大语言模型工具与AI原型工具结合测试&#xff0c;目标是看看是否能生成更高质量的原型页面。直到我使用DeepSeek墨刀AI…

CentOS网络配置与LAMP环境搭建指南

一、CentOS配置网络1、查看网卡名称ifconfig2、找到网卡对应配置文件网卡存放路径 &#xff1a;/etc/sysconfig/network-scriptscd /etc/sysconfig/network-scripts3、修改网卡对应配置文件使用 vi/vim 打开文件&#xff0c;查看以下内容vim ifcfg-ens33将ONBOOTno 改为 ONBOOT…

TinyMCE 富文本编辑器在 vue2 中的使用 @tinymce/tinymce-vue

TinyMCE是一款功能强大、高度可定制的富文本编辑器。官方文档 TinyMCE DOCS tinymce-vue包的版本4及更高版本支持Vue.js 3。但不支持Vue.js 2.x。对于Vue.js 2。X应用程序&#xff0c;使用tinymce-vue版本3。 安装TinyMCE和Vue集成包 npm install tinymce/tinymce-vue3 tiny…

LP-MSPM0G3507学习--04GPIO控制

关键函数&#xff1a; DL_GPIO_readPins(GPIO_Regs* gpio, uint32_t pins):同时读一组端口DL_GPIO_writePins(GPIO_Regs* gpio, uint32_t pins)&#xff1a;同时写一组端口DL_GPIO_setPins(GPIO_Regs* gpio, uint32_t pins)&#xff1a;对指定某组端口的某管脚置高DL_GPIO_cle…