技术开发站45793.com
服务端性能测试——性能测试工具JMeter-L1
发布时间:
2024年01月11日
第一遍没学懂,后续文章会更新~?
目录:
1.JMeter介绍与安装
Meter简介
JMeter安装
2.JMeter的运行
JMeter运行、界面功能简介
3.使用代理服务器录制请求
录制压测脚本(一)Web端
脚本录制方法
4.测试计划
5.线程组
6.控制器
7.JMeter采样器/取样器
8.JMeter场景逻辑控制技术
9.JMeter监听器
10.JMeter定时器
11.JMeter断言元件的使用
12.JMeter常用配置元件剖析
13.JMeter前置处理器
前置处理器
SampleTimeout前置处理器
Beanshell前置处理器
14.JMeter后置处理器
15.JMeter执行顺序
16.JMeter虚拟用户管理
17.HTTP请求属性设置
18.HTTPcookie设置
Cookiemanager
19.HTTP信息头管理器
Headermanager
20.HTTP请求设置
21.监听器与测试结果
Listener&测试结果
1.JMeter 介绍与安装
Meter简介
Apache组织开发的开源免费压测工具
纯Java程序,跨平台性强
源程序可以从网上下载高可扩展性
可对服务器、网络或对象模拟巨大的负载,进行压力测试可以用于接口测试
支持分布式、多节点部署
JMeter 安装?
下载位置:
官网 https://jmeter.apache.org/
binary 可运行文件包
官网下载规律 首页 -> Download -> binaries
JMeter 安装方法: 直接解压
Demo: JMeter 官网寻找安装包,下载,解压
2.JMeter 的运行
JMeter 运行、界面功能简介
运行环境要求:java运行时环境
运行方法:命令行直接启动 $jmeter_home/bin/jmeter.sh
常规的菜单功能:新建、保存、查询、配置、帮助 等
压测运行相关:开始运行、停止运行、远程运行、停止远程运行 等
设定外观长相更改
配置语言,不过建议用英语(个人体会中文翻译的有点晕)
Demo – JMeter 界面操作、外观、语言
3.使用代理服务器录制请求
录制压测脚本(一)Web 端
压测对象 - http://news.baidu.com
压测页面 – 百度首页,百度新闻
步骤:
访问百度首页
单击进入“百度新闻”
操作手段: 录制回放,上手容易,入门学习的好手段
脚本录制方法?
打开 JMeter
新建压测脚本
添加 “HTTP(S) Test Script Recorder”
添加“Thread Group”
在 Thread Group中添加“Recording Controller”?
打开 HTTP(S) Test Script Recorder
设定 Port = 8088
设定 Target Controller = Test Plan > Tread Group > Recording Controller
在 Requests Filtering 添加“include”与 “Exclude”URL 正则匹配表达式
目的:避免录制过多没必要的请求
Include: .*\.(baidu\.com).*
Exclude:.*\.(js|css|PNG|jpg|ico|png|gif).*
关于链接过滤的几点说明
exclude 去掉一些诸如图片、js、css 等静态请求,这些静态资源一般会 单独存放,不会占用服务器运算资源所以压测的时候可以不测试这些资源
include 包含内容,只抓取百度URL的内容,不抓其他的网站的内容
正则表达试匹配原理快速入门说明见下页图片说明(菜鸟教程)
单击保存按钮,命名文件名,将对 JMeter 脚本的更改存储到磁盘
打开浏览器,将浏览器的代理服务器地址指向 http://localhost:8088?
单击HTTP(S) Test Script Recorder中的Start按钮,打开代理
单击弹框中的确定按钮
JMeter的录制代理将会开启?
在对应的浏览器中访问百度首页
进入百度新闻站点
停止JMeter的代理服务
可以看到对应的请求已被录制到JMeter中了
?
Demo – JMeter 脚本的录制过程,过滤资源的对比展示
回放验证
添加 View Results Tree
View Result Tree 的用途: 看Req /Resp 详情?
只是为了检验,所以一个并发、一次循环即可
单击开始运行按钮?
在 View Result Tree 中
检查 请求/响应 是否都成功了?
JMeter 压测回放,检查脚本的正确性?
4.测试计划
用来描述一个压力/性能测试脚本和场景设计的基本运行单元, 使用JMeter进行测试 的所有内容都是基于一个测试计划
用户定义变量
独立运行每个线程组
不勾选:各个线程组并行、随机执行
勾选:线程组按照前后顺序来执行
主线程组运行完成之后运行tearDown线程组
函数测试模式,比如保存响应数据或者样本数据,需要注意的是选择该功能非常磁盘 空间
添加文件或者jar包,常用于外部功能调用
Demo: 测试计划?
5.线程组
线程组元件是任何一个测试计划的开始点,在一个测试计划中的所有元件 都必须在某个线程组下,所有的任务都是基于线程组。
第一部分:在请求取样器执行错误时需要执行的下一步动作
第二部分:线程属性
第一部分:在请求取样器执行错误时需要执行的下一步动作
Continue:继续执行接下来的操作
Start Next Loop:忽略错误,执行下一个循环
Stop Thread:退出该线程(不再进行此线程的任何操作)
Stop Test:等待当前执行的采样器结束后,结束整个测试
Stop Test Now:直接停止整个测试
第二部分:线程属性
Number of Thread (users):线程数,模拟的用户数量
Ramp-up Period(in seconds):达到指定线程数所需要的时间。举例:线程数设置 为50,此处设置为5,那么每秒启动的线程数 => 线程数50/5 = 10
Loop Count: 循环次数
Same user on each iteration:每次迭代都用相同的用户, 勾选该选项则不同次迭代 之间是串行执行,不勾选则为并行执行。
Delay Thread creation until needed:当线程需要执行的时候,才会被创建。如果不 选择这个选项,那么,在计划开始的时候,所有需要的线程就都被创建好了?
Specify Thread lifetime:定义线程调度时间
Duration (seconds): 持续时间(秒), 在此选项填入N,说明这个计划, 从某个开始时间算起,执行N秒后结束。(会忽略 结束时间 的选项)
Startup delay (seconds): 启动延迟(秒),在此选项填入N,手动点击 开始执行计划,然后延迟N秒后,计划才真正开始执行。
6.控制器
种类丰富
为请求执行提供不同的逻辑控制
介绍几个常用的逻辑控制器
事务控制器 Transaction Controller
条件控制器 If Controller
循环控制器 Loop Controller
随机控制器 Random Controller
7.JMeter 采样器/取样器
采样器(取样器): 模拟用户操作,向服务器发出请求的组件;
采样器作用:向服务器发送请求,记录响应信息与响应时间;
常用采样器讲解:
HTTP Request Sampler
Debug Sampler
BeanShell Sampler
8.JMeter 场景逻辑控制技术
利用JMeter 逻辑控制器
实现测试业务流程中的逻辑变化
模拟实际业务场景
场景逻辑控制技术
9.JMeter 监听器
用来动态的监控JMeter执行测试的过程,实时查看测试结果;
常用监听器:
查看结果树
聚合报告
后端监听器
10.JMeter 定时器
顾名思义,定时器是用来控制采样器发出请求开始时间的组件
常见定时器:
固定定时器
高斯随机定时器
吞吐量定时器
并发定时器
11.JMeter 断言元件的使用
断言的作用就是让 JMeter 程序判断预期结果和实际结果是否一致,从而 判定请求是否成功
常见断言:
响应断言
大小断言
XPath 断言
Json 断言
12.JMeter 常用配置元件剖析
配置元件的用途
常见的配置元件
配置元件的执行顺序
配置元件的作用范围
配置元件执行结果的查看
13.JMeter 前置处理器
前置处理器?
在取样器发送请求之前执行,做一些准备工作,如设置参数、环境变量等
常见前置处理器举例:
Sample Timeout 前置处理器
BeanShell 前置处理器
Sample Timeout 前置处理器?
设定请求超时时间
作用范围内的所有请求均生效
单位:毫秒
Beanshell 前置处理器
什么是Beanshell
小型嵌入式 Java 源码解释器
基本就是 Java 语言
BeanShell前置处理器:在Sampler 执行之前会被执行
直接在JMeter的Beanshell处理器中写代码生成当前时间戳
通过程序生成当前时间戳
将时间戳值赋值给变量,然后传递给后续的请求样本?
14.JMeter 后置处理器
后置处理器主要用于取样器执行后的提取数据操作;
常见的后置处理器:
Json 数据提取器
正则表达式数据提取器
XPath 数据提取器
15.JMeter 执行顺序
JMeter 八大组件
?执行顺序
线程组->定时器->控制器->前置处理器->配置原件->采样器->后置处理器->断言->监听器
?
16.JMeter 虚拟用户管理
~
17.HTTP 请求属性设置
~
18.HTTP cookie 设置
Cookie manager?
自定义cookie
配置项?
19.HTTP 信息头管理器
Header manager
自定义header 变量
Header变量值的带入
20.HTTP 请求设置
21.监听器与测试结果
Listener?& 测试结果
Listener 种类多样
展示 & 调试测试结果
文章来源:https://blog.csdn.net/qq_56444564/article/details/135493872
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:chenni525@qq.com进行投诉反馈,一经查实,立即删除!
最新文章
Python教程
深入理解 MySQL 中的 HAVING 关键字和聚合函数
Qt之QChar编码(1)
MyBatis入门基础篇
用Python脚本实现FFmpeg批量转换
C++实现基于线程池的HTTP服务器
c语言数据结构--希尔排序
Java中的public、private、static和final浅谈
自然语言处理2——轻松入门情感分析 - Python实战指南
js判断是否为数字的方法
某游戏网滑块逆向解析
升华 RabbitMQ:解锁一致性哈希交换机的奥秘【RabbitMQ 十】
常用的几种包管理器 npm yarn cnpm pnpm 安装
ChatGPT正确打开方式与GPT-4.5的key最新获取方式
容器安全工具