2017-10-25 21:15:15 +08:00
|
|
|
<h1 align="center"><img src="https://jmeter.apache.org/images/logo.svg" alt="Apache JMeter logo" /></h1>
|
2017-10-26 02:39:13 +08:00
|
|
|
<h4 align="center">Open Source application designed to load test applications and measure performance. By The Apache Software Foundation</h4>
|
2017-10-25 21:12:04 +08:00
|
|
|
<br>
|
2017-05-07 05:29:22 +08:00
|
|
|
|
2017-10-28 04:16:20 +08:00
|
|
|
[](https://jmeter.apache.org)
|
2017-05-07 05:28:17 +08:00
|
|
|
[](https://travis-ci.org/apache/jmeter/)
|
2017-10-28 04:16:20 +08:00
|
|
|
[](https://codecov.io/gh/apache/jmeter)
|
2017-05-07 05:28:17 +08:00
|
|
|
[](https://maven-badges.herokuapp.com/maven-central/org.apache.jmeter/ApacheJMeter)
|
2017-10-28 04:16:20 +08:00
|
|
|
[](https://jitpack.io/#apache/jmeter)
|
2017-08-27 01:48:03 +08:00
|
|
|
[](http://www.apache.org/licenses/LICENSE-2.0.html)
|
|
|
|
[](http://stackoverflow.com/questions/tagged/jmeter)
|
2017-10-28 04:16:20 +08:00
|
|
|
[](https://twitter.com/intent/tweet?text=Powerful%20load%20testing%20with%20Apache%20JMeter:&url=%5Bobject%20Object%5D)
|
2016-09-28 01:04:21 +08:00
|
|
|
|
|
|
|
## What is it?
|
|
|
|
|
|
|
|
Apache JMeter is a 100% pure Java application designed to test
|
|
|
|
and measure performance. It may be used as a highly portable
|
2017-02-06 04:50:04 +08:00
|
|
|
server benchmark as well as multi-client load generator.
|
2016-09-28 01:04:21 +08:00
|
|
|
|
|
|
|
Apache JMeter features include:
|
|
|
|
|
|
|
|
Ability to load and performance test many different server/protocol types:
|
|
|
|
- Web - HTTP, HTTPS
|
|
|
|
- SOAP / REST
|
|
|
|
- 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
|
|
|
|
|
2017-02-06 04:50:04 +08:00
|
|
|
Full multi-threading framework allows concurrent sampling by many threads
|
2016-09-28 01:04:21 +08:00
|
|
|
and simultaneous sampling of different functions by separate thread groups.
|
|
|
|
Careful GUI design allows faster Test Plan building and debugging.
|
|
|
|
Caching and offline analysis/replaying of test results.
|
|
|
|
|
|
|
|
Highly Extensible core:
|
|
|
|
- Pluggable Samplers allow unlimited testing capabilities.
|
2017-02-06 04:50:04 +08:00
|
|
|
- Several load statistics may be chosen with pluggable timers.
|
|
|
|
- Data analysis and visualization plugins allow great extensibility and personalization.
|
2016-09-28 01:04:21 +08:00
|
|
|
- Functions can be used to provide dynamic input to a test or provide data manipulation.
|
2017-02-06 04:50:04 +08:00
|
|
|
- Scriptable Samplers (Groovy, BeanShell, BSF- and JSR223- compatible languages)
|
2016-09-28 01:04:21 +08:00
|
|
|
|
|
|
|
|
|
|
|
## The Latest Version
|
|
|
|
|
2017-03-06 15:46:15 +08:00
|
|
|
Details of the latest version can be found on the JMeter Apache
|
2017-10-26 02:42:45 +08:00
|
|
|
Project web site (https://jmeter.apache.org/).
|
2016-09-28 01:04:21 +08:00
|
|
|
|
|
|
|
## Requirements
|
|
|
|
|
|
|
|
The following requirements exist for running Apache JMeter:
|
|
|
|
|
2017-02-06 04:50:04 +08:00
|
|
|
* Java Interpreter:
|
2016-09-28 01:04:21 +08:00
|
|
|
|
2017-09-23 17:42:16 +08:00
|
|
|
A fully compliant Java 8 Runtime Environment is required
|
2017-03-06 15:46:15 +08:00
|
|
|
for Apache JMeter to execute. A JDK with keytool utility is better suited
|
|
|
|
for Recording HTTPS websites.
|
2017-09-23 17:42:16 +08:00
|
|
|
Java 9 is not yet supported as of version 3.3.
|
2016-09-28 01:04:21 +08:00
|
|
|
|
2017-02-06 04:50:04 +08:00
|
|
|
* Optional jars:
|
2016-09-28 01:04:21 +08:00
|
|
|
|
|
|
|
Some jars are not included with JMeter.
|
|
|
|
If required, these should be downloaded and placed in the lib directory
|
|
|
|
|
2017-02-06 04:50:04 +08:00
|
|
|
* JDBC - available from the database supplier
|
|
|
|
* JMS - available from the JMS provider
|
|
|
|
* [Bouncy Castle](http://www.bouncycastle.org/latest_releases.html) -
|
|
|
|
only needed for SMIME Assertion
|
2016-09-28 01:04:21 +08:00
|
|
|
|
2017-02-06 04:50:04 +08:00
|
|
|
* Java Compiler (OPTIONAL):
|
2016-09-28 01:04:21 +08:00
|
|
|
|
|
|
|
A Java compiler is not needed since the distribution includes a
|
|
|
|
precompiled Java binary archive. _Note that a compiler is required
|
2017-02-06 04:50:04 +08:00
|
|
|
to build plugins for Apache JMeter._
|
2016-09-28 01:04:21 +08:00
|
|
|
|
|
|
|
## Installation Instructions
|
|
|
|
|
|
|
|
_Note that spaces in directory names can cause problems._
|
|
|
|
|
2017-02-06 04:50:04 +08:00
|
|
|
* Release builds
|
2016-09-28 01:04:21 +08:00
|
|
|
|
|
|
|
Unpack the binary archive into a suitable directory structure.
|
|
|
|
|
|
|
|
## Running JMeter
|
|
|
|
|
2017-02-06 04:50:04 +08:00
|
|
|
1. Change to the `bin` directory
|
|
|
|
2. Run the `jmeter` (Un\*x) or `jmeter.bat` (Windows) file.
|
2016-09-28 01:04:21 +08:00
|
|
|
|
2017-02-06 04:50:04 +08:00
|
|
|
### Windows
|
2016-09-28 01:04:21 +08:00
|
|
|
|
2017-02-06 04:50:04 +08:00
|
|
|
For Windows there are also some other scripts which you can drag-and-drop
|
|
|
|
a JMX file onto:
|
2016-09-28 01:04:21 +08:00
|
|
|
|
2017-02-06 04:50:04 +08:00
|
|
|
* `jmeter-n.cmd` - runs the file as a non-GUI test
|
|
|
|
* `jmeter-n-r.cmd` - runs the file as a non-GUI remote (client-server) test
|
|
|
|
* `jmeter-t.cmd` - loads the file ready to run it as a GUI test
|
2016-09-28 01:04:21 +08:00
|
|
|
|
|
|
|
## Documentation
|
|
|
|
|
|
|
|
The documentation available as of the date of this release is
|
|
|
|
also included, in HTML format, in the `printable_docs/` directory,
|
|
|
|
and it may be browsed starting from the file called `index.html`.
|
|
|
|
|
2017-08-27 01:55:35 +08:00
|
|
|
## Reporting a bug/enhancement
|
|
|
|
|
2017-10-26 02:42:45 +08:00
|
|
|
See [Issue Tracking](https://jmeter.apache.org/issues.html)
|
2017-08-27 01:55:35 +08:00
|
|
|
|
2016-09-28 01:04:21 +08:00
|
|
|
## Build instructions
|
|
|
|
|
2017-02-06 04:50:04 +08:00
|
|
|
### Release builds
|
2016-09-28 01:04:21 +08:00
|
|
|
|
2017-02-06 04:50:04 +08:00
|
|
|
Unpack the source archive into a suitable directory structure.
|
|
|
|
Most of the 3rd party library files can be extracted from the binary archive
|
|
|
|
by unpacking it into the same directory structure.
|
|
|
|
You can also use Ant to download the required library files:
|
2016-09-28 01:04:21 +08:00
|
|
|
|
|
|
|
```sh
|
|
|
|
ant download_jars
|
|
|
|
```
|
|
|
|
|
|
|
|
Any optional jars (see above) should be placed in `lib/opt` and/or `lib`.
|
|
|
|
|
2017-02-06 04:50:04 +08:00
|
|
|
Jars in `lib/opt` will be used for building JMeter and running the unit tests,
|
2016-09-28 01:04:21 +08:00
|
|
|
but won't be used at run-time.
|
|
|
|
|
|
|
|
_This is useful for testing what happens if the optional jars are not
|
|
|
|
downloaded by other JMeter users._
|
|
|
|
|
2017-03-24 04:44:50 +08:00
|
|
|
If you are behind a proxy, you can set a few build properties in `build-local.properties` for ant to use the proxy:
|
2017-03-18 05:20:45 +08:00
|
|
|
|
2017-03-24 04:44:50 +08:00
|
|
|
```
|
2017-03-25 02:58:07 +08:00
|
|
|
proxy.use=true
|
2017-03-24 04:44:50 +08:00
|
|
|
proxy.host=proxy.example.invalid
|
|
|
|
proxy.port=8080
|
|
|
|
proxy.user=your_user_name
|
|
|
|
proxy.pass=your_password
|
2017-03-18 05:20:45 +08:00
|
|
|
```
|
|
|
|
|
2017-03-24 05:07:53 +08:00
|
|
|
You might also want to skip some tests - that are failing without proper access to the internet - by adding some more
|
|
|
|
properties into `build-local.properties`:
|
|
|
|
```
|
|
|
|
skip.bug52310=true
|
|
|
|
skip.bug60607=true
|
|
|
|
skip.batchtest_Http4ImplPreemptiveBasicAuth=true
|
|
|
|
skip.batchtest_SlowCharsFeature=true
|
|
|
|
skip.batchtest_TestKeepAlive=true
|
2017-05-07 05:31:40 +08:00
|
|
|
skip.batchtest_ResponseDecompression=true
|
2017-03-24 05:07:53 +08:00
|
|
|
skip.test_http=true
|
|
|
|
skip.test_TestDNSCacheManager.testWithCustomResolverAnd1Server=true
|
|
|
|
```
|
|
|
|
|
2017-02-06 04:50:04 +08:00
|
|
|
### Test builds
|
|
|
|
|
2016-09-28 01:04:21 +08:00
|
|
|
JMeter is built using Ant.
|
|
|
|
|
|
|
|
Change to the top-level directory and issue the command:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
ant download_jars
|
|
|
|
```
|
2017-02-06 04:50:04 +08:00
|
|
|
_This only needs to be done once; it will download any missing 3rd party jars._
|
2016-09-28 01:04:21 +08:00
|
|
|
|
|
|
|
```sh
|
|
|
|
ant
|
|
|
|
```
|
|
|
|
|
2017-02-06 04:50:04 +08:00
|
|
|
This will compile the application and enable you to run `jmeter` from the `bin`
|
2016-09-28 01:04:21 +08:00
|
|
|
directory.
|
|
|
|
|
|
|
|
```sh
|
|
|
|
ant test [-Djava.awt.headless=true]
|
|
|
|
```
|
|
|
|
|
|
|
|
This will compile and run the unit tests.
|
|
|
|
The optional property definition is required if the system
|
|
|
|
does not have a suitable GUI display.
|
|
|
|
|
|
|
|
## Developer information
|
|
|
|
|
2017-10-26 02:42:45 +08:00
|
|
|
Building and contributing is explained in details at https://jmeter.apache.org/building.html
|
|
|
|
|
2016-09-28 01:04:21 +08:00
|
|
|
The code is maintained in SVN at https://svn.apache.org/repos/asf/jmeter/trunk
|
|
|
|
|
|
|
|
There is a read-only mirror at GitHub: https://github.com/apache/jmeter
|
|
|
|
|
2017-02-06 04:50:04 +08:00
|
|
|
## Licensing and legal information
|
2016-09-28 01:04:21 +08:00
|
|
|
|
2017-02-06 04:50:04 +08:00
|
|
|
For legal and licensing information, please see the following files:
|
2016-09-28 01:04:21 +08:00
|
|
|
|
2017-02-06 04:50:04 +08:00
|
|
|
* [LICENSE](LICENSE)
|
2016-09-28 01:04:21 +08:00
|
|
|
|
2017-02-06 04:50:04 +08:00
|
|
|
* [NOTICE](NOTICE)
|
2016-09-28 01:04:21 +08:00
|
|
|
|
|
|
|
## Cryptographic Software Notice
|
|
|
|
|
|
|
|
This distribution may include software that has been designed for use
|
|
|
|
with cryptographic software. The country in which you currently reside
|
|
|
|
may have restrictions on the import, possession, use, and/or re-export
|
|
|
|
to another country, of encryption software. BEFORE using any encryption
|
|
|
|
software, please check your country's laws, regulations and policies
|
|
|
|
concerning the import, possession, or use, and re-export of encryption
|
|
|
|
software, to see if this is permitted. See <http://www.wassenaar.org/>
|
|
|
|
for more information.
|
|
|
|
|
|
|
|
The U.S. Government Department of Commerce, Bureau of Industry and
|
|
|
|
Security (BIS), has classified this software as Export Commodity
|
|
|
|
Control Number (ECCN) 5D002.C.1, which includes information security
|
|
|
|
software using or performing cryptographic functions with asymmetric
|
|
|
|
algorithms. The form and manner of this Apache Software Foundation
|
|
|
|
distribution makes it eligible for export under the License Exception
|
|
|
|
ENC Technology Software Unrestricted (TSU) exception (see the BIS
|
|
|
|
Export Administration Regulations, Section 740.13) for both object
|
|
|
|
code and source code.
|
|
|
|
|
|
|
|
The following provides more details on the included software that
|
|
|
|
may be subject to export controls on cryptographic software:
|
|
|
|
|
|
|
|
Apache JMeter interfaces with the
|
|
|
|
Java Secure Socket Extension (JSSE) API to provide
|
|
|
|
|
|
|
|
- HTTPS support
|
|
|
|
|
|
|
|
Apache JMeter interfaces (via Apache HttpClient3) with the
|
|
|
|
Java Cryptography Extension (JCE) API to provide
|
|
|
|
|
|
|
|
- NTLM authentication
|
|
|
|
|
|
|
|
Apache JMeter does not include any implementation of JSSE or JCE.
|
|
|
|
|
|
|
|
|
|
|
|
**Thank you for using Apache JMeter.**
|
2017-10-27 14:55:12 +08:00
|
|
|
This closes #283
|