服务端性能测试——性能测试工具JMeter-L1

第一遍没学懂,后续文章会更新~ 

目录:

  1. 1.JMeter介绍与安装
  2. Meter简介
  3. JMeter安装
  4. 2.JMeter的运行
  5. JMeter运行、界面功能简介
  6. 3.使用代理服务器录制请求
  7. 录制压测脚本(一)Web端
  8. 脚本录制方法
  9. 4.测试计划
  10. 5.线程组
  11. 6.控制器
  12. 7.JMeter采样器/取样器
  13. 8.JMeter场景逻辑控制技术
  14. 9.JMeter监听器
  15. 10.JMeter定时器
  16. 11.JMeter断言元件的使用
  17. 12.JMeter常用配置元件剖析
  18. 13.JMeter前置处理器
  19. 前置处理器
  20. SampleTimeout前置处理器
  21. Beanshell前置处理器
  22. 14.JMeter后置处理器
  23. 15.JMeter执行顺序
  24. 16.JMeter虚拟用户管理
  25. 17.HTTP请求属性设置
  26. 18.HTTPcookie设置
  27. Cookiemanager
  28. 19.HTTP信息头管理器
  29. Headermanager
  30. 20.HTTP请求设置
  31. 21.监听器与测试结果
  32. 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 种类多样
  • 展示 & 调试测试结果

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

高通rb5的fastboot设备识别不了及驱动安装问题

Android fastboot驱动无法安装和识别问题-CSDN博客 以上为转载出处。

已设定选项 ‘readonly‘ (请加 ! 强制执行)

这是vim编辑器报的错误,相信很多人都遇到过。在使用vi编辑一个需要sudo权限的文件后,保存的时候出现这样的错误。这个时候很多人做的事情可能就是不保存退出(敲命令:q!),然后再以sudo vi打开文件重新编辑一次。如果恰巧…

既然所有ERP系统都很烂,那创业公司有没有机会?

既然所有ERP系统都烂,那创业公司有没机会? 得一点点把这问题捋顺了再回答—— 先说说“都很烂”这个判断是否准确谈谈国产ERP和国际ERP厂商,新创公司是否有优势?最后聊一下创业本身,如何创业、风险如何…… 一些人可能对传统的ERP系统感到…

领域驱动模型之各层实体严格分层处理

为什么要分层处理呢? 在领域驱动模型中,分为应用层(application)、领域层(domain)、基础设施层(infrastructure)。各层只能处理和访问自己所属层的 entity 或者 dto 对象&#xff0…

态势研判能力再获“赞” | 安全狗连续3年获得中国网络空间安全协会感谢

在2024年的新年伊始,安全狗依托在2023年期间协助中国网络空间安全协会完成《网络安全态势感知研判分析报告》并支持相关网络安全态势研判工作而获得感谢信。 厦门服云信息科技有限公司(品牌名:安全狗)创办于2013年,是国…

IPv6路由协议---IPv6动态路由(OSPFv3-7)

OSPFv3和OSPFv2协议比较 1.不同点 (1)OSPFv3基于链路运行,不是基于IP子网运行。 OSPFv3运行在IPv6协议上,IPv6是基于链路而不是基于网段运行。这样,在配置OSPFv3时,不需要考虑是否配置在同一网段,只要在同一链路,就可以不配置IPv6全局地址而直接建立联系。 (2)OS…

JDBC初体验(二)

一、SQL注入 1.1 SQL注入原理 利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在web表单中输入(恶意的)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按…

S1-01 FreeRTOS

什么是FreeRTOS FreeRTOS是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。 由于RTOS需占用一定的系统资源(尤…

11Spring IoC注解式开发(下)(负责注入的注解/)

1负责注入的注解 负责注入的注解,常见的包括四个: ValueAutowiredQualifierResource 1.1 Value 当属性的类型是简单类型时,可以使用Value注解进行注入。Value注解可以出现在属性上、setter方法上、以及构造方法的形参上, 方便起见,一般直…

虚拟主机 如何上传大于100M的文件 php网站程序

问题 虚拟主机上传文件大小限制100m, 有时会遇到非常大的文件上传,上传过程中耗时非常久, 可能服务器的限制设置了上传文件尺寸,返回“413 request entity too large” 整体逻辑 前端:上传文件时,进行文…

高精度彩色3D相机:开启崭新的彩色3D成像时代

3D成像的新时代 近年来,机器人技术的快速发展促使对3D相机技术的需求不断增加,原因在于,相机在提高机器人的性能和实现多种功能方面发挥了决定性作用。然而,其中许多应用所需的解决方案更复杂,仅提供环境的深度信息是…

Linux CentOS 7.6安装nginx详细保姆级教程

一、通过wget下载nginx压缩包 1、进入home文件并创建nginx文件夹用来存放nginx压缩包 cd /home //进入home文件夹 mkdir nginx //创建nginx文件夹 cd nginx //进入nginx文件夹2、下载nginx,我这里下载的是Nginx 1.24.0版本,如果要下载新版本可以去官网进行下载:…

ChatGPT付费创作系统V2.5.5独立版+前端

ChatGPT付费创作系统V2.5.5版本优化了很多细节,功能增加增加长篇写作功能。该版本为编译版无开源,本版本特别处理了后台弹窗、暗链网址。特别优化了数据库。升级过程中未发现任何BUG,全新安装或者升级安装均未出现400或者500错误,…

LeetCode刷题--- 地下城游戏

个人主页:元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 个人专栏 力扣递归算法题 http://t.csdnimg.cn/yUl2I 【C】 ​​​​​​http://t.csdnimg.cn/6AbpV 数据结构与算法 ​​​http://t.csdnimg.cn/hKh2l 前言:这个专栏主要讲述动…

降低运营成本:采用安全托管服务(Managed Security Service,MSS)

文章目录 安全托管服务(MSS)?安全托管服务的内容安全风险评估安全监控预警安全应急响应安全问题咨询 企业为什么需要安全托管服务?与MSS合作的好处是什么?MSP和MSSP有何区别?MSSP如何向客户呈现服务内容企业可以托管哪些网络资产威胁管理托管…

算法训练营第四十二天|动态规划:01背包理论基础 416. 分割等和子集

目录 动态规划&#xff1a;01背包理论基础416. 分割等和子集 动态规划&#xff1a;01背包理论基础 文章链接&#xff1a;代码随想录 题目链接&#xff1a;卡码网&#xff1a;46. 携带研究材料 01背包问题 二维数组解法&#xff1a; #include <bits/stdc.h> using namesp…

楼宇管理新智慧:Panorama SCADA楼宇管理系统应用实例

一、背景介绍 楼宇管理系统旨在集中控制和监测楼宇运营&#xff0c;涵盖暖通空调&#xff08;HVAC&#xff09;、照明、电力系统、消防和安全系统等。通过直观的用户界面&#xff0c;用户得以实时监测和精准掌控这些系统&#xff0c;从而提升能源效率、确保设备正常运行&#…

Python - Bert-VITS2 语音推理服务部署

目录 一.引言 二.服务搭建 1.服务配置 2.服务代码 3.服务踩坑 三.服务使用 1.服务启动 2.服务调用 3.服务结果 四.总结 一.引言 上一篇文章我们介绍了如果使用 conda 搭建 Bert-VITS2 最新版本的环境并训练自定义语音&#xff0c;通过 1000 个 epoch 的训练&#xf…

如何彻底卸载Edge

要彻底卸载Edge浏览器&#xff0c;你可以按照以下几种方法操作&#xff1a; 方法一&#xff1a;使用控制面板 点击任务栏的“开始”按钮&#xff0c;打开“控制面板”。在控制面板中&#xff0c;选择“程序和功能”。在程序列表中找到Edge浏览器&#xff0c;右键点击它并选择…

如何使用ChemiCloud搭建WordPress外贸站完全指南(2024)

ChemiCloud是一家成立于2016年的云虚拟主机提供商&#xff0c;他们在全球范围内设有多个机房&#xff0c;并提供高性价比的服务。作为市场上最出色的WordPress外贸主机之一&#xff0c;ChemiCloud经过小编两个月的监控测试表现出色。 ChemiCloud的正常运行时间达到了99.99%&am…