一个开源 Java 应用程序,旨在测量性能和负载测试应用程序。
由 Apache 软件基金会提供
Apache JMeter 可以测量性能并对静态和动态 Web 应用程序进行负载测试。
它可用于模拟服务器、服务器组、网络或对象上的重负载,以测试其强度或分析不同负载类型下的整体性能。
完全可移植性和 100% Java。
多线程允许多个线程并发采样,并允许单独的线程组同时采样不同的函数。
能够加载和性能测试许多应用程序/服务器/协议类型:
功能齐全的测试 IDE,允许快速记录测试计划(从浏览器或本机应用程序)、构建和调试。
命令行模式(非 GUI/无头模式)可从任何 Java 兼容操作系统(Linux、Windows、Mac OSX...)加载测试
完整且随时可以呈现的动态 HTML 报告
实时报告第三方数据库,如 InfluxDB 或 Graphite
通过从最流行的响应格式、HTML、JSON、XML 或任何文本格式中提取数据的能力,轻松关联
最新版本的详细信息可以在 JMeter Apache 项目网站上找到
运行 Apache JMeter 需要满足以下要求:
Java 解释器:
Apache JMeter 的执行需要完全兼容的 Java 17 运行时环境。带有keytool
实用程序的 JDK 更适合记录 HTTPS 网站。
可选罐子:
有些 jar 不包含在 JMeter 中。如果需要,应下载这些并将其放置在 lib 目录中
Java 编译器(可选):
不需要 Java 编译器,因为发行版包含预编译的 Java 二进制存档。
请注意,需要编译器来构建 Apache JMeter 插件。
请注意,目录名称中的空格可能会导致问题。
发布版本
将二进制存档解压到合适的目录结构中。
bin
目录jmeter
(Un*x) 或jmeter.bat
(Windows) 文件。对于 Windows,还有一些其他脚本,您可以将 JMX 文件拖放到其中:
jmeter-n.cmd
- 将文件作为非 GUI 测试运行jmeter-nr.cmd
- 将文件作为非 GUI 远程(客户端-服务器)测试运行jmeter-t.cmd
- 加载文件准备将其作为 GUI 测试运行自本版本发布之日起可用的文档也以 HTML 格式包含在 printable_docs 目录中,并且可以从名为 index.html 的文件开始浏览。
请参阅问题跟踪。
将源存档解压到合适的目录结构中。大多数 3rd 方库文件可以通过将其解压到相同的目录结构中来从二进制存档中提取。
任何可选的 jar(见上文)都应放置在lib/opt
和/或lib
中。
lib/opt
中的 Jars 将用于构建 JMeter 和运行单元测试,但不会在运行时使用。
这对于测试如果其他 JMeter 用户未下载可选 jar 会发生什么情况非常有用。
如果您使用代理,您可以在~/.gradle/gradle.properties
中设置一些构建属性,以便 Gradle 使用代理:
systemProp.http.proxyHost =proxy.example.invalid
systemProp.http.proxyPort =8080
systemProp.http.proxyUser =your_user_name
systemProp.http.proxyPassword =your_password
systemProp.https.proxyHost =proxy.example.invalid
systemProp.https.proxyPort =8080
systemProp.https.proxyUser =your_user_name
systemProp.https.proxyPassword =your_password
JMeter 是使用 Gradle 构建的,它使用 Gradle 的 JVM 项目工具链来配置 JDK。这意味着代码会在本地搜索所需的 JDK,如果找不到则下载它们。
默认情况下,代码将使用 JDK 17 进行构建,但它将目标版本设置为 8,因此生成的工件将与 Java 8 兼容。
以下命令构建并测试 JMeter:
./gradlew build
如果您想使用自定义 JDK 进行构建,可以设置-PjdkBuildVersion=11
,如果您想使用不同的 JDK 进行测试,则可以选择-PjdkTestVersion=21
。
您可以通过执行列出可用的构建参数
./gradlew parameters
如果系统没有 GUI 显示,则:
./gradlew build -Djava.awt.headless=true
输出工件(jar、报告)放置在build
文件夹中。例如,可以在src/dist/build/distributions
下找到二进制工件。
以下命令将编译应用程序并使您能够从bin
目录运行jmeter
。
请注意,它完全刷新了
lib/
内容,因此如果您将自定义插件安装到lib/
它将删除它们。但是,它会保持lib/ext/
插件完好无损。
./gradlew createDist
或者,您可以让 Gradle 启动 GUI:
./gradlew runGui
构建和贡献在构建 JMeter 和 CONTRIBUTING.md 中有详细解释。有关可使用 Gradle 构建 JMeter 的任务的更多信息,请参阅 gradle.md。
代码可以从以下位置获取:
有关法律和许可信息,请参阅以下文件:
该发行版可能包括设计用于与加密软件一起使用的软件。您当前居住的国家/地区可能对加密软件的进口、拥有、使用和/或再出口到另一个国家/地区有限制。在使用任何加密软件之前,请检查您所在国家/地区有关进口、拥有或使用以及再出口加密软件的法律、法规和政策,以了解是否允许这样做。请参阅 https://www.wassenaar.org/ 了解更多信息。
美国政府商务部工业与安全局 (BIS) 已将此软件分类为出口商品控制编号 (ECCN) 5D002.C.1,其中包括使用非对称算法或执行加密功能的信息安全软件。此 Apache Software Foundation 发行版的形式和方式使其符合目标代码和源代码的许可例外 ENC 技术软件无限制 (TSU) 例外(请参阅 BIS 出口管理条例第 740.13 节)的出口资格。
以下提供了有关可能受加密软件出口管制的随附软件的更多详细信息:
Apache JMeter 与 Java 安全套接字扩展 (JSSE) API 接口以提供
Apache JMeter 与 Java 加密扩展 (JCE) API 接口(通过 Apache HttpClient4)以提供
Apache JMeter 不包含 JSSE 或 JCE 的任何实现。
感谢您使用 Apache JMeter。
mxparser 注意事项:
该产品包括由印第安纳大学 Extreme 开发的软件!实验室。欲了解更多信息,请访问 http://www.extreme.indiana.edu/