首页 > 其他分享 >jmeter详解(1)-安装目录

jmeter详解(1)-安装目录

时间:2023-08-14 17:00:51浏览次数:42  
标签:JMeter HTTP 详解 线程 测试 使用 jmeter 目录

JMeter官网:

https://jmeter.apache.org/

GitHub:

https://github.com/apache/jmeter

用户文档(英文):

https://jmeter.apache.org/usermanual/index.html


 

ApacheJMeter可用于测试静态和动态资源、Web动态应用程序的性能。它可以用来模拟一台服务器、一组服务器、网络或对象上的重负载,以测试其强度或分析不同负载类型下的整体性能。
ApacheJMeter的功能包括:

(1)能够对许多不同的应用程序/服务器/协议类型进行负载和性能测试:

  • Web - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …)
  • SOAP / REST Webservices
  • FTP
  • Database via JDBC
  • LDAP
  • Message-oriented middleware (MOM) via JMS
  • Mail - SMTP(S), POP3(S) and IMAP(S)
  • Native commands or shell scripts
  • TCP
  • Java Objects

(2)全功能的测试IDE,允许快速测试计划记录(从浏览器或本地应用程序),构建和调试

(3)CLI模式(命令行模式(以前称为非GU) /headless模式),用于从任Java兼容的操作系统(Linux,Windows,Mac OSX,..

(4)一个完整且随时可以呈现动态HTML报告

(5)能从最流行的响应格式中提取数据并进行关联,如: HTMLJSON XML or any textual format

(6)完全的可移植性和100%的Java代码编写的纯应用

(7)完整的多线程框架允许多个线程的并发采样,以及通过单独的线程组同时采样不同的功能。

(8)缓存和离线分析/重放测试结果。

(9)高度可扩展的核心:

  • 可插拔采样器允许无限的测试能力。
  • 脚本采样器(兼容JSR223语言,如Groovy和BeanShell)
  • 可插拔定时器可以选择几个负载统计信息。
  • 数据分析和可视化插件允许很大的扩展性以及个性化。
  • 函数可用于为测试提供动态输入或提供数据操作。
  • 通过面向Maven、Gradle和Jenkins的第三方开源库轻松实现持续集成

 


 

安装目录详解:

版本:apache-jmeter-5.5

安装目录说明:

  • bin:包含启动、配置等相关命令
  • docs:官方接口文档,二次开发需要
  • extras:辅助库,持续集成会用到
  • lib:核心库,包含 JMeter 用到的各种基础库和插件依赖的jar包或存放自己二次开发的jar包;lib/ext文件夹:第三方插件、Jmeter二进制文件,
  • license:包含 non-ASF 软件的许可证
  • printable_docs:离线的帮助文档,可以查看函数等内容
  • LICENSE:JMeter 许可说明
  • NOTICE:JMeter 简单信息说明
  • README.md:JMeter 官方基本介绍

 printable_docs

函数和变量见:functions.html

取样器见:component_reference.html,包括取样器、逻辑控制器、监听器、环境变量、断言、计时器、前置处理器、后置处理器、其他功能

远程测试:remote-test.html

 

关于bin目录

  • jmeter.properties:JMeter 核心配置文件,各种配置基本在这完成
  • log4j.conf:JMeter日志配置管理
  • jmeter.log:JMeter运行日志记录,什么输出信息、警告、报错都在这里进行了记录
  • jmeter.bat:windows 下 jmeter 启动文件
  • jmeterw.cmd:windows 下 jmeter 的启动文件,不带cmd窗口
  • shutdown.cmd:windows 下 jmeter 关闭文件
  • stoptest.cmd:windows 下 jmeter 测试停止文件
  • jmeter-server.bat:windows 下 jmeter 服务器模式启动文件
  • jmeter-server:mac或者Liunx分布式压测使用的启动文件

jmeter.properties

配置项的说明在目录下:

printable_docs/usermanual/properties_reference.html


 

最佳实践(注意事项):
网址:https://jmeter.apache.org/usermanual/best-practices.html

(1)最好使用最新的JMeter版本

(2)使用正确的线程数

影响线程数的因素:

  • 硬件(自己的电脑等用于压测的机器)
  • 测试用例(test plan)的设计
  • 服务器响应速度(服务器响应速度快,返回给JMeter的响应速度就快,JMeter就需要花时间处理)

a)与任何负载测试工具一样,如果您没有正确地确定线程的数量,您将面临“协调遗漏”问题,这可能会给您错误或不准确的结果。

b)如果需要大规模的负载测试,可以考虑使用(或不使用)分布式模式在多台机器上运行多个CLIJMeter实例。当使用分布式模式时,result文件在Controller节点上组合。如果使用多自治实例,可以将示例结果文件组合起来进行后续的定量分析。

(3)添加Cookie管理器

要添加 cookie 支持,只需 在测试计划中的每个线程组中添加一个HTTP Cookie 管理器。这将确保每个线程都有自己的 cookie,但在所有HTTP 请求对象之间共享

(4)请求头管理

HTTP Header Manager允许您自定义 JMeter 在 HTTP 请求标头中发送的信息。此标头包括“User-Agent”、“Pragma”、“Referer”等属性。

HTTP Header Manager和HTTP Cookie Manager一样,应该在线程组级别添加,除非出于某种原因,您希望在测试中为不同的HTTP Request对象指定不同的标头。

(5)减少资源使用

关于减少资源使用的一些建议:

  • 使用CLI模式:jmeter -n -t test.jmx -l test.jtl
  • 使用尽可能少的 Listeners;如果使用上面的-l标志,它们都可以被删除或禁用。
  • 不要在负载测试期间使用“查看结果树”或“在表中查看结果”侦听器,仅在脚本编写阶段使用它们来调试脚本。
  • 与其使用大量相似的采样器,不如在循环中使用相同的采样器,并使用变量(CSV 数据集)来改变样本。[包含控制器在这里没有帮助,因为它将文件中的所有测试元素添加到测试计划中]
  • 不要使用功能模式(functional mode)
  • 使用 CSV 输出而不是 XML
  • 只保存您需要的数据
  • 使用尽可能少的断言
  • 使用性能最高的脚本语言(参见 JSR223 部分)
  • 不要忘了删除的本地路径设置配置如果使用CSV数据。
  • 每次测试运行前清理“文件”选项卡。

如果您的测试需要大量数据 - 特别是如果需要随机化 - 在可以使用 CSV 数据集读取的文件中创建测试数据。这避免了在运行时浪费资源。

 

标签:JMeter,HTTP,详解,线程,测试,使用,jmeter,目录
From: https://www.cnblogs.com/jiushao-ing/p/17628366.html

相关文章

  • Python PIL Image.crop()详解+裁剪四元组定位的小技巧
    0Image.crop详解image.crop是Python中用于裁剪图片的函数。在使用该函数前,我们需要先导入PIL库,即PythonImageLibrary。fromPILimportImage#打开图片img=Image.open('example.jpg')#图片的裁剪区域(区域左上角的坐标为(100,100),右下角的坐标为(300,300))crop_are......
  • Nginx配置文件nginx.conf详解
    usernginx;#用户worker_processes8;#工作进程,根据硬件调整,大于等于cpu核数error_loglogs/nginx_error.logcrit;#错误日志pidlogs/nginx.pid;#pid放置的位置worker_rlimit_nofile204800;#指定进程可以打开的最大描述符这个指令是指当一个nginx进程打开的最多文件描述符数目,理......
  • VM虚拟机三种网络配置详解(桥接、NAT、仅主机)
    VM虚拟机三种网络配置详解(桥接、NAT、仅主机)链接在学习网络配置之前,需要搞明白有关于网络的一些基本概念,什么是ip,子网掩码,网段,网关?这里只做最简单的解释,实际上远远不止这些。网络名词ip在现实生活中,这么大的一个中国,物流怎么能清楚的找到需要配送的终点,靠的就是地址。在互......
  • 【opencv】传统图像识别:hog+svm实现图像识别详解
    图像识别技术是信息时代的一门重要的技术,其产生目的是为了让计算机代替人类去处理大量的物理信息。传统图像识别技术的过程分为信息的获取、预处理、特征抽取和选择、分类器设计和分类决策。本文也是从这四点出发进行行文,以期了解传统图像识别技术、掌握hog特征提取和svm分类器。......
  • git 添加目录失败问题排查
      拷贝了一个已有项目到新项目目录后,发现有一个子目录无法添加到git管理中。这个子目录的特点是,曾经包含.git目录,然后被我手动删除。但是这个目录再也无法添加到git管理中,而且用gitstatus也无法显示其状态。查看已被排除的文件及目录gitstatus--ignored并没......
  • 序列化 - Kryo序列化详解
    什么是序列化序列化是指将数据结构或对象转换为可存储或传输的格式,以便在稍后的时间点重新构建或恢复原始数据结构或对象的过程。在计算机科学和编程中,序列化通常用于将内存中的数据转换为可以在磁盘上保存或通过网络传输的形式,以便在需要时进行持久化存储或在不同系统之间进行数......
  • 序列化 - jdk序列化详解
    当谈到在Java中将对象转换为字节流以便于存储、传输或持久化时,不可避免地会涉及到JDK序列化。JDK序列化是Java编程语言提供的一种机制,允许开发者将对象转换为字节序列,以便在稍后的时间点能够重新构建或恢复对象的状态。本文将深入介绍JDK序列化的概念、用法以及一些相关的......
  • jmeter-软测培训
    1:get请求 2:请求默认值步骤:新建线程组-配置原件/HTTP请求默认值 3:post请求 4:断言  http请求-添加断言-响应断言,测试模式里去匹配例如:http://httpbin.org/post运行,添加监听器-断言结果 5:数据驱动(数字表示层级)线程组-1循环控制器--2HTTP请求--3csv数据文件设置-......
  • Linux权限详解
    一、文件、目录权限和所有者简介:用户对一个文件或目录具有访问权限,这些访问权限决定了谁能访问,以及如何访问这些文件和目录。通过设置权限可以限制或允许以下三种用户访问:文件的用户所有者(属主)文件的组群所有者(用户所在组的同组用户)系统中的其他用户在linux系统中,每一位用户都有对......
  • Linux-wget命令使用及参数详解
    wget简介Linux系统中的wget是一个下载文件的工具,它用在命令行下。对于Linux用户是必不可少的工具,我们经常要下载一些软件或从远程服务器恢复备份到本地服务器。wget支持HTTP,HTTPS和FTP协议,可以使用HTTP代理。所谓的自动下载是指,wget可以在用户退出系统的之后在后台执行。这意......