Authored by Rong

add

Too many changes to show.

To preserve performance only 34 of 34+ files are displayed.

Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
============================ End of Apache License V 2.0 ===================
Source and binary distributions of Apache JMeter contain:
- icons from the Open Icon Library http://openiconlibrary.sourceforge.net/
For license details, please see the file: licenses/src/openiconlibrary.txt
Additional source files (also included in binary distributions):
For details, please see the files under: licenses/src
* bootstrap-3.3.4.txt (MIT) | ./bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap
* bootstrap-social.txt (MIT) | ./bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap-social
* datatables-1.10.9.txt (MIT) | ./bin/report-template/sbadmin2-1.0.7/bower_components/datatables
* datatables-plugins.txt (MIT) | ./bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins
* datatables-responsive-1.0.5.txt (MIT) | ./bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive
* flot-0.8.3.txt (MIT) | ./bin/report-template/sbadmin2-1.0.7/bower_components/flot
* flot-axislabels.txt (MIT) | ./bin/report-template/sbadmin2-1.0.7/bower_components/flot-axislabels
* flot-tooltip-0.7.1.txt (MIT) | ./bin/report-template/sbadmin2-1.0.7/bower_components/flot.tooltip
* font-awesome-4.2.0.txt (OFL-1.1 | MIT) | ./bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome
* holderjs.txt (MIT) | ./bin/report-template/sbadmin2-1.0.7/bower_components/holderjs
* jquery-2.1.3.txt (MIT | ./bin/report-template/sbadmin2-1.0.7/bower_components/jquery
* metisMenu-1.1.3.txt (MIT) | ./bin/report-template/sbadmin2-1.0.7/bower_components/metisMenu
* mocha-1.17.1.txt (MIT) | ./bin/report-template/sbadmin2-1.0.7/bower_components/mocha
* morrisjs-0.5.0.txt (Simplified BSD) | ./bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs
* raphael-2.1.4.txt (MIT) | ./bin/report-template/sbadmin2-1.0.7/bower_components/raphael
* start-bootstrap-admin2-1.0.7.txt (Apache License V2.0) | ./bin/report-template/sbadmin2-1.0.7 and not in the above folders
Binary distributions additionally contain software included under various licenses,
see below.
The following software is provided under the Apache License V 2.0 (as above):
- Software produced at the ASF:
* apache-bsf-2.4.0.jar
* commons-codec-1.10.jar
* commons-collections-3.2.2.jar
* commons-dbcp2-2.1.1.jar
* commons-io-2.5.jar
* commons-jexl2-2.1.1.jar
* commons-jexl3-3.0.jar
* commons-lang3-3.5.jar
* commons-math3-3.6.1.jar
* commons-net-3.6.jar
* commons-pool2-2.4.2.jar
* groovy-all-2.4.10.jar
* httpasyncclient-4.1.3.jar
* httpclient-4.5.3.jar
* httpcore-4.4.6.jar
* httpcore-nio-4.4.6.jar
* httpmime-4.5.3.jar
* jakarta-oro-2.0.8.jar
* jms-1.1.1.jar
* log4j-1.2-api-2.8.1.jar
* log4j-api-2.8.1.jar
* log4j-core-2.8.1.jar
* log4j-slf4j-impl-2.8.1.jar
* serializer-2.7.2.jar
* startbootstrap-sb-admin-2-1.0.7
* tika-core-1.14.jar
* tika-parsers-1.14.jar
* xalan-2.7.2.jar
* xerces-2.11.0.jar
* xml-apis-1.4.01.jar
* xmlgraphics-commons-2.1.jar
- Software produced outside the ASF which is available under AL 2.0:
* accessors-smart-1.2.jar
* caffeine-2.4.0.jar
* freemarker-2.3.23.jar (AL2.0, see licenses/bin for additional info)
* json-path-2.2.0.jar
* json-smart-2.3.jar
* mongo-java-driver-2.11.3.jar
* ph-commons-8.6.0.jar
* ph-css-5.0.3.jar
- Software produced outside the ASF which is available under other licenses (not AL 2.0):
For details, please see the files under: licenses/bin
* asm-5.2.jar (BSD)
* beanshell-2.0b5.jar (SPL)
* dnsjava-2.1.8.jar (BSD)
* hamcrest-core-1.3.jar (BSD)
* javamail-1.5.0-b01.jar (CDDL Version 1.0)
* jcharts-0.7.5.jar (?)
* jcl-over-slf4j-1.7.25.jar (MIT)
* jsoup-1.10.2.jar (MIT)
* jodd-core-3.8.1.jar (Simplified BSD)
* jodd-lagarto-3.8.1.jar (Simplified BSD)
* jodd-log-3.8.1.jar (Simplified BSD)
* jodd-props-3.8.1.jar (Simplified BSD)
* jtidy-r938.jar (?)
* junit-4.12.jar (BSD)
* rhino-1.7.7.1.jar (MPL 2.0)
* rsyntaxtextarea-2.6.1.jar (BSD)
* slf4j-api-1.7.25.jar (MIT)
* slf4j-ext-1.7.25.jar (MIT)
* xmlpull-1.1.3.1.jar (Public Domain)
* xpp3-1.1.4c.jar (Indiana University Extreme! Lab Software License 1.1.1)
* xstream-1.4.9.jar (BSD)
... ...
Apache JMeter
Copyright 1998-2017 The Apache Software Foundation
This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).
... ...
![Apache JMeter logo](https://jmeter.apache.org/images/logo.svg)
# Apache JMeter
## 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
server benchmark as well as multi-client load generator.
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
Full multi-threading framework allows concurrent sampling by many threads
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.
- Several load statistics may be chosen with pluggable timers.
- Data analysis and visualization plugins allow great extensibility and personalization.
- Functions can be used to provide dynamic input to a test or provide data manipulation.
- Scriptable Samplers (Groovy, BeanShell, BSF- and JSR223- compatible languages)
## The Latest Version
Details of the latest version can be found on the JMeter Apache
Project web site (http://jmeter.apache.org/).
## Requirements
The following requirements exist for running Apache JMeter:
* Java Interpreter:
A fully compliant Java 8 (or later) Runtime Environment is required
for Apache JMeter to execute. A JDK with keytool utility is better suited
for Recording HTTPS websites.
* Optional jars:
Some jars are not included with JMeter.
If required, these should be downloaded and placed in the lib directory
* 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
* Java Compiler (OPTIONAL):
A Java compiler is not needed since the distribution includes a
precompiled Java binary archive. _Note that a compiler is required
to build plugins for Apache JMeter._
## Installation Instructions
_Note that spaces in directory names can cause problems._
* Release builds
Unpack the binary archive into a suitable directory structure.
## Running JMeter
1. Change to the `bin` directory
2. Run the `jmeter` (Un\*x) or `jmeter.bat` (Windows) file.
### Windows
For Windows there are also some other scripts which you can drag-and-drop
a JMX file onto:
* `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
## 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`.
## Build instructions
### Release builds
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:
```sh
ant download_jars
```
Any optional jars (see above) should be placed in `lib/opt` and/or `lib`.
Jars in `lib/opt` will be used for building JMeter and running the unit tests,
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._
If you are behind a proxy, you can set a few build properties in `build-local.properties` for ant to use the proxy:
```
proxy.use=true
proxy.host=proxy.example.invalid
proxy.port=8080
proxy.user=your_user_name
proxy.pass=your_password
```
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
skip.test_http=true
skip.test_TestDNSCacheManager.testWithCustomResolverAnd1Server=true
```
### Test builds
JMeter is built using Ant.
Change to the top-level directory and issue the command:
```sh
ant download_jars
```
_This only needs to be done once; it will download any missing 3rd party jars._
```sh
ant
```
This will compile the application and enable you to run `jmeter` from the `bin`
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
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
## Licensing and legal information
For legal and licensing information, please see the following files:
* [LICENSE](LICENSE)
* [NOTICE](NOTICE)
## 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.**
... ...
No preview for this file type
// Sample BeanShell Assertion initialisation file
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
//print("Initialisation started");
import org.apache.jmeter.util.JMeterUtils;
i = j = k = 0; // for counters
getprop(p){// get a JMeter property
return JMeterUtils.getPropDefault(p,"");
}
getprop(p,d){// get a JMeter property with default
return JMeterUtils.getPropDefault(p,d);
}
setprop(p,v){// set a JMeter property
JMeterUtils.setProperty(p, v);
}
// Assertions can use the following methods on the Response object:
// SampleResult.setStopThread(true)
// SampleResult.setStopTest(true)
//print("Initialisation complete");
... ...
// Sample BeanShell Function initialisation file
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
// N.B. to enable this file to be used, define the JMeter property:
// beanshell.function.init=BeanShellFunction.bshrc
//print("Initialisation started");
import org.apache.jmeter.util.JMeterUtils;
i = j = k = 0; // for counters
getprop(p){// get a JMeter property
return JMeterUtils.getPropDefault(p,"");
}
getprop(p,d){// get a JMeter property with default
return JMeterUtils.getPropDefault(p,d);
}
setprop(p,v){// set a JMeter property
JMeterUtils.setProperty(p, v);
}
// Define routines to stop the test or the current thread
stopTest(){// Stop the JMeter test
org.apache.jmeter.engine.StandardJMeterEngine.stopEngine();
}
stopThread(){// Stop current JMeter thread
org.apache.jmeter.engine.StandardJMeterEngine.stopThread(Thread.currentThread().getName());
}
// Fix ampersands in a string
// e.g. fixAmps("Something containing &amp; ...")
// or fixAmps(vars.get("VARNAME")) - useful if VARNAME may contain "
String fixAmps(s) {
return s.replaceAll("&amp;","&");
}
// Fix ampersands in a variable
// e.g. fixAmps("VARNAME")
String fixAmpsInVar(String varname) {
return fixAmps(vars.get(varname));
}
//print("Initialisation complete");
... ...
// Example BeanShell Listener definitions
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
// ThreadListener methods
threadStarted(){
print("threadStarted");
}
threadFinished(){
print("threadFinished");
}
// TestListener methods
testStarted(){
print("testStarted");
}
testEnded(){
print("testEnded");
}
testStarted(String s){
print("testStarted "+s);
}
testEnded(String s){
print("testEnded "+s);
}
\ No newline at end of file
... ...
// Sample BeanShell Sampler initialisation file
// To enable, define the JMeter property:
// beanshell.sampler.init=BeanShellSampler.bshrc
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
//print("Initialisation started");
import org.apache.jmeter.util.JMeterUtils;
i = j = k = 0; // for counters
getprop(p){// get a JMeter property
return JMeterUtils.getPropDefault(p,"");
}
getprop(p,d){// get a JMeter property with default
return JMeterUtils.getPropDefault(p,d);
}
setprop(p,v){// set a JMeter property
JMeterUtils.setProperty(p, v);
}
// Define routines to stop the test or a thread
stopEngine(){// Stop the JMeter test
org.apache.jmeter.engine.StandardJMeterEngine.stopEngine();
}
stopThread(t){// Stop a JMeter thread
org.apache.jmeter.engine.StandardJMeterEngine.stopThread(t);
}
String getVariables(){ // Create a listing of the thread variables
StringBuffer sb = new StringBuffer(100);
Iterator i = vars.getIterator();
while(i.hasNext())
{
Map.Entry me = i.next();
if(String.class.equals(me.getValue().getClass())){
sb.append(me.toString()).append("\n");
}
}
return sb.toString();
}
// Interruptible interface
interrupt() {
print("Interrupt detected");
}
//print("Initialisation complete");
... ...
<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2" properties="2.1">
<hashTree>
<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="CSVSample" enabled="true">
<stringProp name="TestPlan.comments">Example of using CSV DataSet</stringProp>
<boolProp name="TestPlan.functional_mode">false</boolProp>
<boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
<elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="TestPlan.user_define_classpath"></stringProp>
</TestPlan>
<hashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true">
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">false</boolProp>
<intProp name="LoopController.loops">-1</intProp>
</elementProp>
<stringProp name="ThreadGroup.num_threads">1</stringProp>
<stringProp name="ThreadGroup.ramp_time">1</stringProp>
<longProp name="ThreadGroup.start_time">1226457982000</longProp>
<longProp name="ThreadGroup.end_time">1226457982000</longProp>
<boolProp name="ThreadGroup.scheduler">false</boolProp>
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<stringProp name="ThreadGroup.duration"></stringProp>
<stringProp name="ThreadGroup.delay"></stringProp>
</ThreadGroup>
<hashTree>
<CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="Get user details" enabled="true">
<stringProp name="TestPlan.comments">Top level </stringProp>
<stringProp name="delimiter">,</stringProp>
<stringProp name="fileEncoding"></stringProp>
<stringProp name="filename">CSVSample_user.csv</stringProp>
<boolProp name="quotedData">false</boolProp>
<boolProp name="recycle">false</boolProp>
<stringProp name="shareMode">All threads</stringProp>
<boolProp name="stopThread">true</boolProp>
<stringProp name="variableNames">USER,PASS</stringProp>
</CSVDataSet>
<hashTree/>
<JavaSampler guiclass="JavaTestSamplerGui" testclass="JavaSampler" testname="Dummy Login" enabled="true">
<elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="Sleep_Time" elementType="Argument">
<stringProp name="Argument.name">Sleep_Time</stringProp>
<stringProp name="Argument.value">100</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="Sleep_Mask" elementType="Argument">
<stringProp name="Argument.name">Sleep_Mask</stringProp>
<stringProp name="Argument.value">0xFF</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="Label" elementType="Argument">
<stringProp name="Argument.name">Label</stringProp>
<stringProp name="Argument.value">Login as ${USER}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="ResponseCode" elementType="Argument">
<stringProp name="Argument.name">ResponseCode</stringProp>
<stringProp name="Argument.value">200</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="ResponseMessage" elementType="Argument">
<stringProp name="Argument.name">ResponseMessage</stringProp>
<stringProp name="Argument.value">OK</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="Status" elementType="Argument">
<stringProp name="Argument.name">Status</stringProp>
<stringProp name="Argument.value">OK</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="SamplerData" elementType="Argument">
<stringProp name="Argument.name">SamplerData</stringProp>
<stringProp name="Argument.value">Login as ${USER} with password ${PASS}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="ResultData" elementType="Argument">
<stringProp name="Argument.name">ResultData</stringProp>
<stringProp name="Argument.value">Login OK for ${USER}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="classname">org.apache.jmeter.protocol.java.test.JavaTest</stringProp>
</JavaSampler>
<hashTree>
<UserParameters guiclass="UserParametersGui" testclass="UserParameters" testname="User Parameters" enabled="true">
<collectionProp name="UserParameters.names">
<stringProp name="1925345846">ACTION</stringProp>
</collectionProp>
<collectionProp name="UserParameters.thread_values">
<collectionProp name="-149786089">
<stringProp name="3387192">none</stringProp>
</collectionProp>
</collectionProp>
<boolProp name="UserParameters.per_iteration">false</boolProp>
</UserParameters>
<hashTree/>
</hashTree>
<JavaSampler guiclass="JavaTestSamplerGui" testclass="JavaSampler" testname="Java Request" enabled="true">
<elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="Sleep_Time" elementType="Argument">
<stringProp name="Argument.name">Sleep_Time</stringProp>
<stringProp name="Argument.value">100</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="Sleep_Mask" elementType="Argument">
<stringProp name="Argument.name">Sleep_Mask</stringProp>
<stringProp name="Argument.value">0xFF</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="Label" elementType="Argument">
<stringProp name="Argument.name">Label</stringProp>
<stringProp name="Argument.value">Action = ${ACTION}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="ResponseCode" elementType="Argument">
<stringProp name="Argument.name">ResponseCode</stringProp>
<stringProp name="Argument.value">200</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="ResponseMessage" elementType="Argument">
<stringProp name="Argument.name">ResponseMessage</stringProp>
<stringProp name="Argument.value">OK</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="Status" elementType="Argument">
<stringProp name="Argument.name">Status</stringProp>
<stringProp name="Argument.value">OK</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="SamplerData" elementType="Argument">
<stringProp name="Argument.name">SamplerData</stringProp>
<stringProp name="Argument.value"></stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="ResultData" elementType="Argument">
<stringProp name="Argument.name">ResultData</stringProp>
<stringProp name="Argument.value"></stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="classname">org.apache.jmeter.protocol.java.test.JavaTest</stringProp>
</JavaSampler>
<hashTree/>
<WhileController guiclass="WhileControllerGui" testclass="WhileController" testname="While Controller" enabled="true">
<stringProp name="WhileController.condition">${__jexl(&quot;${ACTION}&quot; != &quot;&lt;EOF&gt;&quot;)}</stringProp>
</WhileController>
<hashTree>
<CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="Get Actions" enabled="true">
<stringProp name="filename">CSVSample_actions.csv</stringProp>
<stringProp name="fileEncoding"></stringProp>
<stringProp name="variableNames">ACTION</stringProp>
<stringProp name="delimiter">,</stringProp>
<boolProp name="quotedData">true</boolProp>
<boolProp name="recycle">false</boolProp>
<boolProp name="stopThread">false</boolProp>
<stringProp name="shareMode">All threads</stringProp>
</CSVDataSet>
<hashTree/>
<IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Controller" enabled="true">
<stringProp name="IfController.condition">&quot;${ACTION}&quot; != &quot;&lt;EOF&gt;&quot;</stringProp>
<boolProp name="IfController.evaluateAll">false</boolProp>
</IfController>
<hashTree>
<JavaSampler guiclass="JavaTestSamplerGui" testclass="JavaSampler" testname="Action" enabled="true">
<elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="Sleep_Time" elementType="Argument">
<stringProp name="Argument.name">Sleep_Time</stringProp>
<stringProp name="Argument.value">100</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="Sleep_Mask" elementType="Argument">
<stringProp name="Argument.name">Sleep_Mask</stringProp>
<stringProp name="Argument.value">0xFF</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="Label" elementType="Argument">
<stringProp name="Argument.name">Label</stringProp>
<stringProp name="Argument.value">Action ${ACTION}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="ResponseCode" elementType="Argument">
<stringProp name="Argument.name">ResponseCode</stringProp>
<stringProp name="Argument.value">200</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="ResponseMessage" elementType="Argument">
<stringProp name="Argument.name">ResponseMessage</stringProp>
<stringProp name="Argument.value">OK</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="Status" elementType="Argument">
<stringProp name="Argument.name">Status</stringProp>
<stringProp name="Argument.value">OK</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="SamplerData" elementType="Argument">
<stringProp name="Argument.name">SamplerData</stringProp>
<stringProp name="Argument.value">Perform Action ${ACTION}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="ResultData" elementType="Argument">
<stringProp name="Argument.name">ResultData</stringProp>
<stringProp name="Argument.value">Succeeded ${ACTION}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="classname">org.apache.jmeter.protocol.java.test.JavaTest</stringProp>
</JavaSampler>
<hashTree/>
</hashTree>
</hashTree>
<JavaSampler guiclass="JavaTestSamplerGui" testclass="JavaSampler" testname="Logout" enabled="true">
<elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="Sleep_Time" elementType="Argument">
<stringProp name="Argument.name">Sleep_Time</stringProp>
<stringProp name="Argument.value">100</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="Sleep_Mask" elementType="Argument">
<stringProp name="Argument.name">Sleep_Mask</stringProp>
<stringProp name="Argument.value">0xFF</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="Label" elementType="Argument">
<stringProp name="Argument.name">Label</stringProp>
<stringProp name="Argument.value"></stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="ResponseCode" elementType="Argument">
<stringProp name="Argument.name">ResponseCode</stringProp>
<stringProp name="Argument.value">200</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="ResponseMessage" elementType="Argument">
<stringProp name="Argument.name">ResponseMessage</stringProp>
<stringProp name="Argument.value">OK</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="Status" elementType="Argument">
<stringProp name="Argument.name">Status</stringProp>
<stringProp name="Argument.value">OK</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="SamplerData" elementType="Argument">
<stringProp name="Argument.name">SamplerData</stringProp>
<stringProp name="Argument.value">Logout ${USER}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="ResultData" elementType="Argument">
<stringProp name="Argument.name">ResultData</stringProp>
<stringProp name="Argument.value">Succeeded ${USER}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="classname">org.apache.jmeter.protocol.java.test.JavaTest</stringProp>
</JavaSampler>
<hashTree/>
<JavaSampler guiclass="JavaTestSamplerGui" testclass="JavaSampler" testname="Java Request" enabled="true">
<elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="Sleep_Time" elementType="Argument">
<stringProp name="Argument.name">Sleep_Time</stringProp>
<stringProp name="Argument.value">100</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="Sleep_Mask" elementType="Argument">
<stringProp name="Argument.name">Sleep_Mask</stringProp>
<stringProp name="Argument.value">0xFF</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="Label" elementType="Argument">
<stringProp name="Argument.name">Label</stringProp>
<stringProp name="Argument.value">Action = ${ACTION}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="ResponseCode" elementType="Argument">
<stringProp name="Argument.name">ResponseCode</stringProp>
<stringProp name="Argument.value">200</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="ResponseMessage" elementType="Argument">
<stringProp name="Argument.name">ResponseMessage</stringProp>
<stringProp name="Argument.value">OK</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="Status" elementType="Argument">
<stringProp name="Argument.name">Status</stringProp>
<stringProp name="Argument.value">OK</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="SamplerData" elementType="Argument">
<stringProp name="Argument.name">SamplerData</stringProp>
<stringProp name="Argument.value"></stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="ResultData" elementType="Argument">
<stringProp name="Argument.name">ResultData</stringProp>
<stringProp name="Argument.value"></stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="classname">org.apache.jmeter.protocol.java.test.JavaTest</stringProp>
</JavaSampler>
<hashTree/>
</hashTree>
<ResultCollector guiclass="TableVisualizer" testclass="ResultCollector" testname="View Results in Table" enabled="true">
<boolProp name="ResultCollector.error_logging">false</boolProp>
<objProp>
<name>saveConfig</name>
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
<code>true</code>
<message>true</message>
<threadName>true</threadName>
<dataType>true</dataType>
<encoding>false</encoding>
<assertions>true</assertions>
<subresults>true</subresults>
<responseData>false</responseData>
<samplerData>false</samplerData>
<xml>true</xml>
<fieldNames>false</fieldNames>
<responseHeaders>false</responseHeaders>
<requestHeaders>false</requestHeaders>
<responseDataOnError>false</responseDataOnError>
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
<assertionsResultsToSave>0</assertionsResultsToSave>
<bytes>true</bytes>
</value>
</objProp>
<stringProp name="filename">~/CSVSample.jtl</stringProp>
</ResultCollector>
<hashTree/>
<ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true">
<boolProp name="ResultCollector.error_logging">false</boolProp>
<objProp>
<name>saveConfig</name>
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
<code>true</code>
<message>true</message>
<threadName>true</threadName>
<dataType>true</dataType>
<encoding>false</encoding>
<assertions>true</assertions>
<subresults>true</subresults>
<responseData>false</responseData>
<samplerData>false</samplerData>
<xml>true</xml>
<fieldNames>false</fieldNames>
<responseHeaders>false</responseHeaders>
<requestHeaders>false</requestHeaders>
<responseDataOnError>false</responseDataOnError>
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
<assertionsResultsToSave>0</assertionsResultsToSave>
<bytes>true</bytes>
</value>
</objProp>
<stringProp name="filename"></stringProp>
</ResultCollector>
<hashTree/>
</hashTree>
</hashTree>
</jmeterTestPlan>
... ...
a
b
c
d
\ No newline at end of file
... ...
u1,p1
u2,p2
\ No newline at end of file
... ...
<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2" properties="2.3" jmeter="2.9-SNAPSHOT.20121209">
<hashTree>
<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="TestPlan-Tomcat-Examples" enabled="true">
<stringProp name="TestPlan.comments">Requires memory.jsp</stringProp>
<boolProp name="TestPlan.functional_mode">false</boolProp>
<boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
<elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="Variables pré-définies" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="TestPlan.user_define_classpath"></stringProp>
</TestPlan>
<hashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true">
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">false</boolProp>
<stringProp name="LoopController.loops">1</stringProp>
</elementProp>
<stringProp name="ThreadGroup.num_threads">1</stringProp>
<stringProp name="ThreadGroup.ramp_time">30</stringProp>
<longProp name="ThreadGroup.start_time">1324216714000</longProp>
<longProp name="ThreadGroup.end_time">1324216714000</longProp>
<boolProp name="ThreadGroup.scheduler">false</boolProp>
<stringProp name="ThreadGroup.duration">800</stringProp>
<stringProp name="ThreadGroup.delay">1</stringProp>
</ThreadGroup>
<hashTree>
<HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
<collectionProp name="HeaderManager.headers">
<elementProp name="Accept-Language" elementType="Header">
<stringProp name="Header.name">Accept-Language</stringProp>
<stringProp name="Header.value">fr-fr</stringProp>
</elementProp>
<elementProp name="Accept" elementType="Header">
<stringProp name="Header.name">Accept</stringProp>
<stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</stringProp>
</elementProp>
<elementProp name="User-Agent" elementType="Header">
<stringProp name="Header.name">User-Agent</stringProp>
<stringProp name="Header.value">Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:8.0.1) Gecko/20100101 Firefox/8.0.1</stringProp>
</elementProp>
<elementProp name="Referer" elementType="Header">
<stringProp name="Header.name">Referer</stringProp>
<stringProp name="Header.value">http://localhost:8080/examples/servlets/index.html</stringProp>
</elementProp>
<elementProp name="DNT" elementType="Header">
<stringProp name="Header.name">DNT</stringProp>
<stringProp name="Header.value">1</stringProp>
</elementProp>
<elementProp name="Accept-Encoding" elementType="Header">
<stringProp name="Header.name">Accept-Encoding</stringProp>
<stringProp name="Header.value">gzip, deflate</stringProp>
</elementProp>
<elementProp name="Accept-Charset" elementType="Header">
<stringProp name="Header.name">Accept-Charset</stringProp>
<stringProp name="Header.value">ISO-8859-1,utf-8;q=0.7,*;q=0.7</stringProp>
</elementProp>
</collectionProp>
</HeaderManager>
<hashTree/>
<Arguments guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="host" elementType="Argument">
<stringProp name="Argument.name">host</stringProp>
<stringProp name="Argument.value">localhost</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
</collectionProp>
</Arguments>
<hashTree/>
<ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP Request Defaults" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">${host}</stringProp>
<stringProp name="HTTPSampler.port">8080</stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path"></stringProp>
<stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
<stringProp name="HTTPSampler.concurrentPool">4</stringProp>
</ConfigTestElement>
<hashTree/>
<CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="false">
<collectionProp name="CookieManager.cookies"/>
<boolProp name="CookieManager.clearEachIteration">true</boolProp>
<stringProp name="CookieManager.policy">default</stringProp>
</CookieManager>
<hashTree/>
<TransactionController guiclass="TransactionControllerGui" testclass="TransactionController" testname="Transaction Controller" enabled="true">
<boolProp name="TransactionController.parent">false</boolProp>
</TransactionController>
<hashTree>
<LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">true</boolProp>
<stringProp name="LoopController.loops">60</stringProp>
</LoopController>
<hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="memorySample1" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="size" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">7000</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">size</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol">http</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/examples/jsp/memory.jsp</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="text1Extractor" enabled="true">
<stringProp name="RegexExtractor.useHeaders">false</stringProp>
<stringProp name="RegexExtractor.refname">text1</stringProp>
<stringProp name="RegexExtractor.regex">b&gt;(.+?)&lt;/b</stringProp>
<stringProp name="RegexExtractor.template">$1$</stringProp>
<stringProp name="RegexExtractor.default">NV</stringProp>
<stringProp name="RegexExtractor.match_number">0</stringProp>
</RegexExtractor>
<hashTree/>
<RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="text2Extractor" enabled="true">
<stringProp name="RegexExtractor.useHeaders">false</stringProp>
<stringProp name="RegexExtractor.refname">text2</stringProp>
<stringProp name="RegexExtractor.regex">li&gt;(.+?)&lt;/li</stringProp>
<stringProp name="RegexExtractor.template">$1$</stringProp>
<stringProp name="RegexExtractor.default">NV</stringProp>
<stringProp name="RegexExtractor.match_number">0</stringProp>
</RegexExtractor>
<hashTree/>
<RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="text3Extractor" enabled="true">
<stringProp name="RegexExtractor.useHeaders">false</stringProp>
<stringProp name="RegexExtractor.refname">text3</stringProp>
<stringProp name="RegexExtractor.regex">u&gt;(.+?)&lt;/u</stringProp>
<stringProp name="RegexExtractor.template">$1$</stringProp>
<stringProp name="RegexExtractor.default">NV</stringProp>
<stringProp name="RegexExtractor.match_number">0</stringProp>
</RegexExtractor>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Code200" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="49586">200</stringProp>
</collectionProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">false</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="containsText" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="486644840">abcdefghijklmno</stringProp>
</collectionProp>
<stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
<boolProp name="Assertion.assume_success">false</boolProp>
<intProp name="Assertion.test_type">16</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<DebugSampler guiclass="TestBeanGUI" testclass="DebugSampler" testname="D-${text1}-${text2}-${text3}" enabled="false">
<boolProp name="displayJMeterProperties">false</boolProp>
<boolProp name="displayJMeterVariables">true</boolProp>
<boolProp name="displaySystemProperties">false</boolProp>
</DebugSampler>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="memorySample2" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="size" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">5000</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">size</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol">http</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/examples/jsp/memory.jsp</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="false">
<collectionProp name="HeaderManager.headers">
<elementProp name="Accept-Language" elementType="Header">
<stringProp name="Header.name">Accept-Language</stringProp>
<stringProp name="Header.value">fr-fr</stringProp>
</elementProp>
<elementProp name="Accept" elementType="Header">
<stringProp name="Header.name">Accept</stringProp>
<stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</stringProp>
</elementProp>
<elementProp name="User-Agent" elementType="Header">
<stringProp name="Header.name">User-Agent</stringProp>
<stringProp name="Header.value">Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:8.0.1) Gecko/20100101 Firefox/8.0.1</stringProp>
</elementProp>
<elementProp name="Referer" elementType="Header">
<stringProp name="Header.name">Referer</stringProp>
<stringProp name="Header.value">http://localhost:8080/examples/servlets/index.html</stringProp>
</elementProp>
<elementProp name="DNT" elementType="Header">
<stringProp name="Header.name">DNT</stringProp>
<stringProp name="Header.value">1</stringProp>
</elementProp>
<elementProp name="Accept-Encoding" elementType="Header">
<stringProp name="Header.name">Accept-Encoding</stringProp>
<stringProp name="Header.value">gzip, deflate</stringProp>
</elementProp>
<elementProp name="Accept-Charset" elementType="Header">
<stringProp name="Header.name">Accept-Charset</stringProp>
<stringProp name="Header.value">ISO-8859-1,utf-8;q=0.7,*;q=0.7</stringProp>
</elementProp>
</collectionProp>
</HeaderManager>
<hashTree/>
<RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="text1Extractor" enabled="true">
<stringProp name="RegexExtractor.useHeaders">false</stringProp>
<stringProp name="RegexExtractor.refname">text1</stringProp>
<stringProp name="RegexExtractor.regex">b&gt;(.+?)&lt;/b</stringProp>
<stringProp name="RegexExtractor.template">$1$</stringProp>
<stringProp name="RegexExtractor.default">NV</stringProp>
<stringProp name="RegexExtractor.match_number">0</stringProp>
</RegexExtractor>
<hashTree/>
<RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="text2Extractor" enabled="true">
<stringProp name="RegexExtractor.useHeaders">false</stringProp>
<stringProp name="RegexExtractor.refname">text2</stringProp>
<stringProp name="RegexExtractor.regex">li&gt;(.+?)&lt;/li</stringProp>
<stringProp name="RegexExtractor.template">$1$</stringProp>
<stringProp name="RegexExtractor.default">NV</stringProp>
<stringProp name="RegexExtractor.match_number">0</stringProp>
</RegexExtractor>
<hashTree/>
<RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="text3Extractor" enabled="true">
<stringProp name="RegexExtractor.useHeaders">false</stringProp>
<stringProp name="RegexExtractor.refname">text3</stringProp>
<stringProp name="RegexExtractor.regex">u&gt;(.+?)&lt;/u</stringProp>
<stringProp name="RegexExtractor.template">$1$</stringProp>
<stringProp name="RegexExtractor.default">NV</stringProp>
<stringProp name="RegexExtractor.match_number">0</stringProp>
</RegexExtractor>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Code200" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="49586">200</stringProp>
</collectionProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">false</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="containsText" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="486644840">abcdefghijklmno</stringProp>
</collectionProp>
<stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
<boolProp name="Assertion.assume_success">false</boolProp>
<intProp name="Assertion.test_type">16</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true">
<stringProp name="ConstantTimer.delay">3000</stringProp>
</ConstantTimer>
<hashTree/>
<DebugSampler guiclass="TestBeanGUI" testclass="DebugSampler" testname="D-${text1}-${text2}-${text3}" enabled="false">
<boolProp name="displayJMeterProperties">false</boolProp>
<boolProp name="displayJMeterVariables">true</boolProp>
<boolProp name="displaySystemProperties">false</boolProp>
</DebugSampler>
<hashTree/>
</hashTree>
</hashTree>
<Summariser guiclass="SummariserGui" testclass="Summariser" testname="Generate Summary Results" enabled="false"/>
<hashTree/>
<ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="Summary Report" enabled="false">
<boolProp name="ResultCollector.error_logging">false</boolProp>
<objProp>
<name>saveConfig</name>
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
<code>true</code>
<message>true</message>
<threadName>true</threadName>
<dataType>true</dataType>
<encoding>false</encoding>
<assertions>true</assertions>
<subresults>true</subresults>
<responseData>false</responseData>
<samplerData>false</samplerData>
<xml>true</xml>
<fieldNames>false</fieldNames>
<responseHeaders>false</responseHeaders>
<requestHeaders>false</requestHeaders>
<responseDataOnError>false</responseDataOnError>
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
<assertionsResultsToSave>0</assertionsResultsToSave>
<bytes>true</bytes>
<hostname>true</hostname>
<threadCounts>true</threadCounts>
<sampleCount>true</sampleCount>
</value>
</objProp>
<stringProp name="filename"></stringProp>
</ResultCollector>
<hashTree/>
<ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="false">
<boolProp name="ResultCollector.error_logging">false</boolProp>
<objProp>
<name>saveConfig</name>
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
<code>true</code>
<message>true</message>
<threadName>true</threadName>
<dataType>true</dataType>
<encoding>false</encoding>
<assertions>true</assertions>
<subresults>true</subresults>
<responseData>false</responseData>
<samplerData>false</samplerData>
<xml>true</xml>
<fieldNames>false</fieldNames>
<responseHeaders>false</responseHeaders>
<requestHeaders>false</requestHeaders>
<responseDataOnError>false</responseDataOnError>
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
<assertionsResultsToSave>0</assertionsResultsToSave>
<bytes>true</bytes>
<hostname>true</hostname>
<threadCounts>true</threadCounts>
<sampleCount>true</sampleCount>
</value>
</objProp>
<stringProp name="filename"></stringProp>
</ResultCollector>
<hashTree/>
<ResultCollector guiclass="StatGraphVisualizer" testclass="ResultCollector" testname="Aggregate Graph" enabled="false">
<boolProp name="ResultCollector.error_logging">false</boolProp>
<objProp>
<name>saveConfig</name>
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
<code>true</code>
<message>false</message>
<threadName>true</threadName>
<dataType>false</dataType>
<encoding>false</encoding>
<assertions>false</assertions>
<subresults>false</subresults>
<responseData>false</responseData>
<samplerData>false</samplerData>
<xml>false</xml>
<fieldNames>true</fieldNames>
<responseHeaders>false</responseHeaders>
<requestHeaders>false</requestHeaders>
<responseDataOnError>false</responseDataOnError>
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
<assertionsResultsToSave>0</assertionsResultsToSave>
<bytes>true</bytes>
<hostname>true</hostname>
<threadCounts>true</threadCounts>
<sampleCount>true</sampleCount>
</value>
</objProp>
<stringProp name="filename">/data/jmeter/BUG_51512/2.6/results.csv</stringProp>
</ResultCollector>
<hashTree/>
<ResultCollector guiclass="TableVisualizer" testclass="ResultCollector" testname="View Results in Table" enabled="false">
<boolProp name="ResultCollector.error_logging">false</boolProp>
<objProp>
<name>saveConfig</name>
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
<code>true</code>
<message>false</message>
<threadName>true</threadName>
<dataType>false</dataType>
<encoding>false</encoding>
<assertions>false</assertions>
<subresults>false</subresults>
<responseData>false</responseData>
<samplerData>false</samplerData>
<xml>false</xml>
<fieldNames>true</fieldNames>
<responseHeaders>false</responseHeaders>
<requestHeaders>false</requestHeaders>
<responseDataOnError>false</responseDataOnError>
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
<assertionsResultsToSave>0</assertionsResultsToSave>
<bytes>true</bytes>
<hostname>true</hostname>
<threadCounts>true</threadCounts>
<sampleCount>true</sampleCount>
</value>
</objProp>
<stringProp name="filename"></stringProp>
</ResultCollector>
<hashTree/>
</hashTree>
</hashTree>
</hashTree>
</jmeterTestPlan>
... ...
<%@ page session="false" contentType="text/html" buffer="8kb" %>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<html>
<body>
<b>textToTExtract</b>
<ul>
<li>textToTExtract2</li>
</ul>
<p>zadadadzdadd </p>
<u>textToTExtract3</u>
<%
int size = Integer.parseInt(request.getParameter("size"));
for (int i=0;i<size;i++) {
%>
<p>abcdefghijklmno<%=System.currentTimeMillis() %><p>
<%
}
%>
</body>
</html>
\ No newline at end of file
... ...
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Properties file used to define additional default Apache HttpClient parameters
#
#
# This file is enabled by setting the JMeter property: hc.parameters.file
# entries are of the form:
#
# property=value (for strings)
# property$Type=value (for other types)
#
# where Type can be:
# Integer
# Long
# Boolean
# HttpVersion
#
# N.B. Other types are not yet implemented
#
# Examples:
#http.protocol.version$HttpVersion=1.0
#http.protocol.element-charset=ISO-8859-1
#http.socket.timeout$Integer=10000
#http.protocol.reject-relative-redirect$Boolean=true
# Default value since JMeter 2.11,
# also uncomment hc.parameters.file=hc.parameters to enable this check:
#http.connection.stalecheck$Boolean=false
\ No newline at end of file
... ...
@echo off
rem Licensed to the Apache Software Foundation (ASF) under one or more
rem contributor license agreements. See the NOTICE file distributed with
rem this work for additional information regarding copyright ownership.
rem The ASF licenses this file to You under the Apache License, Version 2.0
rem (the "License"); you may not use this file except in compliance with
rem the License. You may obtain a copy of the License at
rem
rem http://www.apache.org/licenses/LICENSE-2.0
rem
rem Unless required by applicable law or agreed to in writing, software
rem distributed under the License is distributed on an "AS IS" BASIS,
rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
rem See the License for the specific language governing permissions and
rem limitations under the License.
rem Ask the JMeter client to perform a HeapDump
rem P1 = command port for JMeter instance (defaults to 4445)
java -cp %~dp0ApacheJMeter.jar org.apache.jmeter.util.ShutdownClient HeapDump %*
pause
\ No newline at end of file
... ...
#!/bin/sh
## Licensed to the Apache Software Foundation (ASF) under one or more
## contributor license agreements. See the NOTICE file distributed with
## this work for additional information regarding copyright ownership.
## The ASF licenses this file to You under the Apache License, Version 2.0
## (the "License"); you may not use this file except in compliance with
## the License. You may obtain a copy of the License at
##
## http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in writing, software
## distributed under the License is distributed on an "AS IS" BASIS,
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
## See the License for the specific language governing permissions and
## limitations under the License.
# Ask the JMeter client to perform a HeapDump
# P1 = command port for JMeter instance (defaults to 4445)
DIRNAME=`dirname $0`
java -cp ${DIRNAME}/ApacheJMeter.jar org.apache.jmeter.util.ShutdownClient HeapDump "$@"
... ...
/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Sample file, you need to edit for your configuration
* see http://docs.oracle.com/javase/6/docs/technotes/guides/security/jgss/lab/part6.html#Kerberos_5_Configuration
* see http://docs.oracle.com/javase/7/docs/technotes/guides/security/jgss/tutorials/KerberosReq.html
* see http://docs.oracle.com/javase/7/docs/jre/api/security/jaas/spec/com/sun/security/auth/module/Krb5LoginModule.html
*/
JMeter {
com.sun.security.auth.module.Krb5LoginModule required
doNotPrompt=false
useKeyTab=false
storeKey=false;
};
\ No newline at end of file
... ...
#! /bin/sh
## Licensed to the Apache Software Foundation (ASF) under one or more
## contributor license agreements. See the NOTICE file distributed with
## this work for additional information regarding copyright ownership.
## The ASF licenses this file to You under the Apache License, Version 2.0
## (the "License"); you may not use this file except in compliance with
## the License. You may obtain a copy of the License at
##
## http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in writing, software
## distributed under the License is distributed on an "AS IS" BASIS,
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
## See the License for the specific language governing permissions and
## limitations under the License.
## ==============================================
## Environment variables:
## JVM_ARGS - optional java args, e.g. -Dprop=val
##
## e.g.
## JVM_ARGS="-Xms512m -Xmx512m" jmeter etc.
##
## ==============================================
# Minimal version to run JMeter
MINIMAL_VERSION=1.8.0
# Check if Java is present and the minimal version requirement
_java=`type java | awk '{ print $ NF }'`
CURRENT_VERSION=`"$_java" -version 2>&1 | awk -F'"' '/version/ {print $2}'`
minimal_version=`echo $MINIMAL_VERSION | awk -F'.' '{ print $2 }'`
current_version=`echo $CURRENT_VERSION | awk -F'.' '{ print $2 }'`
if [ $current_version ]; then
if [ $current_version -lt $minimal_version ]; then
echo "Error: Java version is too low to run JMeter. Needs at least Java >= ${MINIMAL_VERSION}."
exit 1
fi
else
echo "Not able to find Java executable or version. Please check your Java installation."
exit 1
fi
JMETER_OPTS=""
case `uname` in
Darwin*)
# Add Mac-specific property - should be ignored elsewhere (Bug 47064)
JMETER_OPTS="-Xdock:name=JMeter -Xdock:icon="`dirname $0`/../docs/images/jmeter_square.png" -Dapple.laf.useScreenMenuBar=true -Dapple.eawt.quitStrategy=CLOSE_ALL_WINDOWS"
;;
esac
# resolve links - $0 may be a softlink (code as used by Tomcat)
# N.B. readlink would be a lot simpler but is not supported on Solaris
PRG="$0"
while [ -h "$PRG" ]; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`/"$link"
fi
done
PRGDIR=`dirname "$PRG"`
#
# Original page has disappeared, it is now only available at:
# https://web.archive.org/web/20060614151434/http://www.atg.com/portal/myatg/developer?paf_dm=full&paf_gear_id=1100010&detailArticle=true&id=9606
#
# JMeter objects can generally be grouped into three life-length groups:
#
# - Per-sample objects (results, DOMs,...). An awful lot of those.
# Life length of milliseconds to a few seconds.
#
# - Per-run objects (threads, listener data structures,...). Not that many
# of those unless we use the table or tree listeners on heavy runs.
# Life length of minutes to several hours, from creation to start of next run.
#
# - Per-work-session objects (test plans, GUIs,...).
# Life length: for the life of the JVM.
# This is the base heap size -- you may increase or decrease it to fit your
# system's memory availability:
HEAP="-Xms1024m -Xmx1024m"
#VERBOSE_GC="-verbose:gc -Xloggc:gc_jmeter_%p.log -XX:+PrintGCDetails -XX:+PrintGCCause -XX:+PrintTenuringDistribution -XX:+PrintHeapAtGC -XX:+PrintGCApplicationConcurrentTime -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCDateStamps"
# Finally, some tracing to help in case things go astray:
GC_ALGO="-XX:+UseG1GC -XX:MaxGCPauseMillis=250 -XX:G1ReservePercent=20"
# Always dump on OOM (does not cost anything unless triggered)
DUMP="-XX:+HeapDumpOnOutOfMemoryError"
SYSTEM_PROPS="-Djava.security.egd=file:/dev/urandom"
SERVER="-server"
ARGS="$SERVER $DUMP $HEAP $VERBOSE_GC $GC_ALGO $SYSTEM_PROPS"
java $ARGS $JVM_ARGS $JMETER_OPTS -jar "$PRGDIR/ApacheJMeter.jar" "$@"
... ...
@echo off
rem Licensed to the Apache Software Foundation (ASF) under one or more
rem contributor license agreements. See the NOTICE file distributed with
rem this work for additional information regarding copyright ownership.
rem The ASF licenses this file to You under the Apache License, Version 2.0
rem (the "License"); you may not use this file except in compliance with
rem the License. You may obtain a copy of the License at
rem
rem http://www.apache.org/licenses/LICENSE-2.0
rem
rem Unless required by applicable law or agreed to in writing, software
rem distributed under the License is distributed on an "AS IS" BASIS,
rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
rem See the License for the specific language governing permissions and
rem limitations under the License.
rem ============================================
rem Non-GUI version of JMETER.BAT (WinNT/2K only)
rem
rem Drop a JMX file on this batch script, and it
rem will run it in non-GUI mode, with a log file
rem formed from the input file name but with the
rem extension .jtl
rem
rem Only the first parameter is used.
rem Only works for Win2k.
rem
rem ============================================
if "%OS%"=="Windows_NT" goto WinNT
echo "Sorry, this command file requires Windows NT/ 2000 / XP"
pause
goto END
:WinNT
rem Check file is supplied
if a == a%1 goto winNT2
rem Allow special name LAST
if LAST == %1 goto winNT3
rem Check it has extension .jmx
if "%~x1" == ".jmx" goto winNT3
:winNT2
echo Please supply a script name with the extension .jmx
pause
goto END
:winNT3
rem Change to script directory
pushd %~dp1
rem use same directory to find jmeter script
call "%~dp0"jmeter -n -t "%~nx1" -j "%~n1.log" -l "%~n1.jtl" -r %2 %3 %4 %5 %6 %7 %8 %9
popd
:END
\ No newline at end of file
... ...
@echo off
rem Licensed to the Apache Software Foundation (ASF) under one or more
rem contributor license agreements. See the NOTICE file distributed with
rem this work for additional information regarding copyright ownership.
rem The ASF licenses this file to You under the Apache License, Version 2.0
rem (the "License"); you may not use this file except in compliance with
rem the License. You may obtain a copy of the License at
rem
rem http://www.apache.org/licenses/LICENSE-2.0
rem
rem Unless required by applicable law or agreed to in writing, software
rem distributed under the License is distributed on an "AS IS" BASIS,
rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
rem See the License for the specific language governing permissions and
rem limitations under the License.
rem ============================================
rem Non-GUI version of JMETER.BAT (WinNT/2K only)
rem
rem Drop a JMX file on this batch script, and it
rem will run it in non-GUI mode, with a log file
rem formed from the input file name but with the
rem extension .jtl
rem
rem Only the first parameter is used.
rem Only works for Win2k.
rem
rem ============================================
if "%OS%"=="Windows_NT" goto WinNT
echo "Sorry, this command file requires Windows NT/ 2000 / XP"
pause
goto END
:WinNT
rem Check file is supplied
if a == a%1 goto winNT2
rem Allow special name LAST
if LAST == %1 goto winNT3
rem Check it has extension .jmx
if "%~x1" == ".jmx" goto winNT3
:winNT2
echo Please supply a script name with the extension .jmx
pause
goto END
:winNT3
rem Change to script directory
pushd %~dp1
rem use same directory to find jmeter script
call "%~dp0"jmeter -n -t "%~nx1" -j "%~n1.log" -l "%~n1.jtl" %2 %3 %4 %5 %6 %7 %8 %9
popd
:END
\ No newline at end of file
... ...
#!/bin/sh
## Licensed to the Apache Software Foundation (ASF) under one or more
## contributor license agreements. See the NOTICE file distributed with
## this work for additional information regarding copyright ownership.
## The ASF licenses this file to You under the Apache License, Version 2.0
## (the "License"); you may not use this file except in compliance with
## the License. You may obtain a copy of the License at
##
## http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in writing, software
## distributed under the License is distributed on an "AS IS" BASIS,
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
## See the License for the specific language governing permissions and
## limitations under the License.
## To change the RMI/Server port:
##
## SERVER_PORT=1234 jmeter-server
##
DIRNAME=`dirname $0`
# If the client fails with:
# ERROR - jmeter.engine.ClientJMeterEngine: java.rmi.ConnectException: Connection refused to host: 127.0.0.1
# then it may be due to the server host returning 127.0.0.1 as its address
# One way to fix this is to define RMI_HOST_DEF below
#RMI_HOST_DEF=-Djava.rmi.server.hostname=xxx.xxx.xxx.xxx
${DIRNAME}/jmeter ${RMI_HOST_DEF} -Dserver_port=${SERVER_PORT:-1099} -s -j jmeter-server.log "$@"
... ...
@echo off
rem Licensed to the Apache Software Foundation (ASF) under one or more
rem contributor license agreements. See the NOTICE file distributed with
rem this work for additional information regarding copyright ownership.
rem The ASF licenses this file to You under the Apache License, Version 2.0
rem (the "License"); you may not use this file except in compliance with
rem the License. You may obtain a copy of the License at
rem
rem http://www.apache.org/licenses/LICENSE-2.0
rem
rem Unless required by applicable law or agreed to in writing, software
rem distributed under the License is distributed on an "AS IS" BASIS,
rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
rem See the License for the specific language governing permissions and
rem limitations under the License.
rem ===============================================================
rem Enviroment variables
rem SERVER_PORT (optional) - define the rmiregistry and server port
rem
rem JVM_ARGS - Java flags - these are handled by jmeter.bat
rem
rem ===============================================================
REM Protect environment against changes
setlocal
if exist jmeter-server.bat goto winNT1
echo Changing to JMeter home directory
cd /D %~dp0
:winNT1
if exist %JMETER_HOME%\lib\ext\ApacheJMeter_core.jar goto setCP
echo Could not find ApacheJmeter_core.jar ...
REM Try to work out JMETER_HOME
echo ... Trying JMETER_HOME=..
set JMETER_HOME=..
if exist %JMETER_HOME%\lib\ext\ApacheJMeter_core.jar goto setCP
echo ... trying JMETER_HOME=.
set JMETER_HOME=.
if exist %JMETER_HOME%\lib\ext\ApacheJMeter_core.jar goto setCP
echo Cannot determine JMETER_HOME !
goto exit
:setCP
echo Found ApacheJMeter_core.jar
REM No longer need to create the rmiregistry as it is done by the server
REM set CLASSPATH=%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-1.2.jar
REM START rmiregistry %SERVER_PORT%
REM
rem On NT/2K grab all arguments at once
set JMETER_CMD_LINE_ARGS=%*
if not "%SERVER_PORT%" == "" goto port
call jmeter -s -j jmeter-server.log %JMETER_CMD_LINE_ARGS%
goto end
:port
call jmeter -Dserver_port=%SERVER_PORT% -s -j jmeter-server.log %JMETER_CMD_LINE_ARGS%
:end
rem No longer needed, as server is started in-process
rem taskkill /F /IM rmiregistry.exe
:exit
\ No newline at end of file
... ...
@echo off
rem Licensed to the Apache Software Foundation (ASF) under one or more
rem contributor license agreements. See the NOTICE file distributed with
rem this work for additional information regarding copyright ownership.
rem The ASF licenses this file to You under the Apache License, Version 2.0
rem (the "License"); you may not use this file except in compliance with
rem the License. You may obtain a copy of the License at
rem
rem http://www.apache.org/licenses/LICENSE-2.0
rem
rem Unless required by applicable law or agreed to in writing, software
rem distributed under the License is distributed on an "AS IS" BASIS,
rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
rem See the License for the specific language governing permissions and
rem limitations under the License.
rem ============================================
rem
rem Drop a JMX file on this batch script, and it
rem will load it in the GUI.
rem
rem Only the first parameter is used.
rem Only works for Win2k.
rem
rem ============================================
if "%OS%"=="Windows_NT" goto WinNT
echo "Sorry, this command file requires Windows NT/ 2000 / XP"
pause
goto END
:WinNT
rem Check file is supplied
if a == a%1 goto winNT2
rem Allow special name LAST
if LAST == %1 goto winNT3
rem Check it has extension .jmx
if "%~x1" == ".jmx" goto winNT3
:winNT2
echo Please supply a script name with the extension .jmx
pause
goto END
:winNT3
rem Start in directory with JMX file
pushd %~dp1
rem Prepend the directory in which this script resides in case not on path
call "%~dp0"jmeter -j "%~n1.log" -t "%~nx1" %2 %3 %4 %5 %6 %7 %8 %9
popd
:END
\ No newline at end of file
... ...
@echo off
rem Licensed to the Apache Software Foundation (ASF) under one or more
rem contributor license agreements. See the NOTICE file distributed with
rem this work for additional information regarding copyright ownership.
rem The ASF licenses this file to You under the Apache License, Version 2.0
rem (the "License"); you may not use this file except in compliance with
rem the License. You may obtain a copy of the License at
rem
rem http://www.apache.org/licenses/LICENSE-2.0
rem
rem Unless required by applicable law or agreed to in writing, software
rem distributed under the License is distributed on an "AS IS" BASIS,
rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
rem See the License for the specific language governing permissions and
rem limitations under the License.
rem =====================================================
rem Environment variables that can be defined externally:
rem
rem JMETER_BIN - JMeter bin directory (must end in \)
rem JM_LAUNCH - java.exe (default) or javaw.exe
rem JVM_ARGS - additional java options, e.g. -Dprop=val
rem JM_START - set this to "start" to launch JMeter in a separate window
rem this is used by the jmeterw.cmd script.
rem
rem =====================================================
setlocal
rem Minimal version to run JMeter
set MINIMAL_VERSION=1.8.0
for /f "tokens=3" %%g in ('java -version 2^>^&1 ^| findstr /i "version"') do (
rem @echo Debug Output: %%g
set JAVAVER=%%g
)
if not defined JAVAVER (
@echo Not able to find Java executable or version. Please check your Java installation.
set ERRORLEVEL=2
goto pause
)
set JAVAVER=%JAVAVER:"=%
for /f "delims=. tokens=1-3" %%v in ("%JAVAVER%") do (
set current_minor=%%w
)
for /f "delims=. tokens=1-3" %%v in ("%MINIMAL_VERSION%") do (
set minimal_minor=%%w
)
if not defined current_minor (
@echo Not able to find Java executable or version. Please check your Java installation.
set ERRORLEVEL=2
goto pause
)
rem @echo Debug: CURRENT=%current_minor% - MINIMAL=%minimal_minor%
if %current_minor% LSS %minimal_minor% (
@echo Error: Java version -- %JAVAVER% -- is too low to run JMeter. Needs a Java version greater than or equal to %MINIMAL_VERSION%
set ERRORLEVEL=3
goto pause
)
if .%JM_LAUNCH% == . set JM_LAUNCH=java.exe
if exist jmeter.bat goto winNT1
if .%JMETER_BIN% == . set JMETER_BIN=%~dp0
:winNT1
rem On NT/2K grab all arguments at once
set JMETER_CMD_LINE_ARGS=%*
rem The following link describes the -XX options:
rem http://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html
rem See the unix startup file for the rationale of the following parameters,
rem including some tuning recommendations
set HEAP=-Xms512m -Xmx512m
rem Uncomment this to generate GC verbose file
rem set VERBOSE_GC=-verbose:gc -Xloggc:gc_jmeter_%p.log -XX:+PrintGCDetails -XX:+PrintGCCause -XX:+PrintTenuringDistribution -XX:+PrintHeapAtGC -XX:+PrintGCApplicationConcurrentTime -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCDateStamps
set GC_ALGO=-XX:+UseG1GC -XX:MaxGCPauseMillis=250 -XX:G1ReservePercent=20
set SYSTEM_PROPS=-Djava.security.egd=file:/dev/urandom
rem Always dump on OOM (does not cost anything unless triggered)
set DUMP=-XX:+HeapDumpOnOutOfMemoryError
rem Additional settings that might help improve GUI performance on some platforms
rem See: http://www.oracle.com/technetwork/java/perf-graphics-135933.html
set DDRAW=
rem Setting this flag to true turns off DirectDraw usage, which sometimes helps to get rid of a lot of rendering problems on Win32.
rem set DDRAW=%DDRAW% -Dsun.java2d.noddraw=true
rem Setting this flag to false turns off DirectDraw offscreen surfaces acceleration by forcing all createVolatileImage calls to become createImage calls, and disables hidden acceleration performed on surfaces created with createImage .
rem set DDRAW=%DDRAW% -Dsun.java2d.ddoffscreen=false
rem Setting this flag to true enables hardware-accelerated scaling.
rem set DDRAW=%DDRAW% -Dsun.java2d.ddscale=true
rem Server mode
rem Collect the settings defined above
set ARGS=%DUMP% %HEAP% %VERBOSE_GC% %GC_ALGO% %DDRAW% %SYSTEM_PROPS%
%JM_START% %JM_LAUNCH% %ARGS% %JVM_ARGS% -jar "%JMETER_BIN%ApacheJMeter.jar" %JMETER_CMD_LINE_ARGS%
rem If the errorlevel is not zero, then display it and pause
if NOT errorlevel 0 goto pause
if errorlevel 1 goto pause
goto end
:pause
echo errorlevel=%ERRORLEVEL%
pause
:end
... ...
################################################################################
# Apache JMeter Property file
################################################################################
## Licensed to the Apache Software Foundation (ASF) under one or more
## contributor license agreements. See the NOTICE file distributed with
## this work for additional information regarding copyright ownership.
## The ASF licenses this file to You under the Apache License, Version 2.0
## (the "License"); you may not use this file except in compliance with
## the License. You may obtain a copy of the License at
##
## http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in writing, software
## distributed under the License is distributed on an "AS IS" BASIS,
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
## See the License for the specific language governing permissions and
## limitations under the License.
################################################################################
#
# THIS FILE SHOULD NOT BE MODIFIED
#
# This avoids having to re-apply the modifications when upgrading JMeter
# Instead only user.properties should be modified:
# 1/ copy the property you want to modify to user.properties from jmeter.properties
# 2/ Change its value there
#
################################################################################
# JMeter properties are described in the file
# http://jmeter.apache.org/usermanual/properties_reference.html
# A local copy can be found in
# printable_docs/usermanual/properties_reference.html
#Preferred GUI language. Comment out to use the JVM default locale's language.
#language=en
# Additional locale(s) to add to the displayed list.
# The current default list is: en, fr, de, no, es, tr, ja, zh_CN, zh_TW, pl, pt_BR
# [see JMeterMenuBar#makeLanguageMenu()]
# The entries are a comma-separated list of language names
#locales.add=zu
#---------------------------------------------------------------------------
# XML Parser
#---------------------------------------------------------------------------
# Path to a Properties file containing Namespace mapping in the form
# prefix=Namespace
# Example:
# ns=http://biz.aol.com/schema/2006-12-18
#xpath.namespace.config=
#---------------------------------------------------------------------------
# SSL configuration
#---------------------------------------------------------------------------
## SSL System properties are now in system.properties
# JMeter no longer converts javax.xxx property entries in this file into System properties.
# These must now be defined in the system.properties file or on the command-line.
# The system.properties file gives more flexibility.
# By default, SSL session contexts are now created per-thread, rather than being shared.
# The original behaviour can be enabled by setting the JMeter property to true
#https.sessioncontext.shared=false
# Be aware that https default protocol may vary depending on the version of JVM
# See https://blogs.oracle.com/java-platform-group/entry/diagnosing_tls_ssl_and_https
# See https://bz.apache.org/bugzilla/show_bug.cgi?id=58236
# Default HTTPS protocol level:
#https.default.protocol=TLS
# This may need to be changed here (or in user.properties) to:
#https.default.protocol=SSLv3
# List of protocols to enable. You may have to select only a subset if you find issues with target server.
# This is needed when server does not support Socket version negotiation, this can lead to:
# javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
# java.net.SocketException: Connection reset
# see https://bz.apache.org/bugzilla/show_bug.cgi?id=54759
#https.socket.protocols=SSLv2Hello SSLv3 TLSv1
# Control if we allow reuse of cached SSL context between iterations
# set the value to 'false' to reset the SSL context each iteration
#https.use.cached.ssl.context=true
# Start and end index to be used with keystores with many entries
# The default is to use entry 0, i.e. the first
#https.keyStoreStartIndex=0
#https.keyStoreEndIndex=0
#---------------------------------------------------------------------------
# Look and Feel configuration
#---------------------------------------------------------------------------
#Classname of the Swing default UI
#
# The LAF classnames that are available are now displayed as ToolTip text
# when hovering over the Options/Look and Feel selection list.
#
# You can either use a full class name, as shown below,
# or one of the strings "System" or "CrossPlatform" which means
# JMeter will use the corresponding string returned by UIManager.get<name>LookAndFeelClassName()
# LAF can be overridden by os.name (lowercased, spaces replaced by '_')
# Sample os.name LAF:
#jmeter.laf.windows_xp=javax.swing.plaf.metal.MetalLookAndFeel
# Failing that, the OS family = os.name, but only up to first space:
# Sample OS family LAF:
#jmeter.laf.windows=com.sun.java.swing.plaf.windows.WindowsLookAndFeel
# Mac apparently looks better with the System LAF
jmeter.laf.mac=System
# Failing that, the JMeter default laf can be defined:
#jmeter.laf=System
# If none of the above jmeter.laf properties are defined, JMeter uses the CrossPlatform LAF.
# This is because the CrossPlatform LAF generally looks better than the System LAF.
# See https://bz.apache.org/bugzilla/show_bug.cgi?id=52026 for details
# N.B. the laf can be defined in user.properties.
# LoggerPanel display
# default to false
#jmeter.loggerpanel.display=false
# Enable LogViewer Panel to receive log event even if closed
# Enabled since 2.12
# Note this has some impact on performances, but as GUI mode must
# not be used for Load Test it is acceptable
#jmeter.loggerpanel.enable_when_closed=true
# Max lines kept in LoggerPanel, default to 1000 chars
# 0 means no limit
#jmeter.loggerpanel.maxlength=1000
# Interval period in ms to process the queue of events of the listeners
#jmeter.gui.refresh_period=500
# HiDPI mode (default: false)
# Activate a 'pseudo'-hidpi mode. Allows to increase size of some UI elements
# which are not correctly managed by JVM with high resolution screens in Linux or Windows
#jmeter.hidpi.mode=false
# To enable pseudo-hidpi mode change to true
#jmeter.hidpi.mode=true
# HiDPI scale factor
#jmeter.hidpi.scale.factor=1.0
# Suggested value for HiDPI
#jmeter.hidpi.scale.factor=2.0
# Toolbar display
# Toolbar icon definitions
#jmeter.toolbar.icons=org/apache/jmeter/images/toolbar/icons-toolbar.properties
# Toolbar list
#jmeter.toolbar=new,open,close,save,save_as_testplan,|,cut,copy,paste,|,expand,collapse,toggle,|,test_start,test_stop,test_shutdown,|,test_start_remote_all,test_stop_remote_all,test_shutdown_remote_all,|,test_clear,test_clear_all,|,search,search_reset,|,function_helper,help
# Toolbar icons default size: 22x22. Available sizes are: 22x22, 32x32, 48x48
#jmeter.toolbar.icons.size=22x22
# Suggested value for HiDPI
#jmeter.toolbar.icons.size=48x48
# Icon definitions
# default:
#jmeter.icons=org/apache/jmeter/images/icon.properties
# alternate:
#jmeter.icons=org/apache/jmeter/images/icon_1.properties
# Historical icon set (deprecated)
#jmeter.icons=org/apache/jmeter/images/icon_old.properties
# Tree icons default size: 19x19. Available sizes are: 19x19, 24x24, 32x32, 48x48
# Useful for HiDPI display (see below)
#jmeter.tree.icons.size=19x19
# Suggested value for HiDPI screen like 3200x1800:
#jmeter.tree.icons.size=32x32
#Components to not display in JMeter GUI (GUI class name or static label)
# These elements are deprecated and will be removed in next version:
# MongoDB Script, MongoDB Source Config, Monitor Results
# BSF Elements
not_in_menu=org.apache.jmeter.protocol.mongodb.sampler.MongoScriptSampler,org.apache.jmeter.protocol.mongodb.config.MongoSourceElement,\
org.apache.jmeter.timers.BSFTimer,org.apache.jmeter.modifiers.BSFPreProcessor,org.apache.jmeter.extractor.BSFPostProcessor,org.apache.jmeter.assertions.BSFAssertion,\
org.apache.jmeter.visualizers.BSFListener,org.apache.jmeter.protocol.java.sampler.BSFSampler,\
org.apache.jmeter.protocol.http.control.gui.SoapSamplerGui
# Number of items in undo history
# Feature is disabled by default (0) due to known and not fixed bugs:
# https://bz.apache.org/bugzilla/show_bug.cgi?id=57043
# https://bz.apache.org/bugzilla/show_bug.cgi?id=57039
# https://bz.apache.org/bugzilla/show_bug.cgi?id=57040
# Set it to a number > 0 (25 can be a good default)
# The bigger it is, the more it consumes memory
#undo.history.size=0
# Hotkeys to add JMeter components, will add elements when you press Ctrl+0 .. Ctrl+9 (Command+0 .. Command+9 on Mac)
gui.quick_0=ThreadGroupGui
gui.quick_1=HttpTestSampleGui
gui.quick_2=RegexExtractorGui
gui.quick_3=AssertionGui
gui.quick_4=ConstantTimerGui
gui.quick_5=TestActionGui
gui.quick_6=JSR223PostProcessor
gui.quick_7=JSR223PreProcessor
gui.quick_8=DebugSampler
gui.quick_9=ViewResultsFullVisualizer
#---------------------------------------------------------------------------
# JMX Backup configuration
#---------------------------------------------------------------------------
#Enable auto backups of the .jmx file when a test plan is saved.
#When enabled, before the .jmx is saved, it will be backed up to the directory pointed
#by the jmeter.gui.action.save.backup_directory property (see below). Backup file names are built
#after the jmx file being saved. For example, saving test-plan.jmx will create a test-plan-000012.jmx
#in the backup directory provided that the last created backup file is test-plan-000011.jmx.
#Default value is true indicating that auto backups are enabled
#jmeter.gui.action.save.backup_on_save=true
#Set the backup directory path where JMX backups will be created upon save in the GUI.
#If not set (what it defaults to) then backup files will be created in
#a sub-directory of the JMeter base installation. The default directory is ${JMETER_HOME}/backups
#If set and the directory does not exist, it will be created.
#jmeter.gui.action.save.backup_directory=
#Set the maximum time (in hours) that backup files should be preserved since the save time.
#By default no expiration time is set which means we keep backups for ever.
#jmeter.gui.action.save.keep_backup_max_hours=0
#Set the maximum number of backup files that should be preserved. By default 10 backups will be preserved.
#Setting this to zero will cause the backups to not being deleted (unless keep_backup_max_hours is set to a non zero value)
#jmeter.gui.action.save.keep_backup_max_count=10
#---------------------------------------------------------------------------
# Remote hosts and RMI configuration
#---------------------------------------------------------------------------
# Remote Hosts - comma delimited
remote_hosts=127.0.0.1
#remote_hosts=localhost:1099,localhost:2010
# RMI port to be used by the server (must start rmiregistry with same port)
#server_port=1099
# To change the port to (say) 1234:
# On the server(s)
# - set server_port=1234
# - start rmiregistry with port 1234
# On Windows this can be done by:
# SET SERVER_PORT=1234
# JMETER-SERVER
#
# On Unix:
# SERVER_PORT=1234 jmeter-server
#
# On the client:
# - set remote_hosts=server:1234
# Parameter that controls the RMI port used by the RemoteSampleListenerImpl (The Controler)
# Default value is 0 which means port is randomly assigned
# You may need to open Firewall port on the Controller machine
#client.rmi.localport=0
# When distributed test is starting, there may be several attempts to initialize
# remote engines. By default, only single try is made. Increase following property
# to make it retry for additional times
#client.tries=1
# If there is initialization retries, following property sets delay between attempts
#client.retries_delay=5000
# When all initialization tries was made, test will fail if some remote engines are failed
# Set following property to true to ignore failed nodes and proceed with test
#client.continue_on_fail=false
# To change the default port (1099) used to access the server:
#server.rmi.port=1234
# To use a specific port for the JMeter server engine, define
# the following property before starting the server:
#server.rmi.localport=4000
# From JMeter 2.3.1, the jmeter server creates the RMI registry as part of the server process.
# To stop the server creating the RMI registry:
#server.rmi.create=false
# From JMeter 2.3.1, define the following property to cause JMeter to exit after the first test
#server.exitaftertest=true
#---------------------------------------------------------------------------
# Include Controller
#---------------------------------------------------------------------------
# Prefix used by IncludeController when building file name
#includecontroller.prefix=
#---------------------------------------------------------------------------
# HTTP Java configuration
#---------------------------------------------------------------------------
# Number of connection retries performed by HTTP Java sampler before giving up
# 0 means no retry since version 3.0
#http.java.sampler.retries=0
#---------------------------------------------------------------------------
# Following properties apply to Apache HttpClient
#---------------------------------------------------------------------------
# set the socket timeout (or use the parameter http.socket.timeout)
# for AJP Sampler implementation.
# Value is in milliseconds
#httpclient.timeout=0
# 0 == no timeout
# Set the http version (defaults to 1.1)
#httpclient.version=1.1 (or use the parameter http.protocol.version)
# Define characters per second > 0 to emulate slow connections
#httpclient.socket.http.cps=0
#httpclient.socket.https.cps=0
#Enable loopback protocol
#httpclient.loopback=true
# Define the local host address to be used for multi-homed hosts
#httpclient.localaddress=1.2.3.4
#---------------------------------------------------------------------------
# AuthManager Kerberos configuration
#---------------------------------------------------------------------------
# AuthManager Kerberos configuration
# Name of application module used in jaas.conf
#kerberos_jaas_application=JMeter
# Should ports be stripped from urls before constructing SPNs
# for SPNEGO authentication
#kerberos.spnego.strip_port=true
#---------------------------------------------------------------------------
# Apache HttpComponents HTTPClient configuration (HTTPClient4)
#---------------------------------------------------------------------------
# define a properties file for overriding Apache HttpClient parameters
# Uncomment this line if you put anything in hc.parameters file
#hc.parameters.file=hc.parameters
# Preemptively send Authorization Header when BASIC auth is used
#httpclient4.auth.preemptive=true
# Number of retries to attempt (default 0)
#httpclient4.retrycount=0
# true if it's OK to retry requests that have been sent
# This will retry Idempotent and non Idempotent requests
# This should usually be false, but it can be useful
# when testing against some Load Balancers like Amazon ELB
#httpclient4.request_sent_retry_enabled=false
# Idle connection timeout (Milliseconds) to apply if the server does not send
# Keep-Alive headers (default 0)
# Set this > 0 to compensate for servers that don't send a Keep-Alive header
# If <= 0, idle timeout will only apply if the server sends a Keep-Alive header
#httpclient4.idletimeout=0
# Check connections if the elapsed time (Milliseconds) since the last
# use of the connection exceed this value
#httpclient4.validate_after_inactivity=1700
# TTL (in Milliseconds) represents an absolute value.
# No matter what, the connection will not be re-used beyond its TTL.
#httpclient4.time_to_live=2000
# Max size in bytes of PUT body to retain in result sampler. Bigger results will be clipped.
#httpclient4.max_body_retain_size=32768
#---------------------------------------------------------------------------
# HTTP Cache Manager configuration
#---------------------------------------------------------------------------
#
# Space or comma separated list of methods that can be cached
#cacheable_methods=GET
# N.B. This property is currently a temporary solution for Bug 56162
# Since 2.12, JMeter does not create anymore a Sample Result with 204 response
# code for a resource found in cache which is inline with what browser do.
#cache_manager.cached_resource_mode=RETURN_NO_SAMPLE
# You can choose between 3 modes:
# RETURN_NO_SAMPLE (default)
# RETURN_200_CACHE
# RETURN_CUSTOM_STATUS
# Those mode have the following behaviours:
# RETURN_NO_SAMPLE : this mode returns no Sample Result, it has no additional configuration
# RETURN_200_CACHE : this mode will return Sample Result with response code to 200 and response message to "(ex cache)", you can modify response message by setting
# RETURN_200_CACHE.message=(ex cache)
# RETURN_CUSTOM_STATUS : This mode lets you select what response code and message you want to return, if you use this mode you need to set those properties
# RETURN_CUSTOM_STATUS.code=
# RETURN_CUSTOM_STATUS.message=
#---------------------------------------------------------------------------
# Results file configuration
#---------------------------------------------------------------------------
# This section helps determine how result data will be saved.
# The commented out values are the defaults.
# legitimate values: xml, csv, db. Only xml and csv are currently supported.
#jmeter.save.saveservice.output_format=csv
# true when field should be saved; false otherwise
# assertion_results_failure_message only affects CSV output
#jmeter.save.saveservice.assertion_results_failure_message=true
#
# legitimate values: none, first, all
#jmeter.save.saveservice.assertion_results=none
#
#jmeter.save.saveservice.data_type=true
#jmeter.save.saveservice.label=true
#jmeter.save.saveservice.response_code=true
# response_data is not currently supported for CSV output
#jmeter.save.saveservice.response_data=false
# Save ResponseData for failed samples
#jmeter.save.saveservice.response_data.on_error=false
#jmeter.save.saveservice.response_message=true
#jmeter.save.saveservice.successful=true
#jmeter.save.saveservice.thread_name=true
#jmeter.save.saveservice.time=true
#jmeter.save.saveservice.subresults=true
#jmeter.save.saveservice.assertions=true
#jmeter.save.saveservice.latency=true
# Only available with HttpClient4
#jmeter.save.saveservice.connect_time=true
#jmeter.save.saveservice.samplerData=false
#jmeter.save.saveservice.responseHeaders=false
#jmeter.save.saveservice.requestHeaders=false
#jmeter.save.saveservice.encoding=false
#jmeter.save.saveservice.bytes=true
# Only available with HttpClient4
#jmeter.save.saveservice.sent_bytes=true
#jmeter.save.saveservice.url=false
#jmeter.save.saveservice.filename=false
#jmeter.save.saveservice.hostname=false
#jmeter.save.saveservice.thread_counts=true
#jmeter.save.saveservice.sample_count=false
#jmeter.save.saveservice.idle_time=true
# Timestamp format - this only affects CSV output files
# legitimate values: none, ms, or a format suitable for SimpleDateFormat
#jmeter.save.saveservice.timestamp_format=ms
#jmeter.save.saveservice.timestamp_format=yyyy/MM/dd HH:mm:ss.SSS
# For use with Comma-separated value (CSV) files or other formats
# where the fields' values are separated by specified delimiters.
# Default:
#jmeter.save.saveservice.default_delimiter=,
# For TAB, since JMeter 2.3 one can use:
#jmeter.save.saveservice.default_delimiter=\t
# Only applies to CSV format files:
# Print field names as first line in CSV
#jmeter.save.saveservice.print_field_names=true
# Optional list of JMeter variable names whose values are to be saved in the result data files.
# Use commas to separate the names. For example:
#sample_variables=SESSION_ID,REFERENCE
# N.B. The current implementation saves the values in XML as attributes,
# so the names must be valid XML names.
# Versions of JMeter after 2.3.2 send the variable to all servers
# to ensure that the correct data is available at the client.
# Optional xml processing instruction for line 2 of the file:
# Example:
#jmeter.save.saveservice.xml_pi=<?xml-stylesheet type="text/xsl" href="../extras/jmeter-results-detail-report.xsl"?>
# Default value:
#jmeter.save.saveservice.xml_pi=
# Prefix used to identify filenames that are relative to the current base
#jmeter.save.saveservice.base_prefix=~/
# AutoFlush on each line written in XML or CSV output
# Setting this to true will result in less test results data loss in case of Crash
# but with impact on performances, particularly for intensive tests (low or no pauses)
# Since JMeter 2.10, this is false by default
#jmeter.save.saveservice.autoflush=false
#---------------------------------------------------------------------------
# Settings that affect SampleResults
#---------------------------------------------------------------------------
# Save the start time stamp instead of the end
# This also affects the timestamp stored in result files
sampleresult.timestamp.start=true
# Whether to use System.nanoTime() - otherwise only use System.currentTimeMillis()
#sampleresult.useNanoTime=true
# Use a background thread to calculate the nanoTime offset
# Set this to <= 0 to disable the background thread
#sampleresult.nanoThreadSleep=5000
#---------------------------------------------------------------------------
# Upgrade property
#---------------------------------------------------------------------------
# File that holds a record of name changes for backward compatibility issues
upgrade_properties=/bin/upgrade.properties
#---------------------------------------------------------------------------
# JMeter Test Script recorder configuration
#
# N.B. The element was originally called the Proxy recorder, which is why the
# properties have the prefix "proxy".
#---------------------------------------------------------------------------
# If the recorder detects a gap of at least 5s (default) between HTTP requests,
# it assumes that the user has clicked a new URL
#proxy.pause=5000
# Add numeric prefix to Sampler names (default true)
#proxy.number.requests=true
# List of URL patterns that will be added to URL Patterns to exclude
# Separate multiple lines with ;
#proxy.excludes.suggested=.*\\.(bmp|css|js|gif|ico|jpe?g|png|swf|woff|woff2)
# Change the default HTTP Sampler (currently HttpClient4)
# Java:
#jmeter.httpsampler=HTTPSampler
#or
#jmeter.httpsampler=Java
#
# HttpClient4.x
#jmeter.httpsampler=HttpClient4
# By default JMeter tries to be more lenient with RFC2616 redirects and allows
# relative paths.
# If you want to test strict conformance, set this value to true
# When the property is true, JMeter follows http://tools.ietf.org/html/rfc3986#section-5.2
#jmeter.httpclient.strict_rfc2616=false
# Default content-type include filter to use
#proxy.content_type_include=text/html|text/plain|text/xml
# Default content-type exclude filter to use
#proxy.content_type_exclude=image/.*|text/css|application/.*
# Default headers to remove from Header Manager elements
# (Cookie and Authorization are always removed)
#proxy.headers.remove=If-Modified-Since,If-None-Match,Host
# Binary content-type handling
# These content-types will be handled by saving the request in a file:
#proxy.binary.types=application/x-amf,application/x-java-serialized-object
# The files will be saved in this directory:
#proxy.binary.directory=user.dir
# The files will be created with this file filesuffix:
#proxy.binary.filesuffix=.binary
#---------------------------------------------------------------------------
# Test Script Recorder certificate configuration
#---------------------------------------------------------------------------
#proxy.cert.directory=<JMeter bin directory>
#proxy.cert.file=proxyserver.jks
#proxy.cert.type=JKS
#proxy.cert.keystorepass=password
#proxy.cert.keypassword=password
#proxy.cert.factory=SunX509
# define this property if you wish to use your own keystore
#proxy.cert.alias=<none>
# The default validity for certificates created by JMeter
#proxy.cert.validity=7
# Use dynamic key generation (if supported by JMeter/JVM)
# If false, will revert to using a single key with no certificate
#proxy.cert.dynamic_keys=true
#---------------------------------------------------------------------------
# Test Script Recorder miscellaneous configuration
#---------------------------------------------------------------------------
# Whether to attempt disabling of samples that resulted from redirects
# where the generated samples use auto-redirection
#proxy.redirect.disabling=true
# SSL configuration
#proxy.ssl.protocol=TLS
#---------------------------------------------------------------------------
# JMeter Proxy configuration
#---------------------------------------------------------------------------
# use command-line flags for user-name and password
#http.proxyDomain=NTLM domain, if required by HTTPClient sampler
#---------------------------------------------------------------------------
# HTTPSampleResponse Parser configuration
#---------------------------------------------------------------------------
# Space-separated list of parser groups
HTTPResponse.parsers=htmlParser wmlParser cssParser
# for each parser, there should be a parser.types and a parser.className property
# CSS Parser based on ph-css
cssParser.className=org.apache.jmeter.protocol.http.parser.CssParser
cssParser.types=text/css
# CSS parser LRU cache size
# This cache stores the URLs found in a CSS to avoid continuously parsing the CSS
# By default the cache size is 400
# It can be disabled by setting its value to 0
#css.parser.cache.size=400
# Let the CSS Parser ingore all css errors
#css.parser.ignore_all_css_errors=true
#---------------------------------------------------------------------------
# HTML Parser configuration
#---------------------------------------------------------------------------
# Define the HTML parser to be used.
# Default parser:
# This new parser (since 2.10) should perform better than all others
# see https://bz.apache.org/bugzilla/show_bug.cgi?id=55632
# Do not comment this property
htmlParser.className=org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser
# Other parsers:
# Default parser before 2.10
#htmlParser.className=org.apache.jmeter.protocol.http.parser.JTidyHTMLParser
# Note that Regexp extractor may detect references that have been commented out.
# In many cases it will work OK, but you should be aware that it may generate
# additional references.
#htmlParser.className=org.apache.jmeter.protocol.http.parser.RegexpHTMLParser
# This parser is based on JSoup, it should be the most accurate but less performant
# than LagartoBasedHtmlParser
#htmlParser.className=org.apache.jmeter.protocol.http.parser.JsoupBasedHtmlParser
#Used by HTTPSamplerBase to associate htmlParser with content types below
htmlParser.types=text/html application/xhtml+xml application/xml text/xml
#---------------------------------------------------------------------------
# WML Parser configuration
#---------------------------------------------------------------------------
wmlParser.className=org.apache.jmeter.protocol.http.parser.RegexpHTMLParser
#Used by HTTPSamplerBase to associate wmlParser with content types below
wmlParser.types=text/vnd.wap.wml
#---------------------------------------------------------------------------
# Remote batching configuration
#---------------------------------------------------------------------------
# How is Sample sender implementations configured:
# - true (default) means client configuration will be used
# - false means server configuration will be used
#sample_sender_client_configured=true
# By default when Stripping modes are used JMeter since 3.1 will strip
# response even for SampleResults in error.
# If you want to revert to previous behaviour (no stripping of Responses in error)
# set this property to false
#sample_sender_strip_also_on_error=true
# Remote batching support
# Since JMeter 2.9, default is MODE_STRIPPED_BATCH, which returns samples in
# batch mode (every 100 samples or every minute by default)
# Note also that MODE_STRIPPED_BATCH strips response data from SampleResult, so if you need it change to
# another mode
# Hold retains samples until end of test (may need lots of memory)
# Batch returns samples in batches
# Statistical returns sample summary statistics
# hold_samples was originally defined as a separate property,
# but can now also be defined using mode=Hold
# mode can also be the class name of an implementation of org.apache.jmeter.samplers.SampleSender
#mode=Standard
#mode=Batch
#mode=Hold
#mode=Statistical
#Set to true to key statistical samples on threadName rather than threadGroup
#key_on_threadname=false
#mode=Stripped
#mode=StrippedBatch
#mode=org.example.load.MySampleSender
#
#num_sample_threshold=100
# Value is in milliseconds
#time_threshold=60000
#
# Asynchronous sender; uses a queue and background worker process to return the samples
#mode=Asynch
# default queue size
#asynch.batch.queue.size=100
# Same as Asynch but strips response data from SampleResult
#mode=StrippedAsynch
#
# DiskStore: as for Hold mode, but serialises the samples to disk, rather than saving in memory
#mode=DiskStore
# Same as DiskStore but strips response data from SampleResult
#mode=StrippedDiskStore
# Note: the mode is currently resolved on the client;
# other properties (e.g. time_threshold) are resolved on the server.
#---------------------------------------------------------------------------
# JDBC Request configuration
#---------------------------------------------------------------------------
# String used to indicate a null value
#jdbcsampler.nullmarker=]NULL[
#
# Max size of BLOBs and CLOBs to store in JDBC sampler. Result will be cut off
#jdbcsampler.max_retain_result_size=65536
#---------------------------------------------------------------------------
# OS Process Sampler configuration
#---------------------------------------------------------------------------
# Polling to see if process has finished its work, used when a timeout is configured on sampler
#os_sampler.poll_for_timeout=100
#---------------------------------------------------------------------------
# TCP Sampler configuration
#---------------------------------------------------------------------------
# The default handler class
#tcp.handler=TCPClientImpl
#
# eolByte = byte value for end of line
# set this to a value outside the range -128 to +127 to skip eol checking
#tcp.eolByte=1000
#
# TCP Charset, used by org.apache.jmeter.protocol.tcp.sampler.TCPClientImpl
# default to Platform defaults charset as returned by Charset.defaultCharset().name()
#tcp.charset=
#
# status.prefix and suffix = strings that enclose the status response code
#tcp.status.prefix=Status=
#tcp.status.suffix=.
#
# status.properties = property file to convert codes to messages
#tcp.status.properties=mytestfiles/tcpstatus.properties
# The length prefix used by LengthPrefixedBinaryTCPClientImpl implementation
# defaults to 2 bytes.
#tcp.binarylength.prefix.length=2
#---------------------------------------------------------------------------
# Summariser - Generate Summary Results - configuration (mainly applies to non-GUI mode)
#---------------------------------------------------------------------------
#
# Comment the following property to disable the default non-GUI summariser
# [or change the value to rename it]
# (applies to non-GUI mode only)
summariser.name=summary
#
# interval between summaries (in seconds) default 30 seconds
#summariser.interval=30
#
# Write messages to log file
#summariser.log=true
#
# Write messages to System.out
#summariser.out=true
# Ignore SampleResults generated by TransactionControllers
# defaults to true
#summariser.ignore_transaction_controller_sample_result=true
#---------------------------------------------------------------------------
# Aggregate Report and Aggregate Graph - configuration
#---------------------------------------------------------------------------
#
# Percentiles to display in reports
# Can be float value between 0 and 100
# First percentile to display, defaults to 90%
#aggregate_rpt_pct1=90
# Second percentile to display, defaults to 95%
#aggregate_rpt_pct2=95
# Second percentile to display, defaults to 99%
#aggregate_rpt_pct3=99
#---------------------------------------------------------------------------
# BackendListener - configuration
#---------------------------------------------------------------------------
#
# Backend metrics window mode (fixed=fixed-size window, timed=time boxed)
#backend_metrics_window_mode=fixed
# Backend metrics sliding window size for Percentiles, Min, Max
#backend_metrics_window=100
# Backend metrics sliding window size for Percentiles, Min, Max
# when backend_metrics_window_mode is timed
# Setting this value too high can lead to OOM
#backend_metrics_large_window=5000
########################
# Graphite Backend
########################
# Send interval in second
# Defaults to 1 second
#backend_graphite.send_interval=1
########################
# Influx Backend
########################
# Send interval in second
# Defaults to 5 seconds
#backend_influxdb.send_interval=5
#Influxdb timeouts
#backend_influxdb.connection_timeout=1000
#backend_influxdb.socket_timeout=3000
#backend_influxdb.connection_request_timeout=100
#---------------------------------------------------------------------------
# BeanShell configuration
#---------------------------------------------------------------------------
# BeanShell Server properties
#
# Define the port number as non-zero to start the http server on that port
#beanshell.server.port=9000
# The telnet server will be started on the next port
#
# Define the server initialisation file
beanshell.server.file=../extras/startup.bsh
#
# Define a file to be processed at startup
# This is processed using its own interpreter.
#beanshell.init.file=
#
# Define the intialisation files for BeanShell Sampler, Function and other BeanShell elements
# N.B. Beanshell test elements do not share interpreters.
# Each element in each thread has its own interpreter.
# This is retained between samples.
#beanshell.sampler.init=BeanShellSampler.bshrc
#beanshell.function.init=BeanShellFunction.bshrc
#beanshell.assertion.init=BeanShellAssertion.bshrc
#beanshell.listener.init=etc
#beanshell.postprocessor.init=etc
#beanshell.preprocessor.init=etc
#beanshell.timer.init=etc
# The file BeanShellListeners.bshrc contains sample definitions
# of Test and Thread Listeners.
#---------------------------------------------------------------------------
# Groovy function
#---------------------------------------------------------------------------
#Path to Groovy file containing utility functions to make available to __groovy function
#groovy.utilities=
# Example
#groovy.utilities=bin/utility.groovy
#---------------------------------------------------------------------------
# MailerModel configuration
#---------------------------------------------------------------------------
# Number of successful samples before a message is sent
#mailer.successlimit=2
#
# Number of failed samples before a message is sent
#mailer.failurelimit=2
#---------------------------------------------------------------------------
# CSVRead configuration
#---------------------------------------------------------------------------
# CSVRead delimiter setting (default ",")
# Make sure that there are no trailing spaces or tabs after the delimiter
# characters, or these will be included in the list of valid delimiters
#csvread.delimiter=,
#csvread.delimiter=;
#csvread.delimiter=!
#csvread.delimiter=~
# The following line has a tab after the =
#csvread.delimiter=
#---------------------------------------------------------------------------
# __time() function configuration
#
# The properties below can be used to redefine the default formats
#---------------------------------------------------------------------------
#time.YMD=yyyyMMdd
#time.HMS=HHmmss
#time.YMDHMS=yyyyMMdd-HHmmss
#time.USER1=
#time.USER2=
#---------------------------------------------------------------------------
# CSV DataSet configuration
#---------------------------------------------------------------------------
# String to return at EOF (if recycle not used)
#csvdataset.eofstring=<EOF>
#---------------------------------------------------------------------------
# LDAP Sampler configuration
#---------------------------------------------------------------------------
# Maximum number of search results returned by a search that will be sorted
# to guarantee a stable ordering (if more results then this limit are returned
# then no sorting is done). Set to 0 to turn off all sorting, in which case
# "Equals" response assertions will be very likely to fail against search results.
#
#ldapsampler.max_sorted_results=1000
# Number of characters to log for each of three sections (starting matching section, diff section,
# ending matching section where not all sections will appear for all diffs) diff display when an Equals
# assertion fails. So a value of 100 means a maximum of 300 characters of diff text will be displayed
# (+ a number of extra characters like "..." and "[[["/"]]]" which are used to decorate it).
#assertion.equals_section_diff_len=100
# test written out to log to signify start/end of diff delta
#assertion.equals_diff_delta_start=[[[
#assertion.equals_diff_delta_end=]]]
#---------------------------------------------------------------------------
# Miscellaneous configuration
#---------------------------------------------------------------------------
# If defined, then start the mirror server on the port
#mirror.server.port=8081
# ORO PatternCacheLRU size
#oro.patterncache.size=1000
#TestBeanGui
#
#propertyEditorSearchPath=null
# Turn expert mode on/off: expert mode will show expert-mode beans and properties
#jmeter.expertMode=true
# Max size of bytes stored in memory per SampleResult
# Ensure you don't exceed max capacity of a Java Array and remember
# that the higher it is, the higher JMeter will consume heap
# Defaults to 10MB
#httpsampler.max_bytes_to_store_per_request=10485760
# Max size of buffer in bytes used when reading responses
# Defaults to 64k
#httpsampler.max_buffer_size=66560
# Maximum redirects to follow in a single sequence (default 20)
#httpsampler.max_redirects=20
# Maximum frame/iframe nesting depth (default 5)
#httpsampler.max_frame_depth=5
# Revert to BUG 51939 behaviour (no separate container for embedded resources) by setting the following false:
#httpsampler.separate.container=true
# If embedded resources download fails due to missing resources or other reasons, if this property is true
# Parent sample will not be marked as failed
#httpsampler.ignore_failed_embedded_resources=false
#keep alive time for the parallel download threads (in seconds)
#httpsampler.parallel_download_thread_keepalive_inseconds=60
# Don't keep the embedded resources response data : just keep the size and the md5
# default to false
#httpsampler.embedded_resources_use_md5=false
# List of extra HTTP methods that should be available in select box
#httpsampler.user_defined_methods=VERSION-CONTROL,REPORT,CHECKOUT,CHECKIN,UNCHECKOUT,MKWORKSPACE,UPDATE,LABEL,MERGE,BASELINE-CONTROL,MKACTIVITY
# The encoding to be used if none is provided (default ISO-8859-1)
#sampleresult.default.encoding=ISO-8859-1
# Network response size calculation method
# Use real size: number of bytes for response body return by webserver
# (i.e. the network bytes received for response)
# if set to false, the (uncompressed) response data size will used (default before 2.5)
# Include headers: add the headers size in real size
#sampleresult.getbytes.body_real_size=true
#sampleresult.getbytes.headers_size=true
# CookieManager behaviour - should cookies with null/empty values be deleted?
# Default is true. Use false to revert to original behaviour
#CookieManager.delete_null_cookies=true
# CookieManager behaviour - should variable cookies be allowed?
# Default is true. Use false to revert to original behaviour
#CookieManager.allow_variable_cookies=true
# CookieManager behaviour - should Cookies be stored as variables?
# Default is false
#CookieManager.save.cookies=false
# CookieManager behaviour - prefix to add to cookie name before storing it as a variable
# Default is COOKIE_; to remove the prefix, define it as one or more spaces
#CookieManager.name.prefix=
# CookieManager behaviour - check received cookies are valid before storing them?
# Default is true. Use false to revert to previous behaviour
#CookieManager.check.cookies=true
# Netscape HTTP Cookie file
cookies=cookies
# Ability to switch to Nashorn as default Javascript Engine used by IfController and __javaScript function
# JMeter works as following:
# - JDK >= 8 and javascript.use_rhino=false or not set : Nashorn
# - JDK >= 8 and javascript.use_rhino=true: Rhino
# If you want to use Rhino on JDK8, set this property to true
#javascript.use_rhino=false
# Number of milliseconds to wait for a thread to stop
#jmeterengine.threadstop.wait=5000
#Whether to invoke System.exit(0) in server exit code after stopping RMI
#jmeterengine.remote.system.exit=false
# Whether to call System.exit(1) on failure to stop threads in non-GUI mode.
# This only takes effect if the test was explicitly requested to stop.
# If this is disabled, it may be necessary to kill the JVM externally
#jmeterengine.stopfail.system.exit=true
# Whether to force call System.exit(0) at end of test in non-GUI mode, even if
# there were no failures and the test was not explicitly asked to stop.
# Without this, the JVM may never exit if there are other threads spawned by
# the test which never exit.
#jmeterengine.force.system.exit=false
# How long to pause (in ms) in the daemon thread before reporting that the JVM has failed to exit.
# If the value is <= 0, the JMeter does not start the daemon thread
#jmeter.exit.check.pause=2000
# If running non-GUI, then JMeter listens on the following port for a shutdown message.
# To disable, set the port to 1000 or less.
#jmeterengine.nongui.port=4445
#
# If the initial port is busy, keep trying until this port is reached
# (to disable searching, set the value less than or equal to the .port property)
#jmeterengine.nongui.maxport=4455
# How often to check for shutdown during ramp-up (milliseconds)
#jmeterthread.rampup.granularity=1000
#Should JMeter expand the tree when loading a test plan?
# default value is false since JMeter 2.7
#onload.expandtree=false
#JSyntaxTextArea configuration
#jsyntaxtextarea.wrapstyleword=true
#jsyntaxtextarea.linewrap=true
#jsyntaxtextarea.codefolding=true
# Set 0 to disable undo feature in JSyntaxTextArea
#jsyntaxtextarea.maxundos=50
# Change the font on the (JSyntax) Text Areas. (Useful for HiDPI screens)
#jsyntaxtextarea.font.family=Hack
#jsyntaxtextarea.font.size=14
# Set this to false to disable the use of JSyntaxTextArea for the Console Logger panel
#loggerpanel.usejsyntaxtext=true
# Maximum size of HTML page that can be displayed; default=10 mbytes
# Set to 0 to disable the size check and display the whole response
#view.results.tree.max_size=10485760
# Order of Renderers in View Results Tree
# Note full class names should be used for non jmeter core renderers
# For JMeter core renderers, class names start with . and are automatically
# prefixed with org.apache.jmeter.visualizers
view.results.tree.renderers_order=.RenderAsText,.RenderAsRegexp,.RenderAsCssJQuery,.RenderAsXPath,org.apache.jmeter.extractor.json.render.RenderAsJsonRenderer,.RenderAsHTML,.RenderAsHTMLFormatted,.RenderAsHTMLWithEmbedded,.RenderAsDocument,.RenderAsJSON,.RenderAsXML
# Maximum number of results in the results tree
# Set to 0 to store all results (might consume a lot of memory)
#view.results.tree.max_results=500
# Maximum size of Document that can be parsed by Tika engine; defaut=10 * 1024 * 1024 (10MB)
# Set to 0 to disable the size check
#document.max_size=0
#JMS options
# Enable the following property to stop JMS Point-to-Point Sampler from using
# the properties java.naming.security.[principal|credentials] when creating the queue connection
#JMSSampler.useSecurity.properties=false
# Set the following value to true in order to skip the delete confirmation dialogue
#confirm.delete.skip=false
# Used by JSR223 elements
# Size of compiled scripts cache
#jsr223.compiled_scripts_cache_size=100
#---------------------------------------------------------------------------
# Classpath configuration
#---------------------------------------------------------------------------
# List of directories (separated by ;) to search for additional JMeter plugin classes,
# for example new GUI elements and samplers.
# Any jar file in such a directory will be automatically included,
# jar files in sub directories are ignored.
# The given value is in addition to any jars found in the lib/ext directory.
# Do not use this for utility or plugin dependency jars.
#search_paths=/app1/lib;/app2/lib
# List of directories that JMeter will search for utility and plugin dependency classes.
# Use your platform path separator to separate multiple paths.
# Any jar file in such a directory will be automatically included,
# jar files in sub directories are ignored.
# The given value is in addition to any jars found in the lib directory.
# All entries will be added to the class path of the system class loader
# and also to the path of the JMeter internal loader.
# Paths with spaces may cause problems for the JVM
#user.classpath=../classes;../lib
# List of directories (separated by ;) that JMeter will search for utility
# and plugin dependency classes.
# Any jar file in such a directory will be automatically included,
# jar files in sub directories are ignored.
# The given value is in addition to any jars found in the lib directory
# or given by the user.classpath property.
# All entries will be added to the path of the JMeter internal loader only.
# For plugin dependencies this property should be used instead of user.classpath.
#plugin_dependency_paths=../dependencies/lib;../app1/;../app2/
# Classpath finder
# ================
# The classpath finder currently needs to load every single JMeter class to find
# the classes it needs.
# For non-GUI mode, it's only necessary to scan for Function classes, but all classes
# are still loaded.
# All current Function classes include ".function." in their name,
# and none include ".gui." in the name, so the number of unwanted classes loaded can be
# reduced by checking for these. However, if a valid function class name does not match
# these restrictions, it will not be loaded. If problems are encountered, then comment
# or change the following properties:
classfinder.functions.contain=.functions.
classfinder.functions.notContain=.gui.
#---------------------------------------------------------------------------
# Additional property files to load
#---------------------------------------------------------------------------
# Should JMeter automatically load additional JMeter properties?
# File name to look for (comment to disable)
user.properties=user.properties
# Should JMeter automatically load additional system properties?
# File name to look for (comment to disable)
system.properties=system.properties
# Comma separated list of files that contain reference to templates and their description
# Path must be relative to JMeter root folder
#template.files=/bin/templates/templates.xml
#---------------------------------------------------------------------------
# Thread Group Validation feature
#---------------------------------------------------------------------------
# Validation is the name of the feature used to rapidly validate a Thread Group runs fine
# Default implementation is org.apache.jmeter.gui.action.validation.TreeClonerForValidation
# It runs validation without timers, with 1 thread, 1 iteration and Startup Delay set to 0
# You can implement your own policy that must extend org.apache.jmeter.engine.TreeCloner
# JMeter will instantiate it and use it to create the Tree used to run validation on Thread Group
#testplan_validation.tree_cloner_class=org.apache.jmeter.validation.ComponentTreeClonerForValidation
# Number of threads to use to validate a Thread Group
#testplan_validation.nb_threads_per_thread_group=1
# Ignore BackendListener when validating the thread group of plan
#testplan_validation.ignore_backends=true
# Ignore timers when validating the thread group of plan
#testplan_validation.ignore_timers=true
# Number of iterations to use to validate a Thread Group
#testplan_validation.number_iterations=1
# Force throuput controllers that work in percentage mode to be a 100%
# Disabled by default
#testplan_validation.tpc_force_100_pct=false
#---------------------------------------------------------------------------
# Think Time configuration
#---------------------------------------------------------------------------
#
# Apply a factor on computed pauses by the following Timers:
# - Gaussian Random Timer
# - Uniform Random Timer
# - Poisson Random Timer
#
#timer.factor=1.0f
# Default implementation that create the Timer structure to add to Test Plan
# Implementation of interface org.apache.jmeter.gui.action.thinktime.ThinkTimeCreator
#think_time_creator.impl=org.apache.jmeter.thinktime.DefaultThinkTimeCreator
# Default Timer GUI class added to Test Plan by DefaultThinkTimeCreator
#think_time_creator.default_timer_implementation=org.apache.jmeter.timers.gui.UniformRandomTimerGui
# Default constant pause of Timer
#think_time_creator.default_constant_pause=1000
# Default range pause of Timer
#think_time_creator.default_range=100
# Change this parameter if you want to override the APDEX satisfaction threshold.
jmeter.reportgenerator.apdex_satisfied_threshold=500
# Change this parameter if you want to override the APDEX tolerance threshold.
jmeter.reportgenerator.apdex_tolerated_threshold=1500
#---------------------------------------------------------------------------
# Naming Policy configuration
#---------------------------------------------------------------------------
# Prefix used when naming elements
#naming_policy.prefix=
# Suffix used when naming elements
#naming_policy.suffix=
# Implementation of interface org.apache.jmeter.gui.action.TreeNodeNamingPolicy
#naming_policy.impl=org.apache.jmeter.gui.action.impl.DefaultTreeNodeNamingPolicy
... ...
#! /bin/sh
## Licensed to the Apache Software Foundation (ASF) under one or more
## contributor license agreements. See the NOTICE file distributed with
## this work for additional information regarding copyright ownership.
## The ASF licenses this file to You under the Apache License, Version 2.0
## (the "License"); you may not use this file except in compliance with
## the License. You may obtain a copy of the License at
##
## http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in writing, software
## distributed under the License is distributed on an "AS IS" BASIS,
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
## See the License for the specific language governing permissions and
## limitations under the License.
## Basic JMeter startup script for Un*x systems
## See the "jmeter" script for details of options that can be used for Sun JVMs
## ==============================================
## Environment variables:
## JVM_ARGS - optional java args, e.g. -Dprop=val
##
## e.g.
## JVM_ARGS="-Xms512m -Xmx512m" jmeter.sh etc.
##
## ==============================================
# Minimal version to run JMeter
MINIMAL_VERSION=1.8.0
# Check if Java is present and the minimal version requirement
_java=`type java | awk '{ print $ NF }'`
CURRENT_VERSION=`"$_java" -version 2>&1 | awk -F'"' '/version/ {print $2}'`
minimal_version=`echo $MINIMAL_VERSION | awk -F'.' '{ print $2 }'`
current_version=`echo $CURRENT_VERSION | awk -F'.' '{ print $2 }'`
if [ $current_version ]; then
if [ $current_version -lt $minimal_version ]; then
echo "Error: Java version is too low to run JMeter. Needs at least Java >= ${MINIMAL_VERSION}."
exit 1
fi
else
echo "Not able to find Java executable or version. Please check your Java installation."
exit 1
fi
JMETER_OPTS=""
case `uname` in
Darwin*)
# Add Mac-specific property - should be ignored elsewhere (Bug 47064)
JMETER_OPTS="-Xdock:name=JMeter -Xdock:icon="`dirname $0`/../docs/images/jmeter_square.png" -Dapple.laf.useScreenMenuBar=true -Dapple.eawt.quitStrategy=CLOSE_ALL_WINDOWS"
;;
esac
# resolve links - $0 may be a softlink (code as used by Tomcat)
# N.B. readlink would be a lot simpler but is not supported on Solaris
PRG="$0"
while [ -h "$PRG" ]; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`/"$link"
fi
done
PRGDIR=`dirname "$PRG"`
java $JVM_ARGS $JMETER_OPTS -jar "$PRGDIR/ApacheJMeter.jar" "$@"
... ...
@echo off
rem Run JMeter using javaw
rem Licensed to the Apache Software Foundation (ASF) under one or more
rem contributor license agreements. See the NOTICE file distributed with
rem this work for additional information regarding copyright ownership.
rem The ASF licenses this file to You under the Apache License, Version 2.0
rem (the "License"); you may not use this file except in compliance with
rem the License. You may obtain a copy of the License at
rem
rem http://www.apache.org/licenses/LICENSE-2.0
rem
rem Unless required by applicable law or agreed to in writing, software
rem distributed under the License is distributed on an "AS IS" BASIS,
rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
rem See the License for the specific language governing permissions and
rem limitations under the License.
set JM_START=start
set JM_LAUNCH=javaw.exe
rem Only works in Win2K
call jmeter %*
set JM_START=
set JM_LAUNCH=
\ No newline at end of file
... ...
; Licensed to the Apache Software Foundation (ASF) under one or more
; contributor license agreements. See the NOTICE file distributed with
; this work for additional information regarding copyright ownership.
; The ASF licenses this file to You under the Apache License, Version 2.0
; (the "License"); you may not use this file except in compliance with
; the License. You may obtain a copy of the License at
;
; http://www.apache.org/licenses/LICENSE-2.0
;
; Unless required by applicable law or agreed to in writing, software
; distributed under the License is distributed on an "AS IS" BASIS,
; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
; See the License for the specific language governing permissions and
; limitations under the License.
; Sample file, you need to edit for your configuration
; see http://www.fnal.gov/docs/strongauth/krb5conf.html
; see http://web.mit.edu/kerberos/krb5-1.3/krb5-1.3.1/doc/krb5-admin.html
; see http://linux.die.net/man/5/krb5.conf
[libdefaults]
default_realm = EXAMPLE.COM
default_tkt_enctypes = aes256-cts-hmac-sha1-96,aes128-cts-hmac-sha1-96
default_tgs_enctypes = aes256-cts-hmac-sha1-96,aes128-cts-hmac-sha1-96
forwardable=true
[realms]
EXAMPLE.COM = {
kdc = kerberos.example.com:60088
}
[domain_realm]
example.com= EXAMPLE.COM
.example.com= EXAMPLE.COM
... ...
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<Configuration status="WARN" packages="org.apache.jmeter.gui.logging">
<Appenders>
<File name="jmeter-log" fileName="${sys:jmeter.logfile:-jmeter.log}" append="false">
<PatternLayout>
<pattern>%d %p %c{1.}: %m%n</pattern>
</PatternLayout>
</File>
<GuiLogEvent name="gui-log-event">
<PatternLayout>
<pattern>%d %p %c{1.}: %m%n</pattern>
</PatternLayout>
</GuiLogEvent>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="jmeter-log" />
<AppenderRef ref="gui-log-event" />
</Root>
<Logger name="org.apache.jmeter.junit" level="debug" />
<!--
<Logger name="org.apache.jmeter.control" level="debug" />
<Logger name="org.apache.jmeter.testbeans" level="debug" />
<Logger name="org.apache.jmeter.engine" level="debug" />
<Logger name="org.apache.jmeter.threads" level="debug" />
<Logger name="org.apache.jmeter.gui" level="warn" />
<Logger name="org.apache.jmeter.testelement" level="debug" />
<Logger name="org.apache.jmeter.util" level="warn" />
<Logger name="org.apache.jmeter.protocol.http" level="debug" />
-->
<!-- # For CookieManager, AuthManager etc: -->
<!--
<Logger name="org.apache.jmeter.protocol.http.control" level="debug" />
<Logger name="org.apache.jmeter.protocol.ftp" level="warn" />
<Logger name="org.apache.jmeter.protocol.jdbc" level="debug" />
<Logger name="org.apache.jmeter.protocol.java" level="warn" />
<Logger name="org.apache.jmeter.testelements.property" level="debug" />
-->
<Logger name="org.apache.jorphan" level="info" />
<!--
# Apache HttpClient logging examples
-->
<!-- # Enable header wire + context logging - Best for Debugging -->
<!--
<Logger name="org.apache.http" level="debug" />
<Logger name="org.apache.http.wire" level="error" />
-->
<!-- # Enable full wire + context logging -->
<!-- <Logger name="org.apache.http" level="debug" /> -->
<!-- # Enable context logging for connection management -->
<!-- <Logger name="org.apache.http.impl.conn" level="debug" /> -->
<!-- # Enable context logging for connection management / request execution -->
<!--
<Logger name="org.apache.http.impl.conn" level="debug" />
<Logger name="org.apache.http.impl.client" level="debug" />
<Logger name="org.apache.http.client" level="debug" />
-->
<!--
# Reporting logging configuration examples
-->
<!-- # If you want to debug reporting, uncomment this line -->
<!-- <Logger name="org.apache.jmeter.report" level="debug" /> -->
<!--
# More user specific logging configuration examples.
-->
<!-- <Logger name="org.apache.jorphan.reflect" level="debug" /> -->
<!--
# Warning: Enabling the next debug line causes javax.net.ssl.SSLException: Received fatal alert: unexpected_message
for certain sites when used with the default HTTP Sampler
-->
<!--
<Logger name="org.apache.jmeter.util.HttpSSLProtocolSocketFactory" level="debug" />
<Logger name="org.apache.jmeter.util.JsseSSLManager" level="debug" />
-->
<!--
# Enable Proxy request debug
-->
<!-- <Logger name="org.apache.jmeter.protocol.http.proxy.HttpRequestHdr" level="debug" /> -->
</Loggers>
</Configuration>
... ...
#!/bin/sh
exec $0.sh "$@"
## Licensed to the Apache Software Foundation (ASF) under one or more
## contributor license agreements. See the NOTICE file distributed with
## this work for additional information regarding copyright ownership.
## The ASF licenses this file to You under the Apache License, Version 2.0
## (the "License"); you may not use this file except in compliance with
## the License. You may obtain a copy of the License at
##
## http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in writing, software
## distributed under the License is distributed on an "AS IS" BASIS,
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
## See the License for the specific language governing permissions and
## limitations under the License.
... ...
@echo off
rem Licensed to the Apache Software Foundation (ASF) under one or more
rem contributor license agreements. See the NOTICE file distributed with
rem this work for additional information regarding copyright ownership.
rem The ASF licenses this file to You under the Apache License, Version 2.0
rem (the "License"); you may not use this file except in compliance with
rem the License. You may obtain a copy of the License at
rem
rem http://www.apache.org/licenses/LICENSE-2.0
rem
rem Unless required by applicable law or agreed to in writing, software
rem distributed under the License is distributed on an "AS IS" BASIS,
rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
rem See the License for the specific language governing permissions and
rem limitations under the License.
rem Run the JMeter mirror server in non-GUI mode
rem P1 = port to use (default 8080)
setlocal
rem On NT/2K grab all arguments at once
set JMETER_CMD_LINE_ARGS=%*
cd /D %~dp0
set CP=..\lib\ext\ApacheJMeter_http.jar;..\lib\ext\ApacheJMeter_core.jar;..\lib\jorphan.jar;..\lib\oro-2.0.8.jar
set CP=%CP%;..\lib\slf4j-api-1.7.25.jar;..\lib\jcl-over-slf4j-1.7.25.jar;..\lib\log4j-slf4j-impl-2.8.1.jar
set CP=%CP%;..\lib\log4j-api-2.8.1.jar;..\lib\log4j-core-2.8.1.jar;..\lib\log4j-1.2-api-2.8.1.jar
java -cp %CP% org.apache.jmeter.protocol.http.control.HttpMirrorServer %JMETER_CMD_LINE_ARGS%
pause
... ...
#!/bin/sh
## Licensed to the Apache Software Foundation (ASF) under one or more
## contributor license agreements. See the NOTICE file distributed with
## this work for additional information regarding copyright ownership.
## The ASF licenses this file to You under the Apache License, Version 2.0
## (the "License"); you may not use this file except in compliance with
## the License. You may obtain a copy of the License at
##
## http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in writing, software
## distributed under the License is distributed on an "AS IS" BASIS,
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
## See the License for the specific language governing permissions and
## limitations under the License.
# Run the JMeter mirror server in non-GUI mode
# P1 = port to use (default 8080)
cd `dirname $0`
CP=../lib/ext/ApacheJMeter_http.jar:../lib/ext/ApacheJMeter_core.jar:../lib/jorphan.jar:../lib/oro-2.0.8.jar
CP=${CP}:../lib/slf4j-api-1.7.25.jar:../lib/jcl-over-slf4j-1.7.25.jar:../lib/log4j-slf4j-impl-2.8.1.jar
CP=${CP}:../lib/log4j-api-2.8.1.jar:../lib/log4j-core-2.8.1.jar:../lib/log4j-1.2-api-2.8.1.jar
java -cp $CP org.apache.jmeter.protocol.http.control.HttpMirrorServer "$@"
... ...
Summary
-------
I - Default template directory content
II - Expected series format
---
I - Default template directory content :
----------------------------------------
/
- index.html.fmkr : templated file for index page (dashboard)
-/content
-/css
- dashboard.css : style sheet for tables in index page
- jquery-ui.css : version 1.11.4
- jquery-ui.structure.css : version 1.11.4
- jquery-ui.theme.css : version 1.11.4
- legends.css : style sheet for graph legends
- theme.blue.css : blue theme for tablesorter plugin
-/js
- curvedLines.js : version 1.1.1 , to change graph lines aspect
- dashboard.js.fmkr : template script file for index page
- dashboard-common.js : script file for shared functions
- graph.js.fmkr : templated script file for OverTime.html, ResponseTime.html and Throughput.html
- hashtable.js : version 3.0 A standalone implementation of hash table in JavaScript.
- jquery.cookie.js : 1.4.1
- jquery.flot.axislabels.js : version 2.0.1 , to display labels on graph axes
- jquery.numberformatter-1.2.3.min.js : 1.2.4 , to format timestamp in UI
- jquery.tablesorter.min.js : to allow column sorting in tables
- jquery-ui.js : version 1.11.4
-/pages
- OverTime.hmtl.fmkr : templated html page for over time graphs
- ResponseTimes.html.fmkr : templated html page for response time graphs
- Throughput.html.fmkr : templated html page for throughput graphs
---
II - Expected series format :
-----------------------------
responseTimePercentileGrapher.values
{
"Click Order" :{
"label": "Click Order",
"data": [[0, 4000], [ 3, 6000 ] , [ 4, 12055] , [8 , 14000], [ 10 , 15000] , [ 50, 16000] , [93, 20000] , [ 100 , 33000]] ,
"curvedLines": {"apply": true, "tension": 1},
"threshold" : { "below": 0, "color": "none" }
},
"CreationAccount" :{
"label": "CreationAccount",
"data": [[0, 5000], [ 3, 6500 ] , [ 4, 13555] , [8 , 15500], [ 10 , 16500] , [ 50, 18500] , [93, 22500] , [ 100 , 35500]] ,
"curvedLines": {"apply": true, "tension": 1},
"threshold" : { "below": 0, "color": "none" }
},
"Captcha" :{
"label": "Captcha",
"data": [[0, 3000], [ 3, 4000 ] , [ 4, 10055] , [8 , 12000], [ 10 , 13000] , [ 50, 14000] , [93, 18000] , [ 100 , 29000]] ,
"curvedLines": {"apply": true, "tension": 1},
"threshold" : { "below": 0, "color": "none" }
}
}
responseTimeDistributionGrapher.values
{
"AccountCreationProcess": {
"label": "AccountCreationProcess",
"data": [
[
0,
3
],
[
1000,
6
],
[
2000,
5
],
[
3000,
2
],
[
4000,
8
]
]
},
"CreerCompte ": {
"label": "CreerCompte ",
"data": [
[
0,
4
],
[
1000,
5
],
[
2000,
9
],
[
3000,
2
],
[
4000,
8
]
]
}
}
activeThreadsOverTimeGrapher.values
{
"AccountCreation-ip-10-33-183-4" : {
"label": "AccountCreation-ip-10-33-183-4",
"data": [ [ 720000, 0 ], [ 1440000, 200 ], [ 2160000, 900 ], [ 2880000, 900 ], [ 3600000, 900 ], [ 4320000, 900 ], [ 5040000, 900 ], [ 5760000, 900 ], [ 6480000, 900 ], [ 7200000, 0 ] ]
},
"AccountCreation-ip-10-72-129-224" : {
"label": "AccountCreation-ip-10-72-129-224",
"data": [ [ 720000, 8 ], [ 1440000, 3 ], [ 2160000, 6 ], [ 2880000, 5], [ 3600000, 6 ], [ 4320000,7 ], [ 5040000, 5], [ 5760000, 6 ], [ 6480000, 5 ], [ 7200000, 4 ] ]
},
"Order-ip-10-33-183-4" : {
"label": "Order-ip-10-33-183-4",
"data": [ [ 720000, 6 ], [ 1440000, 4 ], [ 2160000, 5 ], [ 2880000, 6 ], [ 3600000, 4 ], [ 4320000, 5 ], [ 5040000, 6 ], [ 5760000, 5 ], [ 6480000, 4 ], [ 7200000, 5 ] ]
}
}
responseTimePerSampleGrapher.values
var data = {
"Average time" : {
"label": "Average time", "data": [[1682.3, 0], [168.95, 1],[1703, 2],[1874, 3],[1945, 4], [385, 5], [1525, 6]]
},
"Median time" : {
"label": "Median time", "data": [[1582.3, 0], [128.95, 1],[1603, 2],[1774, 3],[1645, 4], [185, 5], [1225, 6]]
}
}
responseTimePerSampleGrapher.sampleNames
var ticks = [[0, "s0-0000-login"], [1, "s01-0100-FormulaireRechercheClients"], [2, "s01-0200-RechercheClients"], [3, "s01-0300-SelectionClient"], [4, "s01-0400-TraitementLocal"], [5, "s01-0500-AjouterPrestation"], [6, "s01-0600-AjouterAffutagePatin"]];
timeVsThreadsGrapher.values
{
"creerCompte " : {
"label": "creerCompte ",
"data": [ [ 604, 0 ], [ 604, 19000 ], [ 1530, 17400 ], [ 2500, 16146 ], [ 2900, 17000 ], [ 2900, 0 ] ],
"color": "red",
"points": {
"show": true
}
},
"Average creerCompte" : {
"label": "Average creerCompte",
"data": [ [ 2750, 16146 ] ],
"color": "red" ,
"points": {
"show": true,
"symbol": "triangle"
}
},
"captcha " : {
"label": "captcha ",
"data": [ [ 75, 0 ], [ 75, 11000 ], [ 150, 10000 ], [ 250, 8900 ], [ 280, 11500 ], [ 302, 11650 ], [ 330, 9300 ], [ 400, 12100 ], [ 550, 11550 ], [ 650, 12000 ], [ 750, 10000 ], [ 880, 13400 ], [ 1000, 11536 ], [ 1150, 10215 ], [ 1200, 12000 ], [ 1300, 11300 ], [ 1350, 8956 ], [ 1375, 9845 ], [ 1400, 10000 ], [ 1600, 11452 ], [ 1700, 11254 ], [ 1800, 12457 ], [ 2400, 9000 ], [ 2600,9500 ], [ 2750, 10000 ], [ 2850, 11478 ], [ 3024, 0 ] ],
"color": "green",
"points": {
"show": true
}
},
"Average captcha" : {
"label" : "Average captcha",
"data": [[ 2820, 10000]],
"color": "green",
"points": {
"show": true,
"symbol": "triangle"
}
}
}
bytesThroughputOverTimeGrapher.values
{
"Bytes received per second" : {
"label": "Bytes received per second",
"data": [ [ 355000, 0 ], [ 400000, 54000000 ], [ 400000, 74000000 ], [ 410000, 72000000 ], [ 420000, 70000000 ], [ 430000, 65000000 ], [ 445000, 54000000 ], [ 451000, 70000000 ], [ 460000, 71000000 ], [ 470000, 78000000 ], [ 490000, 69000000 ], [ 510000, 64000000 ], [ 530000, 62000000 ], [ 570000, 60000000 ], [ 580000, 55000000 ], [ 590000, 54000000 ], [ 620000, 58000000 ], [ 640000, 60000000 ], [ 660000, 62000000 ], [ 670000, 65000000 ], [ 680000, 66000000 ], [ 700000, 69000000 ], [ 710000, 71000000 ], [ 720000, 72000000 ], [ 740000, 65000000 ], [ 860000, 44000000 ], [ 900000, 72 ] ]
},
"Bytes sent per second" : {
"label": "Bytes sent per second",
"data": [ [ 355000, 10 ], [ 400000, 10 ], [ 400000, 10 ], [ 410000, 10 ], [ 420000, 10 ], [ 430000, 10 ], [ 445000, 10 ], [ 451000, 10 ], [ 460000, 10 ], [ 470000, 10 ], [ 490000, 10 ], [ 510000, 10 ], [ 530000, 10 ], [ 570000, 10 ], [ 580000, 10 ], [ 590000, 10 ], [ 620000, 10 ], [ 640000, 10 ], [ 660000, 10 ], [ 670000, 10 ], [ 680000, 10 ], [ 700000, 10 ], [ 710000, 10 ], [ 720000, 10 ], [ 740000, 10 ], [ 860000, 10 ], [ 900000, 72 ] ] }
}
responseTimeOverTimeGrapher.values
{
"Creer Compte":{
"label": "Creer Compte",
"data": [ [ 355000, 0 ], [ 400000, 3000 ], [ 400000, 17000 ], [ 470000, 16000 ], [ 500000, 15500 ], [ 600000, 16000 ], [ 650000, 14900 ], [ 700000, 17000 ], [ 800000, 14500 ], [ 800000, 2000 ], [ 900000, 0 ] ] },
"Captcha" : {
"label": "Captcha",
"data": [ [ 355000, 10 ], [ 400000, 10 ], [ 400000, 10 ], [ 410000, 10 ], [ 420000, 10 ], [ 430000, 10 ], [ 445000, 10 ], [ 451000, 10 ], [ 460000, 10 ], [ 470000, 10 ], [ 490000, 10 ], [ 510000, 10 ], [ 530000, 10 ], [ 570000, 10 ], [ 580000, 10 ], [ 590000, 10 ], [ 620000, 10 ], [ 640000, 10 ], [ 660000, 10 ], [ 670000, 10 ], [ 680000, 10 ], [ 700000, 10 ], [ 710000, 10 ], [ 720000, 10 ], [ 740000, 10 ], [ 860000, 10 ], [ 900000, 72 ] ] },
"AccountCreationProcess" : {
"label": "AccountCreationProcess",
"data": [ [ 355000, 10 ], [ 400000, 1000 ], [ 400000, 5000 ], [ 410000, 6000 ], [ 420000, 5693 ], [ 430000, 5263 ], [ 445000, 5742 ], [ 451000, 5461 ], [ 460000, 5869 ], [ 470000, 5436 ], [ 490000, 5032 ], [ 510000, 5821 ], [ 530000, 5463 ], [ 570000, 5789 ], [ 580000, 5321 ], [ 590000, 5456 ], [ 620000, 5864 ], [ 640000, 5412 ], [ 660000, 5369 ], [ 670000, 5693 ], [ 680000, 5465 ], [ 700000, 5555 ], [ 710000, 5444 ], [ 720000, 5333 ], [ 740000, 5999 ], [ 860000, 10 ], [ 900000, 0 ] ] }
}
latencyOverTimeGrapher.values
{
"Creer Compte " : {
"label": "Creer Compte ",
"data": [ [ 355000, 0 ], [ 400000, 200 ], [ 400000, 6300 ], [ 470000, 6200 ], [ 500000, 5800 ], [ 600000, 5850 ], [ 650000, 5750 ], [ 700000, 6400 ], [ 800000, 6800 ], [ 800000, 200 ], [ 900000, 0 ] ]
},
"Captcha " : {
"label": "Captcha ",
"data": [ [ 355000, 10 ], [ 400000, 10 ], [ 400000, 10 ], [ 410000, 10 ], [ 420000, 10 ], [ 430000, 10 ], [ 445000, 10 ], [ 451000, 10 ], [ 460000, 10 ], [ 470000, 10 ], [ 490000, 10 ], [ 510000, 10 ], [ 530000, 10 ], [ 570000, 10 ], [ 580000, 10 ], [ 590000, 10 ], [ 620000, 10 ], [ 640000, 10 ], [ 660000, 10 ], [ 670000, 10 ], [ 680000, 10 ], [ 700000, 10 ], [ 710000, 10 ], [ 720000, 10 ], [ 740000, 10 ], [ 860000, 10 ], [ 900000, 72 ] ]
},
"AccountCreationProcess " : {
"label": "AccountCreationProcess ",
"data": [ [ 355000, 10 ], [ 400000, 500 ], [ 400000, 2500 ], [ 410000,3000 ], [ 420000, 2880 ], [ 430000, 2880 ], [ 445000, 2786 ], [ 451000, 2750 ], [ 460000, 2950 ], [ 470000, 2786 ], [ 490000, 2516 ], [ 510000, 2460 ], [ 530000, 2730 ], [ 570000, 2890 ], [ 580000, 2700 ], [ 590000, 2994 ], [ 620000, 2892 ], [ 640000, 2745 ], [ 660000, 2658 ], [ 670000, 2846 ], [ 680000, 2745], [ 700000, 2800 ], [ 710000, 2750 ], [ 720000, 2650 ], [ 740000, 3000 ],[ 760000, 2680 ], [ 780000, 2680 ], [ 860000, 10 ], [ 900000, 0 ] ]
}
}
responseTimeVsRequestGrapher.values
{
"Successes " : {
"label": "Successes ",
"data": [ [ 33, 250 ], [ 75, 235 ], [ 115, 245 ], [ 125, 230 ], [ 150, 1000 ], [ 160, 179 ], [ 165, 200 ], [ 168, 163 ], [ 174, 169 ], [ 170, 180 ], [ 180, 167 ], [ 190, 160 ], [ 185, 162 ], [ 160, 177 ], [ 161, 173 ], [ 164, 171 ], [ 160, 180 ], [ 159, 177 ], [ 161, 176 ], [ 165, 173 ], [ 168, 170 ], [ 167, 169 ], [ 169, 169 ], [ 165, 170 ], [ 165, 168 ], [ 162, 170 ], [ 165, 170 ] ],
"color": "blue"
},
"Failures " : {
"label": "Failures ",
"data": [ [ 33, 3 ], [ 200, 235 ], [ 164, 245 ], [ 89, 230 ]],
"color": "red"
}
}
latencyVsRequestGrapher.values
{
"Successes" : {
"label": "Successes",
"data": [ [ 33, 250 ], [ 75, 235 ], [ 115, 245 ], [ 125, 230 ], [ 150, 1000 ], [ 160, 179 ], [ 165, 200 ], [ 168, 163 ], [ 174, 169 ], [ 170, 180 ], [ 180, 167 ], [ 190, 160 ], [ 185, 162 ], [ 160, 177 ], [ 161, 173 ], [ 164, 171 ], [ 160, 180 ], [ 159, 177 ], [ 161, 176 ], [ 165, 173 ], [ 168, 170 ], [ 167, 169 ], [ 169, 169 ], [ 165, 170 ], [ 165, 168 ], [ 162, 170 ], [ 165, 170 ] ],
"color": "blue"
},
"Failures" : {
"label": "Failures",
"data": [ [ 33, 3 ], [ 200, 235 ], [ 164, 245 ], [ 89, 230 ]],
"color": "red"
}
}
hitsPerSecondGrapher.values
{
"ServerHitsperSecond":{
"label": "ServerHitsperSecond",
"data": [ [ 510000, 0 ], [ 525000, 25 ], [ 540000, 38 ], [ 555000, 50 ], [ 570000, 100 ], [ 585000, 135 ], [ 600000, 140 ], [ 615000, 135 ], [ 630000, 132 ], [ 645000, 137 ], [ 660000, 133 ], [ 675000, 133 ], [ 690000, 136 ], [ 705000, 134 ], [ 720000, 130 ], [ 735000, 129 ], [ 750000, 134 ], [ 765000, 135 ], [ 780000, 134 ], [ 795000, 138 ], [ 810000, 139 ], [ 825000, 134 ], [ 840000, 130 ], [ 855000, 132 ], [ 870000, 134 ], [ 885000, 136 ], [ 900000, 10 ] ]
}
}
codesPerSecondGrapher.values
{
"200" : {
"label": "200",
"data": [ [ 510000, 0 ], [ 525000, 25 ], [ 540000, 38 ], [ 555000, 50 ], [ 570000, 100 ], [ 585000, 135 ], [ 600000, 140 ], [ 615000, 135 ], [ 630000, 132 ], [ 645000, 137 ], [ 660000, 133 ], [ 675000, 133 ], [ 690000, 136 ], [ 705000, 134 ], [ 720000, 130 ], [ 735000, 129 ], [ 750000, 134 ], [ 765000, 135 ], [ 780000, 134 ], [ 795000, 138 ], [ 810000, 139 ], [ 825000, 134 ], [ 840000, 130 ], [ 855000, 132 ], [ 870000, 134 ], [ 885000, 136 ], [ 900000, 10 ] ] },
"206" : {
"label": "206",
"data": [ [ 525000, 0 ], [ 525000, 5 ], [ 540000, 5 ], [ 555000, 4 ], [ 570000, 6 ], [ 585000, 5 ], [ 600000, 5 ], [ 615000, 4 ], [ 630000, 4 ], [ 645000, 6 ], [ 660000, 5 ], [ 675000, 6 ], [ 690000, 6 ], [ 705000, 5 ], [ 720000, 6 ], [ 735000, 4 ], [ 750000, 5 ], [ 765000, 6 ], [ 780000, 4 ], [ 795000, 5 ], [ 810000, 6 ], [ 825000, 5 ], [ 840000, 4 ], [ 855000, 6 ], [ 870000, 5 ], [ 885000, 5 ], [ 885000, 0 ] ] },
"Non HTTP response code" : {
"label": "Non HTTP response code",
"data": [ [ 750000, 0 ],[ 750000, 2 ] ]
}
}
transactionPerSecondGrapher.values
{
"creerCompte-failure": {
"label": "creerCompte-failure",
"data": [ [ 510000, 0 ], [ 525000, 15 ], [ 540000, 25 ], [ 555000, 28 ], [ 570000, 30 ], [ 585000, 35 ], [ 600000, 40 ], [ 615000, 35 ], [ 630000, 32 ], [ 645000, 37 ], [ 660000, 33 ], [ 675000, 33 ], [ 690000, 36 ], [ 705000, 34 ], [ 720000, 34 ], [ 735000, 33 ], [ 750000, 34 ], [ 765000, 35 ], [ 780000, 34 ], [ 795000, 38 ], [ 810000, 39 ], [ 825000, 34 ], [ 840000, 32 ], [ 855000,32 ], [ 870000, 34 ], [ 885000, 36 ], [ 900000, 10 ] ]
},
"creerCompte-success" : {
"label": "creerCompte-success",
"data": [ [ 500000, 0 ], [ 525000, 25 ], [ 540000, 25 ], [ 555000, 24 ], [ 570000, 26 ], [ 585000, 25 ], [ 600000, 25 ], [ 615000, 24 ], [ 630000, 24 ], [ 645000, 26 ], [ 660000, 25 ], [ 675000, 26 ], [ 690000, 26 ], [ 705000, 25 ], [ 720000, 26 ], [ 735000, 24 ], [ 750000, 25 ], [ 765000, 26 ], [ 780000, 24 ], [ 795000, 25 ], [ 810000, 26 ], [ 825000, 25 ], [ 840000, 24 ], [ 855000, 26 ], [ 870000, 25 ], [ 885000, 25 ], [ 900000, 0 ] ]
},
"captcha-success": {
"label": "captcha-success",
"data": [ [ 500000, 0 ], [ 525000, 15 ], [ 540000, 15 ], [ 555000, 14 ], [ 570000, 16 ], [ 585000, 15 ], [ 600000, 15 ], [ 615000, 14 ], [ 630000, 14 ], [ 645000, 16 ], [ 660000, 15 ], [ 675000, 16 ], [ 690000, 16 ], [ 705000, 15 ], [ 720000, 16 ], [ 735000, 14 ], [ 750000, 15 ], [ 765000, 16 ], [ 780000, 14 ], [ 795000, 15 ], [ 810000, 16 ], [ 825000, 15 ], [ 840000, 14 ], [ 855000, 16 ], [ 870000, 15 ], [ 885000, 15 ], [ 905000,0 ] ]
},
"AccountCreationProcess-failure": {
"label": "AccountCreationProcess-failure",
"data": [ [ 500000, 0 ], [ 525000, 35 ], [ 540000, 35 ], [ 555000, 34 ], [ 570000, 36 ], [ 585000, 35 ], [ 600000, 35 ], [ 615000, 34 ], [ 630000, 34 ], [ 645000, 36 ], [ 660000, 35 ], [ 675000, 36 ], [ 690000, 36 ], [ 705000, 35 ], [ 720000, 36 ], [ 735000, 34 ], [ 750000, 35 ], [ 765000, 36 ], [ 780000, 34 ], [ 795000, 35 ], [ 810000, 36 ], [ 825000, 35 ], [ 840000, 34 ], [ 855000, 36 ], [ 870000, 35 ], [ 885000, 35 ], [ 900000, 0 ] ]
},
"AccountCreationProcess-success": {
"label": "AccountCreationProcess-success",
"data": [ [ 500000, 0 ], [ 525000, 24 ], [ 540000, 23 ], [ 555000,26 ], [ 570000, 22 ], [ 585000, 23 ], [ 600000, 24 ], [ 615000, 21 ], [ 630000, 25], [ 645000, 22 ], [ 660000, 24 ], [ 675000, 23 ], [ 690000, 25 ], [ 705000, 23 ], [ 720000, 24 ], [ 735000, 23 ], [ 750000,22 ], [ 765000, 26 ], [ 780000, 24 ], [ 795000, 24 ], [ 810000, 22 ], [ 825000, 27 ], [ 840000, 22 ], [ 855000, 23 ], [ 870000, 24 ], [ 885000, 26 ], [ 905000, 0 ] ]
}
}
... ...
/*
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
#stats td, th
{
width: 9%;//140px;
height: 30px;
}
#stats td
{
text-align: center;
}
#stats th
{
font-weight:bold;
}
.blue
{
background-color: #dff0d8;
}
#errors td, th
{
text-align: center;
width: 400px;
height: 30px;
}
#errors td
{
}
#errors th
{
font-weight:bold;
}
... ...