掌握高效性能测试技能:JMeter基础入门!

一、JMeter基础

A、JMeter介绍

Apache JMeter是Apache组织开发的基于Java的压力测试工具。

Apache JMeter may be used to test performance both on static and dynamic resources (files, Servlets, Perl scripts, Java Objects, Data Bases and Queries, FTP Servers and more). It can be used to simulate a heavy load on a server, network or object to test its strength or to analyze overall performance under different load types. You can use it to make a graphical analysis of performance or to test your server/script/object behavior under heavy concurrent load.

用于对软件做压力测试,最初被设计用于web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java服务程序、CGI脚本、Java对象、数据库、FTP服务器等等。

JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证程序是否返回期望的结果。

B、JMeter特点

关注点:工具成本(license);学习成本;生命力;跨平台。

JMeter开源、轻量级、适合自动化测试和持续集成。

  1. 能够对HTTP、数据库服务器进行压力和性能测试
  2. 开源,使用Java编写,跨平台
  3. 多线程框架,允许通过多个线程并发取样
  4. 提供负载统计表
  5. 提供可拓展性(插件)

C、JMeter安装

  • JMeter官网 - http://jmeter.apache.org/
  • JMeter下载地址 - http://jmeter.apache.org/download_jmeter.cgi
  • JMeter最新版本 - Apache JMeter 5.1.1 (Requires Java 8+)
  • JMeter执行文件和源文件集合 - https://archive.apache.org/dist/jmeter/

D、JMeter目录介绍

bin:可执行文件目录

  • examples:CSVSample
  • jmeter.bat:Windows下的启动文件
  • jmeter.log:日志文件
  • jmeter.sh:Linux下的启动文件
  • jmeter.properties:系统配置文件(常用)
    • sampleresult.default.encoding=UTF-8
    • language=en
  • jmeter-server.bat:Windows分布式服务器端

docs:文档目录

extras:扩展插件目录

lib:jar包,JMeter会自动在lib和ext目录下寻找需要的类

lib目录下的ext子目录是jmeter的核心jar包;用户扩展所依赖的包不能直接放到lib下,需要放到lib/ext下

PS:无法识别zip格式的包文件,包文件均要求以.jar结尾。

printable_docs:usermanual子目录下是JMeter用户手册,component_reference.html是最常用的核心元件帮助手册

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036【暗号:csdn999】

二、JMeter体系结构

整体来讲JMeter主要由四部分组成:

  • 模拟
  • 验证
  • 收集结构
  • 负责周边

A、模拟部分:取样器、配置元件、控制器、定时器、前置处理器、后置处理器、线程组

线程组用来建立线程池,多线程运行其他模拟、断言、监听部分;

配置元件用来做一些数据准备,通用请求准备,如设置一些默认值HTTP请求;

控制器用来处理逻辑关系,如循环、分支、交替、事务等;

定时器用于处理思考时间、集合点、随机时间等工作;

前置处理器用来对请求前的数据进行处理,如JDBC请求前的数据准备等;

后置处理器用来对请求返回后的数据进行处理,如关联。

B、验证部分:断言

断言是测试的精髓,用于判断返回值与预期是否一致。

C、收集和展示部分:监听器

监听器用来收集数据和展示数据,如测试结果等。

D、周边部分:工作台

可以放置备用元件、抽象的模块等。

E、JMeter分布式运行原理图

F、JMeter测试计划

测试计划是用来管理整个测试的,计划和线程组都可以理解为容器,是用来放东西的。测试计划可以用来管理测试套、测试工程、测试包等。一个测试计划至少一个包括:1个测试计划、1个以上线程组、1个以上取样器、1个以上监听器。

三、JMeter基本开发流程

JMeter工作区主要为元件树、编辑区、菜单及工具区。

A、JMeter脚本录制方法

1、录制方法一 - Badboy录制

  • 使用Badboy录制脚本,录制、参数化、检查点、回放。
  • 导入Badboy脚本,从BadboyFile菜单中导出JMeter脚本,使用JMeter直接打开。
  • 脚本增强,添加查看结果树监听器让执行结果可见。

修正断言,断言可能在超级链接、HTML元素大小写变化等方面会发生变化,需要回复修正,用于增强JMeter测试计划可读性。

2、录制方法二 - JMeter录制

1).JMeter配置代理录制,非测试元件->HTTP代理服务器,配置代理,启动。

2).为浏览器配置代理

3).网页端操作

3、录制的缺点

  • JMeter录制会有很多干扰
  • 对于使用动态加载方式(Ajax+JS+JSON)来出来的结果,JMeter处理的不好
  • JMeter调试,添加监听器->查看结果树

{"paging": {"is_end": true,"totals": 1,"previous": "https://www.zhihu.com/members/isisiyu/followees?include=data%5B%2A%5D.answer_count%2Carticles_count%2Cgender%2Cfollower_count%2Cis_followed%2Cis_following%2Cbadge%5B%3F%28type%3Dbest_answerer%29%5D.topics&limit=20&offset=0","is_start": true,"next": "https://www.zhihu.com/members/isisiyu/followees?include=data%5B%2A%5D.answer_count%2Carticles_count%2Cgender%2Cfollower_count%2Cis_followed%2Cis_following%2Cbadge%5B%3F%28type%3Dbest_answerer%29%5D.topics&limit=20&offset=20"},"data": [{"is_followed": false,"avatar_url_template": "https://pic3.zhimg.com/v2-a6d6098f23bf16f13b32ab78a2b8e68e_{size}.jpg","user_type": "people","answer_count": 0,"is_following": false,"url": "https://www.zhihu.com/people/681c946bd6663b43149cf446f2d8a253","type": "people","url_token": "isisiwish","id": "681c946bd6663b43149cf446f2d8a253","articles_count": 151,"name": "isisiwish","headline": "","gender": 1,"vip_info": {"is_vip": true,"vip_icon": {"night_mode_url": "https://pic3.zhimg.com/50/v2-c9686ff064ea3579730756ac6c289978_r.png","url": "https://pic2.zhimg.com/50/v2-034fefe15c83232cb448718998719d34_r.png"}},"is_advertiser": false,"avatar_url": "https://pic3.zhimg.com/v2-a6d6098f23bf16f13b32ab78a2b8e68e_is.jpg","is_org": false,"follower_count": 74,"badge": []}]
}

4、Firefox下导入证书

后续继续总结JMeter相关内容。

END今天的分享就到此结束了!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【活动回顾】sCrypt在柏林B2029开发者周

B2029 是柏林的一个区块链爱好者、艺术家和建设者聚会,学习、讨论和共同构建比特币区块链地方。 在2023年6月9日至11日,举行了第7次Hello Metanet研讨会。本次研讨会旨在为参与者提供一个学习、讨论和共同构建比特币区块链的平台。 在这个充满激情和创意…

旋转框检测项目相关python库知识总结(mmrotate、ppyolo_r、yolov5_obb)

旋转框常用于检测带有角度信息的矩形框,即矩形框的宽和高不再与图像坐标轴平行。相较于水平矩形框,旋转矩形框一般包括更少的背景信息。旋转框检测常用于遥感等场景中,本博文简单的介绍了可应用于旋转框数据训练的开源库,数据结构…

SpringCloud 微服务全栈体系(十八)

第十一章 分布式搜索引擎 elasticsearch 八、RestClient 查询文档 文档的查询同样适用 RestHighLevelClient 对象,基本步骤包括: 准备 Request 对象准备请求参数发起请求解析响应 1. 快速入门 以 match_all 查询为例 1.1 发起查询请求 代码解读&…

数字技术-IPC专利分类号对应表

数字技术-IPC专利分类号对应表,基于2023年的关键数字技术专利分类体系,通过国际专利分类(IPC)号进行筛选。这些数据涵盖了各种数字技术领域的创新,包括但不限于人工智能、大数据、云计算、物联网、5G通信等。利用关键词…

538. 把二叉搜索树转换为累加树

538. 把二叉搜索树转换为累加树 题目: 给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。 提醒…

浅谈联网汽车安全漏洞

“智能网联汽车存在内生共性问题,即软硬件的漏洞后门,基于此进行的网络攻击可以直接带来勒索、盗窃、大规模车辆恶意操控风险,还有数据泄露等网络安全事件。如果内生的漏洞后门问题不解决,系统自身难保,很难谈系统安全…

QTextEdit多行富文本框控件

​锋哥原创的PyQt6视频教程: 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计21条视频,包括:2024版 PyQt6 Python桌面开发 视频教程(无废话…

推荐你一个基于Koin, Ktor Paging等组件的KMM Compose Multiplatform项目

推荐你一个基于Koin, Ktor & Paging等组件的KMM Compose Multiplatform项目 Kotlin Multiplatform Mobile(KMM)已经从一个雄心勃勃的想法发展成为一个稳定而强大的框架,为开发人员提供了在多个平台上无缝共享代码的能力。通过最近的稳定…

平衡二叉树(AVL)

(附代码,简洁好理解) 目录 什么是平衡二叉树? 如何保证二叉树平衡? 左旋/右旋 左右双旋/右左双旋 代码 树的结构: 树的高度与平衡因子: 左/右旋: 平衡维护: …

70-76-堆、贪心算法

LeetCode 热题 100 文章目录 LeetCode 热题 100堆70. 中等-数组中的第K个最大元素71. 中等-前K个高频元素72. 困难-数据流中的中位数 贪心算法73. 简单-买卖股票的最佳时机74. 中等-跳跃游戏75. 中等-跳跃游戏II76. 中等-划分字母区间 本文存储我刷题的笔记。 堆 70. 中等-数组…

数字图像处理Python实现-图像特效与卷积滤波

图像特效与卷积滤波 文章目录 图像特效与卷积滤波1、准备2、快速了解卷积滤波3、应用卷积滤波在这篇文章中,我们将探索如何使用卷积内核来实现图像的模糊、锐化、轮廓和浮雕等特效。 1、准备 像往常一样,我们导入 numpy 和 matplotlib 等库。 此外,我们从 skimage 和 scipy…

命令行编译java

十分惭愧,java学了有七八年了,现在才来写这个博客,但是相信正确的事情即使迟到也好过不到,希望借助博客可以帮助记忆。 单个java文件 这个相信大家都知道,只是为了结构明确。这里java会找到内部的main方法。必须是在…

跨境电商系统开发:开启全球贸易新纪元

随着全球电子商务的飞速发展,跨境电子商务已经成为了一种日益重要的贸易形式。跨境电商系统开发,为企业提供了全新的商业机遇,打开了全球贸易的新纪元。 跨境电商系统开发,旨在实现不同国家和地区之间的电子商务交易,促…

【机器学习】迁移学习

迁移学习:给定一个有标记的源域和一个无标记的目标域。这两个领域的数据分布不同。迁移学习的目的就是要借助源域的知识,来学习目标域的知识(标签)。或是指基于源域数据和目标域数据、源任务和目标任务之间的相似性,利用在源领域中学习到的知…

计算机毕业设计|基于SpringBoot+MyBatis框架的电脑商城的设计与实现(商品和购物车)

计算机毕业设计|基于SpringBootMyBatis框架的电脑商城的设计与实现(商品和购物车) 商品热销排行 1 商品-创建数据表 1.使用use命令先选中store数据库。 USE store;2.在store数据库中创建t_product数据表。 CREATE TABLE t_product (id int(20) NOT …

Git开发实用技巧

文章目录 一图胜千言:

SCI一区级 | Matlab实现GWO-CNN-LSTM-selfAttention多变量多步时间序列预测

SCI一区级 | Matlab实现GWO-CNN-LSTM-selfAttention多变量多步时间序列预测 目录 SCI一区级 | Matlab实现GWO-CNN-LSTM-selfAttention多变量多步时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现GWO-CNN-LSTM-selfAttention灰狼算法优化卷积长短…

中国加氢催化剂行业研究与投资前景报告(2023版)

内容简介: 炼油厂催化剂市场因类型、材料和地区而分散。不同的产品类型包括流化催化裂化(FCC)、烷基化、重整和异构化、加氢处理等。基于材料,产品分为沸石、金属、化合物等催化剂。钼、钒、镍、钴和其他贵金属和稀土金属属于用于金属基炼油…

介绍比特币上的 sCrypt 开发平台

最强大的基础设施和工具套件,可轻松构建和扩展您的 dApp 杀手级应用在哪里? 尽管比特币在小额支付、国际汇款和供应链管理等广泛用例中具有颠覆性潜力,但在推出 14 年后,我们还没有看到一款非常受欢迎并被主流采用的杀手级应用。 …

Java 从丑陋的典例代码来谈谈卫语句(guard statement)if else

最近在重构些老项目,发现了些比较典型的代码块。 想到这些常见的写法,可能初学者还是比较容易‘产出’的,所以决定拎出来说说。 实例: 可以看到,这是一个用于新增&修改前的一个名称检测是否重复的函数。 /*** 检测…