jmeter详解(1)-安装目录

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 数据集读取的文件中创建测试数据。这避免了在运行时浪费资源。

 

posted @ 2023-08-14 16:53  天才九少  阅读(104)  评论(0编辑  收藏  举报