当前位置: 首页 > article >正文

Jmeter接口测试与性能测试详解

点击文末小卡片免费获取软件测试全套资料资料在手涨薪更快jmeter是apache公司基于java开发的一款开源压力测试工具体积小功能全使用方便是一个比较轻量级的测试工具使用起来非常简单。因为jmeter是java开发的所以运行的时候必须先要安装jdk才可以。jmeter是免安装的拿到安装包之后直接解压就可以使用同时它在linux/windows/macos上都可以使用。jmeter可以做接口测试和压力测试。其中接口测试的简单操作包括做http脚本发get/post请求、加cookie、加header、加权限认证、上传文件、做webservice脚本、参数化、断言、关联正则表达式提取器和处理json-json path extractor和jmeter操作数据库等等。接口测试Jmeter-http接口脚本一般分五个步骤1添加线程组2添加http请求3在http请求中写入接入url、路径、请求方式和参数4添加查看结果树5调用接口、查看返回值jmeter 发get请求jmeter 发post请求jmeter 添加cookie 需要在线程组里添加配置元件—HTTP Cookie 管理器jmeter 添加header 需要在线程组里面添加配置元件—HTTP信息头管理器jmeter 上传文件jmeter 参数化 入参经常变化的话则可以设置成一个变量方便统一修改管理如果入参要求随机或可多种选择则通过函数生成器或者读取文件形成一个变量。所以参数化有三种方式用户定义的变量、函数生成器、读取文件。1用户定义的变量需要添加配置元件-用户定义的变量。2函数生成器需要用到函数助手功能可以调用函数生成一些有规则的数据。常用的几个函数有_uuid、_random、_time。_uuid会生成一个随机唯一的id比如在避免java请求重发造成未处理数据太多的情况接口请求可加一个唯一的请求id唯一的响应id进行一一对应随机数_random可以在你指定的一个范围里取随机值取当前时间_time一些时间类的入参可以使用,如{__time(,)} 是生成精确到毫秒的时间戳、{__time(/1000,)}是生成精确到秒的时间戳、${__time(yyyy-MM-dd HH:mm:ss,)} 是生成精确到秒的当前时间。3从文件读取需要在线程组里面添加配置元件-CSV Data Set Config 其中Recycle on EOF:设置True后允许循环取值具体的例子如下所示jmeter 断言jmeter断言用来检测响应返回的结果和我们预期的是否一致。若针对整个线程组的话则在线程组下添加断言-响应断言若只是针对某个请求的话则在请求下添加断言-响应断言。jmeter关联接口请求之间存在参数调用为了保存这个参数建立jmeter关联。比如登陆接口和购买商品接口购买商品接口就需要登陆接口返回的token等登陆信息jmeter关联就可以保存这个token信息方便购买商品接口使用。jmeter关联可以通过二种方式来完成获取到返回结果中指定的值。它们分别是正则表达式提取器、 json path extractor。1正则表达式提取器 若想获取的返回值未匹配到可以把正则表达式两边匹配的数据扩大点。a. 关于正则表达式()括起来的部分就是要提取的。 .匹配除换行外的任何字符串。 代表号前面的字符必须至少出现一次一次或多次。 ?代表前面的字符最多可以出现一次在找到第一个匹配项后停止0次或1次。 代表号前面的字符可以不出现也可以出现一次或者多次0次、1次或者多次 (.*)贪婪模式匹配尽可能多的字符 .*?或.?匹配尽可能少的字符一旦匹配到第一个就不往下走了。b. 关于模板若想提取多个值的话比如是a和b这两个值则可以写成12。无论要提取多少个值引用名称就是一个的比如名称为ididgo:获取整个字符串ab{id_g1}获取的是a2json path extractorjmeter通过安装json path extractor插件来处理json串提取json串中的字段值。插件的下载地址JMeter Plugins :: JMeter-Plugins.org下载完成解压后直接把lib文件夹放到jmeter相应目录下面。特别说明jmeter 2.xx左右的版本尝试过无法使用该插件在jmeter 3.xx左右的版本装完插件后能正常使用。 需要在请求下创建后置处理器-jpgc-JSON Path Extractor具体的实例如下所示jmeter 操作数据库操作数据库基本有四个步骤1导入mysql的jdbc的jar包2创建数据库的连接配置线程组里添加配置元件-JDBC Connection Configuration3线程组里添加jdbc request写sql语句4添加察看结果树点击启动按钮就能看到执行的SQL。具体的实例如下截图所示特别说明jmeter还可以操作oracle、postgreSQL、msSQL、mongodb等等数据库同时不同的数据库JDBC Connection Configuration填写的Database url格式和JDBC Driver驱动名称也不相同。jmeter数据库驱动列表如下表所示Jmeter-webservice接口脚本基本分为五个步骤1先需要通过soapui工具获取到webservice接口的请求地址、请求报文和请求soapaction。2jmeter新建一个线程组3线程组下建立SOAP/XML-RPC Request写入请求url、请求报文、请求soapaction。4启动jmeter调用接口通过察看结果树查看返回值。soapui获取信息的实例如下图所示soapui提交完后点击raw,可看到soapation有些接口若没返回soapation,则jmeter里也就不用填。jmeter-webservice脚本实例如下图所示压力测试压力测试分两种场景一种是单场景压一个接口的第二种是混合场景多个有关联的接口。压测时间一般场景都运行10-15分钟。如果是疲劳测试可以压一天或一周根据实际情况来定。压测任务需求的确认压测前要明确压测功能和压测指标一般需要确定的几个问题固定接口参数进行压测还是进行接口参数随机化压测要求支持多少并发数TPS每秒钟处理事务数目标多少响应时间要达到多少压服务器名称还是压服务器IP一般都是压测指定的服务器压测设置线程数并发数量能跑多少量。具体说是一次存在多少用户同时访问Rame-Up Period(in seconds):表示JMeter每隔多少秒发动并发。理解成准备时长设置虚拟用户数需要多长时间全部启动。如果线程数是20准备时长为10那么需要10秒钟启动20个数量也就是每秒钟启动2个线程。循环次数这个设置不会改变并发数可以延长并发时间。总请求数线程数*循环次数调度器设置压测的启动时间、结束时间、持续时间和启动延迟时间。压测结果查看运行完后聚合报告会显示压测的结果。主要观察Samples、Average、error、Throughput。Samples表示一共发出的请求数Average平均响应时间默认情况下是单个Request的平均响应时间msError%:测试出现的错误请求数量百分比。若出现错误就要看服务端的日志配合开发查找定位原因Throughput简称tps,吞吐量默认情况下表示每秒处理的请求数也就是指服务器处理能力tps越高说明服务器处理能力越好。压测结果的分析有错误率同开发确认确定是否允许错误的发生或者错误率允许在多大的范围内Throughput吞吐量每秒请求的数大于并发数则可以慢慢的往上面增加若在压测的机器性能很好的情况下出现吞吐量小于并发数说明并发数不能再增加了可以慢慢的往下减找到最佳的并发数压测结束登陆相应的web服务器查看CPU等性能指标进行数据的分析。最大的tps不断的增加并发数加到tps达到一定值开始出现下降那么那个值就是最大的tps。最大的并发数最大的并发数和最大的tps是不同的概率一般不断增加并发数达到一个值后服务器出现请求超时则可认为该值为最大的并发数。压测过程出现性能瓶颈若压力机任务管理器查看到的cpu、网络和cpu都正常未达到90%以上则可以说明服务器有问题压力机没有问题。影响性能考虑点包括数据库、应用程序、中间件tomact、Nginx、网络和操作系统等方面。jmeter在linux下进行压力测试jmeter 在linux安装简单说下就是要先安装jdk,同时再配置环境变量最后再上传jmeter压缩的安装包在linux下解压完安装包就可以使用了。jmeter在linux运行 进入jmeter下的bin目录下运行脚本未配置jmeter环境变量的条件下运行的命令./jmeter -n -t a.jmx -l res.jtl其中a.jmx是准备好的jmeter脚本,res.jtl是测试结果文件测试结果文件可以导入到jmeter察看结果树下查看。最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走这些资料对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你凡事要趁早特别是技术行业一定要提升技术功底。

相关文章:

Jmeter接口测试与性能测试详解

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具&…...

Bapaco机械键盘PC:x86计算平台与超宽触摸屏的创新融合

1. Bapaco机械键盘PC概述Bapaco是一款由深圳SIDIQIAO科技公司开发的创新型机械键盘PC设备,它将完整的x86计算平台与机械键盘和12.3英寸超宽触摸屏整合在一个紧凑的机身中。这款设备采用了Intel第12代Alder Lake架构的Core i5-1235U处理器,配备10核12线程…...

SAP STO跨公司交易流程

STO跨公司交易实战排错手册:从采购订单到发票校验的深度解析 当你在凌晨两点接到用户紧急电话,告知VL02N发货过账报错导致生产线即将停工时,作为SAP顾问的你是否能快速定位STO配置的致命缺陷?这份手册将解剖STO全流程中的21个关键…...

基于MITRE ATTCK的AI代理安全评估框架与实践

1. 计算机使用代理安全评估框架解析在当今企业IT环境中,计算机使用代理(Computer-Using Agents, CUAs)作为AI代理技术的重要实现形式,正逐渐渗透到系统管理、自动化运维等关键领域。然而,这些具备自主决策能力的代理程序,其安全性…...

宠物赛道的 AI 公司,都在做什么?

我们都知道宠物赛道的盘子大,这几年也一直不缺钱。那宠物赛道的 AI 公司都在干什么呢?我找了几家宠物赛道的 AI 公司,本来以为这些公司会集中在宠物消费、宠物智能硬件这些领域。结果发现,这几家值得分享的 AI 公司几乎都扎在宠物…...

一图看懂:全面解析HPH的核心构造

在生物医药行业里, HPH(高压均质机)近乎无处不在,在乳品加工行业中,它也几乎到处都有,在纳米材料制备等行业以内,它同样是几乎没不存在之处。它被称作关键设备,那是因为其精密构造直…...

Llama 3.1 405B与合成数据技术的革新应用

1. 合成数据与Llama 3.1 405B的革新应用合成数据技术正在经历一场由大语言模型(LLMs)驱动的革命。传统方法需要人工设计规则或依赖特定领域的生成模型,而像Llama 3.1 405B这样的千亿参数模型,能够理解复杂语义关系并生成高度逼真的…...

Kubernetes 中的 Flannel网络【20260427-001篇】

文章目录 ✅ 一、设计目标与定位 ✅ 二、核心特性(Why Choose Flannel?) ✅ 三、工作原理(以默认 VXLAN 模式为例) 🌐 1. 子网分配(Subnet Allocation) 📦 2. 跨节点通信(VXLAN 封装) 🧩 3. 本节点通信(零开销) ✅ 四、主流后端模式对比(2026 年推荐) ✅ 五…...

『Web安全』入门级实战教程——Web基础(二)

『Web安全』入门级实战教程——Web基础(二) 这是一个为开发、运维及安全从业者构建的: 系统的拆解Web安全的关键领域。 内容涵盖 “原理深入-实战驱动-体系构建” 为你提供一条清晰的进阶路径。 使你在面任何新型漏洞时,迅速定…...

【Android】歌歌AI写歌软件|AI一键原创作曲,声音克隆轻松做音乐

【Android】歌歌AI写歌软件|AI一键原创作曲,声音克隆轻松做音乐 链接:https://pan.xunlei.com/s/VOrDBwN20uV0INGDWDCQm11WA1?pwdwewt# 歌歌AI写歌软件app,AI智能写歌神器,输入灵感歌词即刻生成原创曲目。 支持人声…...

KMS_VL_ALL_AIO:3分钟永久激活Windows和Office的终极解决方案

KMS_VL_ALL_AIO:3分钟永久激活Windows和Office的终极解决方案 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 你是否曾经因为Windows系统频繁弹出激活提示而烦恼?或者Off…...

Draw.io免费的流程图绘画工具

免费流程图绘画工具 1.下载压缩包(复制链接使用夸克搜索) https://pan.quark.cn/s/01ca6dfa8866 2.解压压缩包 3.打开解压后文件夹 4.使用绘图软件...

多模态日志异常检测技术解析与CoLog框架实践

1. 多模态日志异常检测的技术演进与挑战日志异常检测作为系统运维和网络安全的核心技术,其发展历程经历了从规则匹配到深度学习的范式转变。早期基于正则表达式和关键词匹配的方法(如Swatch、SEC)虽然实现简单,但难以应对复杂多变…...

深度解析Reset Windows Update Tool:Windows更新故障的终极修复方案

深度解析Reset Windows Update Tool:Windows更新故障的终极修复方案 【免费下载链接】Reset-Windows-Update-Tool Troubleshooting Tool with Windows Updates (Developed in Dev-C). 项目地址: https://gitcode.com/gh_mirrors/re/Reset-Windows-Update-Tool …...

5个核心模块:解锁RPG Maker MV/MZ专业级开发能力

5个核心模块:解锁RPG Maker MV/MZ专业级开发能力 【免费下载链接】RPGMakerMV RPGツクールMV、MZで動作するプラグインです。 项目地址: https://gitcode.com/gh_mirrors/rp/RPGMakerMV 你是否曾为RPG Maker的功能限制感到束手束脚?当内置系统无法…...

3步掌握Tiktokenizer:彻底解决你的AI令牌管理难题

3步掌握Tiktokenizer:彻底解决你的AI令牌管理难题 【免费下载链接】tiktokenizer Online playground for OpenAPI tokenizers 项目地址: https://gitcode.com/gh_mirrors/ti/tiktokenizer 你是否曾经遇到过这样的尴尬时刻:精心设计的AI提示语在AP…...

终极鼠标键盘自动化神器:KeymouseGo完整使用指南

终极鼠标键盘自动化神器:KeymouseGo完整使用指南 【免费下载链接】KeymouseGo 类似按键精灵的鼠标键盘录制和自动化操作 模拟点击和键入 | automate mouse clicks and keyboard input 项目地址: https://gitcode.com/gh_mirrors/ke/KeymouseGo 你是否厌倦了每…...

游戏模组管理革命:XXMI启动器如何一键解决多游戏模组冲突问题

游戏模组管理革命:XXMI启动器如何一键解决多游戏模组冲突问题 【免费下载链接】XXMI-Launcher Modding platform for GI, HSR, WW and ZZZ 项目地址: https://gitcode.com/gh_mirrors/xx/XXMI-Launcher 你是否厌倦了在《原神》、《崩坏:星穹铁道》…...

基于Simulink的光伏电池仿真模型搭建——从四参数工程数学模型到S-Function实现与子系统封装

基于Simulink的光伏电池仿真模型搭建——从四参数工程数学模型到S-Function实现与子系统封装 摘要 光伏电池的输出特性具有强烈的非线性和环境依赖性,准确建立其仿真模型是开展光伏系统设计、最大功率点跟踪算法验证及并网发电系统研究的基础。本文以RX-DBG型单晶硅光伏组件…...

(课堂笔记)Oracle 聚合函数与 GROUP BY 分组查询

本文总结了Oracle中聚合函数与GROUP BY分组查询的核心知识点。主要内容包括:1)常用聚合函数(SUM/MAX/MIN/AVG/COUNT)的使用及NULL值处理;2)GROUP BY语法结构和分组查询示例;3)HAVING…...

Nature Reviews Cancer(IF=66.8)澳门科技大学张康教授等团队:人工智能推动多组学与临床数据整合在基础和转化癌症研究中的进展

01文献学习今天分享的文献是由澳门科技大学、中国医学科学院肿瘤医院张康教授等团队于2026年4月21日在肿瘤学领域顶尖综述期刊《Nature Reviews Cancer》(中科院1区top,IF66.8)上发表的研究“Advancing AI for multi-omics and clinical data…...

Rust的#[derive(Copy)]轻量级

Rust语言以其高效、安全的特点吸引了众多开发者,而#[derive(Copy)]作为其轻量级特性之一,为开发者提供了便捷的数据复制能力。本文将深入探讨这一特性的核心优势,帮助读者理解其应用场景与实现原理。 **浅拷贝与性能优化** #[derive(Copy)]…...

一键部署Phi-3.5-mini-instruct:支持中英双语的代码辅助助手

一键部署Phi-3.5-mini-instruct:支持中英双语的代码辅助助手 1. 引言:轻量级多语言模型新选择 Phi-3.5-mini-instruct是微软最新推出的轻量级指令微调大语言模型,专为多语言对话和代码辅助任务优化。作为仅有3.8B参数的紧凑模型&#xff0c…...

第88篇:AI+环境保护与气候研究——污染监测、物种识别与气候建模(项目实战)

文章目录项目背景技术选型架构设计核心实现1. 黑烟车识别 (基于YOLOv8)2. PM2.5浓度时序预测 (基于Informer)踩坑记录效果对比项目背景 这几年做AI项目,从互联网卷到传统行业,一个很深的感触是:AI技术真正产生巨大价值的,往往是那…...

第89篇:AI模型部署与服务化实战——Docker、Kubernetes与云服务选型(操作教程)

文章目录前言环境准备分步操作第一步:创建模型服务应用第二步:使用Docker容器化应用第三步:使用Kubernetes进行编排管理第四步:部署到云平台完整代码结构踩坑提示云服务选型考量总结前言 在AI项目里,模型训练往往只占…...

第87篇:AI驱动的智能招聘与HR系统——简历筛选、面试分析与人才盘点(操作教程)

文章目录前言环境准备分步操作模块一:简历智能解析与筛选模块二:面试问答分析与评分模块三:人才盘点与知识库构建完整代码示例踩坑提示总结前言 在招聘旺季,我团队曾面临一个头疼的问题:每天收到数百份简历&#xff0…...

第86篇:开源vs闭源大模型生态之争——开发者与企业的机会在哪里?(概念入门)

文章目录背景引入:一个“选择困难症”的实战场景核心概念:开源与闭源,两条截然不同的道路类比解释:iOS vs Android,历史的重演?简单示例:用代码感受两者的差异生态之争下的机会地图1. 对于开发者…...

ARM架构异常处理机制与ESR寄存器解析

1. ARM架构异常处理机制概述异常处理是现代处理器架构的核心功能之一,它使处理器能够响应硬件中断、指令执行错误、系统调用等突发事件。在ARMv8/v9架构中,异常处理机制经过精心设计,特别是在支持多异常级别(EL0-EL3)和…...

开箱即用的AI智能客服系统源码,上下文连贯对话,知识库优先响应

温馨提示:文末有资源获取方式最近在企业服务类项目中,需要一个能快速部署、支持智能对话的客服系统。调研了一圈,发现市面上很多方案要么二次开发太复杂,要么对上下文理解支持不够好。后来找到一套PHP原生开发的客服系统源码&…...

正宗阳澄湖大闸蟹:5款高口碑礼盒推荐 佳节送礼首选

每年中秋送礼,我最怕的一件事:👉 买到“假阳澄湖大闸蟹”😭真的不是夸张,现在市面上太多“写着阳澄湖,其实不是阳澄湖”的蟹了…踩过一次坑之后,才慢慢搞明白怎么选。今年这套我选对了&#xff…...