Jmeter性能测试+自动化

article/2025/9/18 16:40:27

1.、性能测试指标

应用场景:服务器的接口性能测试80% - 20%(UI性能:web渲染,app反应)
APP
微信小程序
web
H5
模拟器——Jmeter/LR
http协议,连接到后台服务器
(web服务器 + 数据库服务器(mysql) + Linux)
通过http协议连接到后台的web服务器,web服务器通过数据库服务器来访问数据,mysql运行在Linux上
性能:关键领域的性能才是重点
时间、成本、质量
二、性能测试目的
1.基本目的:

验证是否到达用户的性能指标
发现软件中存在的性能瓶颈并优化

2.评估系统的能力

测试中得到的负荷和响应时间数据,用于验证所计划的能力
帮助做出决策

3.识别系统中的弱点

受控的负荷可以被增加到一个极端水平,并突破它
修复系统瓶颈和薄弱的地方

4.系统调优

重复运行测试,验证调整系统是否得到了预期的结果
改进性能

5.验证稳定性

在一定生产负荷下执行测试一定时间评估系统稳定性和可靠性是否满足要求。

三、性能测试流程

评估-》加压-》bug,瓶颈-》分析,调优-》长时间跑(稳定性)

四、性能指标

性能指标:
多 ——并发量
快 ——延时,响应时间
好 —— 稳定性(长时间运行)
省——资源使用率

然后在思考时间

  1. 响应时间:(2/5/8) 2:非常好 5:可以接收的 8上限

应用系统从请求发出开始,到客户端接收到最后一个字节数据所消耗的时间。是用户感知软件性能的主要指标。(客户感知的响应时间:端到端)

响应时间包括:

  1. 用户客户端呈现时间
  2. 请求/响应数据时间
  3. 应用服务器处理时间
  4. 数据库系统处理时间

并发用户数

系统用户数
在线用户数
并发用户数

系统用户数:系统注册的用户总数

没有经过初始化环境的性能环境 = 没有作用的环境
运维:Linux系统注入网络延时
数据库:数据库dump
或者知道数据库格式可以通过数据库脚本创造数
在线用户数跟:CPU, 内存,磁盘,网络, 人有关
web-session放到内存中
初始化环境:warm up 热机

  1. 数据从磁盘进入内存的过程 2.让测试环境接近真实的环境
    用Jmeter先运行一段时间,这段时间不记录,从热机后开始计算时间

并发用户数计算公式:C=nL/T(计算模型)
C:平均并发用户数
n:平均每天访问用户数
L:一天内用户从登录到退出的平均时间
T:考察时间的长度

吞吐量:
单位时间内系统处理用户的请求数
TPS:每秒事务数

思考时间
来模拟的模拟用户操作

通过具体的工作-》推出你要用的工具

2.Jmeter性能测试工具

2.1 Jmeter性能猜测是工具
(1)多线程框架——支持多并发操作(jmeter里面可以创建很多线程数,即用户数)
(2)用于对服务器模拟负载
(3)支持wen、数据库、FTP服务器系统的性能测试
(4)开源、纯Java、可二次定制化开发
2.2 Jmeter运行环境搭建
每一台机器能创建多少用户数 ——内存(物理内存)32G
Jmeter——一个Jave进程——进程需要一定的内存资源——堆内存
Dos命令行中打开Jmeter,需要配置环境变量
Jmeter中怎样生成结果文档:
创建一个空csv文件 -》把结果写到文件中,查看结果树中文件名选择刚创建的空csv文件
通过上面的结果文档,生成Jmeter Report
工具-》Generate HTML report -》
TES
线程组
1.set up线程组
第一个运行的,与位置无关
2.线程组
3.teardown线程组
Jmeter
接口(web/app/h5)性能测试

性能测试:
单用户(人- 线程组)功能(测试对象)-》并放量上去
一个线程组用一个jmeter
每一个Jmeter中的线程,代表一个用户

3.Jmeter脚本开发

3.1 什么是Jmeter脚本
Jmeter脚本
通俗:用户操作被测软件系统某场景的动作流程
Jmeter脚本:用户操作被测软件系统某场景的请求
用户数、并发数
性能测试:重要场景从1到N,一个用户跑同后再根据需求跑多个用户

3.2 快速开发漂亮的脚本
快速开发漂亮的jmeter脚本
准确:脚本能可以正常运行
快速:借助技术手动快速高效完成脚本开发
漂亮:脚本逻辑、维护性高
3.3 开发脚本方案
文档 +抓包
(1)代理
Jmeter也有自己的代理,录制脚本前,我们只要启动好代理,手动通过浏览器来录制,录制完毕停止代理
直接保存jmx文件
需要人为调试脚本
录制https需要设置
新建测试计划-》新增线程组-》计划测试中增加Http代理器-》目标控制器选择线程组
在这里插入图片描述
浏览器中设置代理
在这里插入图片描述
在这里插入图片描述

配置排除模式:.(js|css|PNG|jpg|ico|png|gif).
两大步骤:
浏览器的设置
代理服务器的设置

badbor抓包
最好的方式:接口文档+fiddle抓包

(2)实例
在这里插入图片描述
文件模式是做文件上传接口测试
作用域
在这里插入图片描述
为后面的新增接口提供变量

4. Jmeter元件

http信息头管理器:如果是表单,就需要把content -type的值填进去
cookie:从一个请求获取的,服务器通过响应头set cookie,从访问请求页获取的set cookies获取,使用HTTP Cookie管理器就自动把首页的cookie带上

监听器
查看结果树:请求失败了,想查看请求为什么失败
(1)分析查看具体某一个请求的详情 请求头、请求体、响应头、响应体
勾选仅错误日志,只会出现错误的响应
(2)在做性能场景的时候 分析错误请求的原因
聚合报告 ——整个性能场景的汇总统计 请求数、响应时间(ms)、错误率(越低越好)、吞吐量(越高越好)、发送/接收带宽、
用表格查看结果——请求规划书
图形结果——整体效果

断言
发送请求通过结果查看结果,如果想对哪个请求做断言,就把断言放到哪个请求中
前置处理器:以请求作为分界线的,请求发出去之前执行的控制器(元件)
比如:
后置处理器:请求发出去之后的控制器(元件)
比如:提取数据

定时器
思考时间——固定定时器
同步定时器——聚合点
随机定时器
吞吐量定时器

5.Jmeter参数化实战

5.1什么时候需要参数化技术
多点/必须
5.2参数化技术是什么?
参数化是自动化测试脚本的一种常用技巧,参数化的一般用法就是将脚本中的某些输入使用参数来代替,在脚本运行时指定参数的取值范围和规则
参数化流程
(1)找出需要做参数化的数据
(2)准备提供给参数化需要的数据源
(3)把脚本里的常量——》变量(使用前面的数据源数据)
5.3 Jmeter参数化方式:
(1)csv——需要配置
使用场景:账号、密码
在这里插入图片描述
把脚本里的常量用变量代替
在这里插入图片描述

	>如果要取得对象是JSON格式,就用JSON的语法怎样从上一个接口的响应数据中提取token? 上一个的接口响应数据中的JSON path Exception输入框中输入“$.token”,可以回车test一下$符号表示根目录,.表示调用关系

然后将取得数据存放到一个变量名中,把这个变量给下一个接口的请求头,所以就是要获取整个token,把这个token值提取出来,使用后置处理器JSON提取器,
在这里插入图片描述

怎样看有没有获取到值,添加debug调试取样器
在这里插入图片描述
关联技术:把这个变量拿出来之后,就可以放到下面的变量中,即放到下一个的消息头管理器中,怎么取变量了,就是“ 变 量 名 ” 即 “ {变量名}” 即“ {getToken}”
在这里插入图片描述
(2)函数式
随机数
在这里插入图片描述
将生成的随机数变量粘贴到需要放置的地方
time 时间戳,默认ms,13位数字
counter计数器
(3)变量
(4)编程式
引入外部的jar包、java、class
使用beanshell编程

问题解决:
1.“msg”:“Token值为空”
解决方案:在请求头增加一个token
2.“message”:“客户姓名必须为中文??”
解决方案:请求编码设置——UTF-8
3.“message”: “该客户手机号码已存在”
解决方案:必须参数化——手机号码


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

相关文章

Jmeter的三种参数化方式(2)

小伙伴们在使用JMeter的过程中,肯定会遇到参数值传递的问题,下面来和大家总结下,在使用JMeter做压力测试的时候,常见的3种参数值的传递是怎样的。 (一)从CSV文件读取要批量输入的变量 假如我们要登录的数据保存在login.csv文件里…

Jmeter基础知识

前言:性能测试是现如今测试人员都要有具备会的,至少目前内卷的来说,不会点性能测试、自动化测试,都不对不起自己的高薪,对吧,所以小白想要高薪,就必须要学会这些技能,因为你不会不代…

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的参数化请求,包括以下几种方式: 用户参数用户…