Jmeter基础知识

article/2025/9/18 17:00:47

前言:性能测试是现如今测试人员都要有具备会的,至少目前内卷的来说,不会点性能测试、自动化测试,都不对不起自己的高薪,对吧,所以小白想要高薪,就必须要学会这些技能,因为你不会不代表别人不会,缺乏核心竞争力,只会点点点工程师的出路很窄,以下讲解的性能测试用到的工具Jmeter的基础知识,胎教级别教学,绝对看的懂,如果看不懂,当我没说,哈哈哈。

一、性能测试定义

性能测试(Performance Testing):在一定的负载情况下,系统的响应时间等特性是否满足特定的性能需求。

区分用户的概念:

在线用户:已三次握手但未四次挥手[接口知识]

并发用户:对系统伤害大的用户集体访问状态(比如12306抢票、双11、京东618等)

系统实际用户:系统额定的用户。

补充一点:性能指标和性能需求来源于客户。

二、性能测试类型

【1】负载测试(Load Testing):负载测试关注的是不同负载水平的系统的性能指标。为了得到压力数确定下的性能指数。例如我们可以找到系统的最大用户数和最佳用户数

【2】压力/强度测试(Stress Testing):压力测试则关注在超高负载(超过系统最大用户数)的情况下,系统是否还能稳定处理,如果不能稳定处理,那么系统还能坚持多久。其重点是关注系统是如何失效的,以便于制定系统正式上线后的风险控制措施。

区别:

负载测试

①关注找指标,获取最大用户数指标

②获取指标方式:根据经验得基础指标,在基础指标上增加,一直到系统性能开始下降。在下降的周边范围测试取值。

压力测试

①关注超高负载,目的在于“压死”系统;基于负载测试。

②获取指标方式:根据往期经验值,加到系统崩溃,记录下此时用户数(从最大用户数到崩溃用户数)、时间(系统能撑多久,风险控制措施[含蓄报错,多开服务器]在此时间内上线)、并发等数据。

【3】配置测试(Configuration Testing):在不同的软件、硬件以及网络环境配置下,通过运行一种或多种业务在一定的虚拟用户数量情况下,获得不同配置的性能指标,用于选择最佳的设备及参数配置

【4】容量测试(Volume Testing):目的是通过测试预先分析出软件中某指标的极限值(如最大并发用户数、数据库记录数等),保证系统在其极限状态下没有出现问题并能正常运行。

区别:

配置测试----》通过对系统的不同配置,获得不同配置下系统的性能指标。

容量测试----》一般用于数据库。(比如:可以打开多少个QQ用户;播放器可以播放多大hz)必须做到极限值。

【5】基准测试(Benchmark Testing):在一定的软件、硬件及网络环境下,模拟一定数量虚拟用户运行或多种业务,将测试结果作为基线数据,在系统调优或者系统评测过程中,通过运行相同的业务场景并比较测试结果,确定调优是否达到效果或者为系统的选择提供决策数据。

【6】并发测试(Concurrency Testing):通过模拟多个用户并发访问同一应用、同一存储过程或数据记录以及其他并发操作,测试是否存在死锁、数据错误等故障。

区别:

基准测试----》在性能测试时就可能覆盖。

并发测试----》关注系统崩溃后会怎么样,是否能恢复,根据情况制定恢复策略。

三、性能指标

【1】工作负荷

就相当于虚拟用户数,对服务器产生多大压力,可以由多少用户同时对服务器发送请求来衡量。

【2】响应时间(Response Time)

从客户端将数据包发出,到接受到服务端发来的请求。[请求发出--响应完成的整个过程时间]

【3】吞吐量(Throughput ~ Ti&To)

吞吐量越大系统性能越好。[吞in;吐out]

【4】吞吐率

单位时间内的吞吐量

【5】Hits/Request

网页点击数/请求数

【6】Hits Per Second

每秒点击次数

四、性能测试实施

1.系统核心部件的性能测试可能处于前期。

2.一般在接口测试通过之后,系统稳定之后进行性能测试。

3.不是所有软件都需要做性能测试,一般出现并发的软件,这就需要结合需求规格说明书来判断。

4.性能测试在生产环境下对系统进行(独特的测试账号,一般不用虚假数据)。

5.测试分析阶段(性能调优)

(性能调优:工资高,经验要求高,需要懂编程语言3-4种、懂协议、懂数据库3-4种)

五、Jmeter简介及特点

【简介】

【特点】

 

六、Jmeter与LoadRunner

对比项

Jmeter

LoadRunner

安装

简单,下载解压即可

复杂,安装包大于1GB,安装时间大于1小时

录制/回放模式

支持

支持

测试协议

偏少,可自行扩展

较多,不可自行扩展

分布式大规模压力测试

支持(300个)

支持(50000个)

IP欺骗功能

不支持

支持

图形逻辑控制

支持(较弱)

支持(很强)

测试逻辑控制

支持

支持

监控服务资源(CPU、内存等)

支持

支持

功能测试

支持

不支持

七、Jmeter工作原理

八、Jmeter环境搭建

操作:

1、点击右键”我的电脑”->”属性”->”高级”->”环境变量”

2、在系统变量内新增一个变量:JAVA_HOME   注:必须大写,格式要求!!!

变量值为jdk安装的路径:E:\Jmeter\JDK\jdk_8u191_Windows_x64(例子)

3、需要修改系统变量path,在变量最后添加jmeter的bin下路径:

E:\Jmeter\jmeter\apache-jmeter-5.0\bin(例子)

九、Jmeter基础使用操作

上图为初始打开界面:

注意编译界面(黑色页面不要关闭,关闭则jmeter会关掉,最小化即可)

【1】语言切换(个人自定义)

【2】点击文件-新建,可以新建一个”测试计划”。 

如果是已有jmeter的测试文件,可以打开对应的文件(注:.jmx文件) 

【3】测试计划下增加线程组,可以看个人增加多个线程组,线程组=用户。

 【4】在线程组下新增HTTP请求。

①HTTP请求的相关接口数据可选用fiddler工具抓包或者Jmeter自带的HTTP代理服务器。 

②关于HTPP请求的获取渠道多种多样,web端的F12工具也可以获取HTPP请求的相关参数及请求头、请求方式等信息。其余微信小程序端、APP端等等的可自行拓展研究。

 ③HTTP请求的填写

④HTTP请求的基础操作 

⑤每个HTTP请求下增加HTTP信息头管理器。

为什么需要增加这个?--》在上文提到的一个HTTP请求的请求头部信息的数据就可以放在此处。

实用小技巧:

Jmeter是有层级结构的,也就是说上述的HTTP信息头管理器可以放在测试计划下,HTTP默认值也是同样的道理,用于存放默认的HTTP请求信息(比如所有的请求方式及请求协议、域名、端口就可以设置一个默认值放在测试计划下),后面的HTTP请求就可以不用写这么多信息。TAT

【5】在线程组添加察看结果树、聚合报告。

 这样,一个基础的性能/接口测试框架就出来了。

 【6】线程组设置---(重点)

 【7】执行察看结构树,可以看到执行HTTP请求结果及响应数据等信息。

 【8】执行查看聚合报告。

十、Jmeter更多使用操作(略,性能测试水很深,少年需谨慎,哈哈哈)

指引:

1、可以在请求中添加[断言--响应断言]来增加结果的可靠性,不一定绿色即是正常,需要配合断言来判断响应数据比对,才能更严谨。

2、还可以参数化来把HTTP请求里的参数值进行参数化,可外置CSV文件做完测试用例或者测试数据来进行并发压测的数据源,比如有些手机号码、用户ID、礼品ID这些可以做完参数化。

3、可以结合jmeter插件实现图形化的线程递增压测。

4、也可以拓展使用命令的形式来执行jmeter性能测试。

【作者的话:点滴积累,成长无限】


http://chatgpt.dhexx.cn/article/ahwuurVM.shtml

相关文章

JMeter如何实现参数名称和个数动态变化的接口请求

需求分析 在做接口自动化和性能测试,经常会遇到一些请求参数是根据上一个请求结果,动态变化的参数个数,参数名可能相同,也可能为序列递增格式,参数个数可能为10、20个,这样就导致手工不好模拟该请求效果&am…

【性能测试系列】JMeter核心技术:分布式压测和参数化

微信搜索关注公众号:测试小工,第一时间获取最新软件测试技术文章 JMeter分布式压测 1. 为什么要做分布式部署? 在上一篇文章中,我们提到了JMeter的线程启动和运行,是会占用系统资源的,一旦需要大并发,而JMeter单机部署配置不够,将会导致JMeter无法在规定时间内启动对…

接口测试参数化详解(Jmeter)

简介 接口测试是目前最主流的自动化测试手段,它组合不同的参数向服务器发送请求,接受和解析响应结果,通过测试数据的交换逻辑来验证服务端程序工作的正确性。我们在测试过程中需要考虑不同的输入组合,来覆盖不同的测试范围&#…

【JMeter】JMeter的工作原理

一、JMeter简介 JMeter是Apache组织开发的基于Java的开源的压力测试工具、接口测试工具 可以模拟高并发和多次循环的测试场景,能够对HTTP和FTP服务器进行压力和性能测试, 也可以对任何数据库进行同样的测试,具有可移植性 二、压测的原理 …

jmeter设置参数化

设置参数化方法有3种 第一种: 1.打开 jmeter,导入badboy录制的脚本 导入后记得选择“step”右键选择change controller -》逻辑控制器-》循环控制器或者简单控制器 注意:badboy 仅s适用于B/S架构的产品录制 因为内置浏览器的内核的兼容性问题…

JMeter接口测试_参数化

对应qq群号:616961231 简介: 环境: Mac OS home 目录类似windows 的自建目录 如: D:/test/id.txt 上篇内容介绍了jmeter的基本使用, 略微提了如何做参数化, 本篇对参数化做进一步深入讲解. Jmeter大概有以下几种参数化方法: 参数化方式使用场景1User Parameters适用于参…

Jmeter如何实现参数化用户,并且管理Cookie

谈到性能测试,经常需要对用户进行参数化,jemter工具参数化经常使用的一个元件就是CSV数据文件设置 一、 操作步骤 1. 首先建议大家创建一个规范的目录保存文件 目录作用data保存参数result保存结果script保存脚本 2. 如下图所示 设置目录的好处&#x…

jmeter + mysql数据驱动自动化测试

测试对象:前端web等后端接口mysql数据库 https://www.cnblogs.com/testfan2019/p/12124093.html 需求: 通过后端接口,对数据进行查询,对比查询返回内容和数据库内容是否一致。 Jmeter配置: 安装mysql驱动包 1. 下…

Jmeter参数化设置,多用户登录

一、模拟多用户登录场景 如登录模式如下图所示,登录界面中需要输入:用户名、密码、验证码 用户名以及密码均是固定值,不需要做处理。验证码需要处理一下,可以后台配置成固定值,具体可以找开发咨询。 在此场景中&#x…

【完结版】jmeter+ant+python自动化框架,且支持jenkins持续集成

前言:本文是实现jmeterantpython脚本的自动化测试框架,并且把整套部署在jenkins,通过jenkins的构建来出发脚本的运行,而且还会在jenkins上展示html报告。本文记录搭建框架的整个步骤,以及遇到的问题和记录解决办法。 一…

Jmeter之参数化

这里我用到的是微信的获取access_token接口。 https请求方式: GET https://api.weixin.qq.com/cgi-bin/token?grant_typeclient_credential&appidAPPID&secretAPPSECRET 共有三个参数。接下来是设计接口测试用例 新建一个excel文件,输入标题&#xff0c…

常用的Jmeter参数化技巧总结,总有一个你不知道

说起接口测试,相信大家在工作中用的最多的还是Jmeter。 JMeter是一个100%的纯Java桌面应用,由Apache组织的开放源代码项目,它是功能和性能测试的工具。具有高可扩展性、支持Web(HTTP/HTTPS)、SOAP、FTP、JAVA 等多种协议。 在做…

Jmeter关联实现及参数化使用解析

这篇文章主要介绍了Jmeter关联实现及参数化使用解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一、Jmeter介绍 一款融合接口、性能都能完成的测试工具纯JAVA开发的工具开源工具支持多种协议应该是测试业界…

Jmeter系列之参数化

VOL 132 08 2020-06 今天距2021年206天 这是ITester软件测试小栈第132次推文 点击上方蓝字“ITester软件测试小栈“关注我,每周一、三、五早上 07:30准时推送。 微信公众号后台回复“资源”、“测试工具包”领取测试资源,回复“21天打卡”一起学习成长,打…

Jmeter参数化---使用CSV 数据文件设置

上一篇写了jmeter做接口测试的流程(链接:使用 jmeter 做接口测试) 这一篇写的是如何参数化的做Jmeter接口测试 这次依然是获取access_token的接口,相关文档详询:(https://developers.weixin.qq.com/doc/offiaccount/…

Jmeter参数化--后置处理器之正则表达式提取器

在接口测试中,很多都需要依赖前一个请求的响应数据放到后一个请求的请求数据中来,在Jmeter中提供了正则表达式提取器来提取响应数据中的片段 本次使用的实例是微信公众号的客服发消息,在这个接口中,需要用到access_token接口返回…

jmeter java csv_Jmeter之csv参数化

Jmeter之csv参数化 创建数据源csv文件 在线程组中添加CSV Data Set Config 1、添加CSV Data Set Config 图 1 添加CSV Data Set Config 2、配置CSV Data Set Config 图 2 配置CSV Data Set Config Filename: 指保存信息的文件目录,可以相对或者绝对路径。否则会在jm…

Jmeter之数据参数化方法汇总

一、什么是参数化 Jmeter参数化是指将脚本中的某些需要输入数据使用参数来代替,在脚本运行时指定参数的取值范围和规则。脚本在运行时就可以根据需要选取不同的参数值作为输入。 常用的Jmeter的参数化请求,包括以下几种方式: 用户参数用户…

Jmeter参数化的方式

拿微信公众平台获取token-创建标签接口举例:微信公众平台 一、正则表达式提取参数 1、获取token后,使用后置处理器-正则表达式提取器,提取返回的token值 2、创建标签接口引用token参数 二、用户参数 1、选中线程组添加前置处理器&#xff…

JMeter参数化4种实现方式

1 参数化释义 什么是参数化?从字面上去理解的话,就是事先准备好数据(广义上来说,可以是具体的数据值,也可以是数据生成规则),而非在脚本中写死,脚本执行时从准备好的数据中取值。 参…