什么是Jmeter?Jmeter使用的原理步骤是什么?

1.1 什么是 JMeter
Apache JMeter 是 Apache 组织开发的基于 Java 的压力测试工具。用于对软件做压力测试,它最初被设计用于 Web 应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter 能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter 允许使用正则表达式创建断言。

Apache jmeter 可以用于对静态的和动态的资源(文件,Servlet,Perl 脚本,java 对象,数据库和查询,FTP 服务器等等)的性能进行测试。它可以用于对服务器、网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。

1.2 为什么是 JMeter
为什么选择 JMeter,下面看看 JMeter 的特色。

1. 开源许可: Jmeter 是完全免费的,并提供了源码可供自定义开发

2. 图形界面模式:提供了方便的图形界面来编辑和开发测试脚本

3. 平台无关:可以轻易在 windows、linux、mac 上运行

4. 多线程框架:通过线程组,能够轻易地设置不同测试的并发用户。

5. 图形测试结果:提供了图表、表格、树、文件等格式的结果显示。

6. 易于安装:jmeter 不需要安装,下载解压即可用。

7. 高扩展性:jmeter 支持用户自定义测试脚本,同样还提供了各种插件。

8. 多测试类型支持:支持性能测试、分布式测试、功能测试

9. 仿真模拟:支持多用户并发测试

10. 多协议支持:支持 http、jdbc、ldap、soap、jms、ftp 等等协议

11. 录制&回放:支持用 badboy 或 jmeter 录制

12. 脚本测试:jmeter 支持 beanshell 和 selenium

1.3 JMeter 工作原理

JMeter 基本工作原理如图:

JMeter 完整的工作原理如图:

 

1.4 总结
本次对 jmeter 进行了简单的基本介绍,主要让大家对 jmeter 有个基本的了解。

第二篇 JMeter 目录及关键配置分析
2.1 前言
学习一种工具,首先得对其关键配置及目录等有一个基本的了解,这样能更方便地深入掌握该工具,下面我们就 JMeter 的目录及相关关键配置进行分析说明。

2.2 下载安装
1. 安装主程序

从 Apache JMeter 官网下最新版本:

http://jmeter.apache.org/download_jmeter.cgi

下载后直接解压即可。

2. 安装插件管理


https://jmeter-plugins.org/install/Install/ 或 https://jmeter-plugins.org/downloads/all/ 下载插件管理包,如图:

将下载的包放至 jmemter 解压根目录的 lib/ext 下后重启jmeter即可。

2.3 目录说明

先看一下解压后的 JMeter 安装目录:

目录说明:

backups: 包含jmeter对测试计划的自动备份保存

 bin: 包含启动、配置等相关命令

 docs: 官方本地文档目录

 extras: 辅助库

 lib: 核心库,包含 JMeter 用到的各种基础库和插件

 licenses: 包含 non-ASF 软件的许可证

 printable_docs: 可打印版本文档目录

 LICENSE: JMeter 许可说明

 NOTICE: JMeter 简单信息说明

 README.md: JMeter 官方基本介绍

下面我们重点看下 bin 目录,如图:

主要介绍 bin 目录下我们最关注几个文件:

 jmeter.properties: JMeter 核心配置文件,各种配置基本在这完成

 log4j.conf: JMeter 日志配置管理

 jmeter.log: JMeter 运行日志记录,什么输出信息、警告、报错都在这里进行了记录

 jmeter.bat: windows 下 jmeter 启动文件

 shutdown.cmd: windows 下 jmeter 关闭文件

 stoptest.cmd: windows 下 jmeter 测试停止文件

 jmeter-server.bat: windows 下 jmeter 服务器模式启动文件

注:每一个.cmd 文件都对应一个.sh 文件,.sh 是 linux 下的对应功能的文件,其他文件的功能就不一一说明了,同时其他目录这里也不再进行阐述,有兴趣的可以自己深入看下。

2.4 关键配置说明
1. jmeter.properties 配置说明

主要包含以下几个方面的配置:

SSL 配置:

重点关注下面几个配置

# 指定 HTTPS 协议层

https.default.protocol=TLS

# 指定 SSL 版本,实际应用中可能需要修改

https.default.protocol=SSLv3

# 设置启动的协议

https.socket.protocols=SSLv2Hello SSLv3 TLSv1

# 缓存控制,控制 SSL 是否可以在多个迭代中重用

https.use.cached.ssl.context=true

JMeter 界面显示配置

这里就不对其界面显示控制进行说明了,一般情况下默认界面能满足大家的应用了。

JMeter 测试项目自动备份配置

# 设置是否启用自动备份,默认是 true

jmeter.gui.action.save.backup_on_save=true

# 设置自动备份目录,默认备份至 JMeter 根目录的 backups下

jmeter.gui.action.save.backup_directory=

# 设置自动备份项目数,默认为最近 10 个

jmeter.gui.action.save.keep_backup_max_count=10

远程主机配置

# 配置远程主机的 IP,默认为本机。用逗号","可以设置多个远程主机

remote_hosts=127.0.0.1

# 多个远程主机指定示例如下,其中:后为端口

remote_hosts=127.0.0.1:1099,127.0.0.1:1200,127.0.0.1:1300

对于 RMID 的配置请直接看配置文件中的选项说明

日志管理配置

# 设置日志格式

log_format_type=default

# 设置日志输出级别

log_level.jmeter=INFO

# 设置 junit 日志输出级别

log_level.jmeter.junit=DEBUG

# 设置日志输出目标文件,默认为 jmeter.log

log_file=jmeter.log

等等其他还有 10 多个配置大项(就不一一列举了)

jmeter.bat 关键配置修改

为了更优化的使用 jmeter,需要对 jmeter.bat 中的一些配置根据当前机器的配置进行优化,这里进行关键配置项说明,找到这些配置,对其中的数值根据当前机器的硬件配置来修改。

set HEAP=-Xms2048m -Xmx2048m

set NEW=-XX:NewSize=512m -XX:MaxNewSize=512m

set SURVIVOR=-XX:SurvivorRatio=8 -

XX:TargetSurvivorRatio=50%

set TENURING=-XX:MaxTenuringThreshold=2

if %current_minor% LEQ "8" (

rem Increase MaxPermSize if you use a lot of Javascript in

your Test Plan :

set PERM=-XX:PermSize=512m -

XX:MaxPermSize=1024m

)

2.5 启动 jmeter
在 bin 目录下直接双击 jmeter.bat 即可

启动后的界面如下:

2.6 总结

本次就 jmeter 的安装和配置及关键配置项进行了分享,大家可以深入的去研究下其他的一些配置,以便进一步的熟悉 jmeter 的原理和应用。

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

 

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

文档获取方式: 

加入我的软件测试交流群:822269834免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取

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

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

相关文章

【并发编程】ThreadLocal详解与原理

📫作者简介:小明Java问道之路,2022年度博客之星全国TOP3,专注于后端、中间件、计算机底层、架构设计演进与稳定性建设优化,文章内容兼具广度、深度、大厂技术方案,对待技术喜欢推理加验证,就职于…

Verilog开源项目——百兆以太网交换机(三)Hash模块设计

Verilog开源项目——百兆以太网交换机(三)Hash模块设计 🔈声明:未经作者允许,禁止转载 😃博主主页:王_嘻嘻的CSDN主页 🔑全新原创以太网交换机项目,Blog内容将聚焦整体架…

C++二分查找算法:132 模式解法三枚举1

本文涉及的基础知识点 二分查找算法合集 本题不同解法 包括题目及代码C二分查找算法:132 模式解法一枚举3C二分查找算法:132 模式解法二枚举2代码最简洁C二分查找算法:132 模式解法三枚举1性能最佳C单调向量算法:132 模式解法三…

01背包与完全背包学习总结

背包问题分类见下图 参考学习点击:代码随想录01背包讲解 01背包问题: 核心思路: 1、先遍历物品个数,再遍历背包容量。因为容量最先是最大的,往背包里放物品,所以背包容量在慢慢减少,但背包容量…

小程序泄露腾讯地图apikey

今天挖小程序时测了很久,一直没有头绪,后来想要测试一下支付漏洞,但是这里却出问题了 添加地址时我发现,当我添加一个地址时,他会显示腾讯地图的logo和一部分小图,那时候我就在想,既然这里可以调…

基于区域划分的GaN HEMT 准物理大信号模型

GaN HEMT器件的大信号等效电路模型分为经验基模型和物理基模型。经验基模型具有较高精度但参数提取困难,特别在GaN HEMT器件工艺不稳定的情况下不易应用。相比之下,物理基模型从器件工作机理出发,参数提取相对方便,且更容易更新和…

C++之常用的排序算法

C之常用的排序算法 sort #include<iostream> using namespace std; #include<vector> #include<algorithm> #include<functional> void Myptint(int val) {cout << val << " "; }void test() {vector<int> v;v.push_back(…

vue3引入vuex基础

一&#xff1a;前言 使用 vuex 可以方便我们对数据的统一化管理&#xff0c;便于各组件间数据的传递&#xff0c;定义一个全局对象&#xff0c;在多组件之间进行维护更新。因此&#xff0c;vuex 是在项目开发中很重要的一个部分。接下来让我们一起来看看如何使用 vuex 吧&#…

2017年全国硕士研究生入学统一考试管理类专业学位联考数学试题——解析版

文章目录 2017 级考研管理类联考数学真题解析一、问题求解&#xff08;本大题共 5 小题&#xff0c;每小题 3 分&#xff0c;共 45 分&#xff09;下列每题给出 5 个选项中&#xff0c;只有一个是符合要求的&#xff0c;请在答题卡上将所选择的字母涂黑。真题&#xff08;2017-…

持续集成失败:hudson.plugins.git.GitException: Failed to delete workspace

持续集成环境(git gitlab jenkins pipeline maven harbor docker k8s)之前都是ok的&#xff0c;突然就报错了&#xff1a; Cloning the remote Git repository Cloning repository git192.168.117.180:qzcsbj/gift.git ERROR: Failed to clean the workspace jenkins.ut…

【人工智能入门学习资料福利】

总目录如下&#xff08;部分截取&#xff09;&#xff1a; 百度网盘链接&#xff1a;https://pan.baidu.com/s/1bfDVG-xcPR3f3nfBJXxqQQ?pwdifu6 提取码&#xff1a; ifu6

对线程的创建

一&#xff0c;概括 二&#xff0c;线程构建方式一&#xff08;继承Thread类&#xff09; 三&#xff0c;案例 父类&#xff1a; package Duoxiancheng;public abstract class Name {public static void main(String[] args) {//3&#xff0c;创建一个Thread线程类对象Thr…