├── .gitignore
├── LICENSE
├── README.md
├── assembly
└── assembly.xml
├── jmeter
└── bin
│ ├── jmeter.properties
│ └── saveservice.properties
├── pom.xml
└── src
└── main
├── java
└── com
│ └── loadium
│ └── postman2jmx
│ ├── app
│ └── Postman2Jmx.java
│ ├── builder
│ ├── AbstractJmxBodyBuilder.java
│ ├── AbstractJmxFileBuilder.java
│ ├── IJmxBodyBuilder.java
│ ├── IJmxFileBuilder.java
│ ├── JmxBinaryBodyBuilder.java
│ ├── JmxBodyBuilderFactory.java
│ ├── JmxEmptyBodyBuilder.java
│ ├── JmxFileBuilder.java
│ ├── JmxFormDataBodyBuilder.java
│ ├── JmxRawBodyBuilder.java
│ └── JmxUrlEncodedBodyBuilder.java
│ ├── config
│ ├── Postman2JmxConfig.java
│ └── jmeter
│ │ └── bin
│ │ ├── jmeter.properties
│ │ └── saveservice.properties
│ ├── exception
│ ├── InvalidArgumentsException.java
│ ├── NoPostmanCollectionItemException.java
│ ├── NullPostmanCollectionException.java
│ └── UnsupportedJmxFileBuilderException.java
│ ├── model
│ ├── deserializer
│ │ └── ExecDeserializer.java
│ ├── jmx
│ │ ├── JmxCookieManager.java
│ │ ├── JmxFile.java
│ │ ├── JmxHTTPSamplerProxy.java
│ │ ├── JmxHeaderManager.java
│ │ ├── JmxJsonPostProcessor.java
│ │ ├── JmxLoopController.java
│ │ ├── JmxTestPlan.java
│ │ └── JmxThreadGroup.java
│ └── postman
│ │ ├── PostmanBody.java
│ │ ├── PostmanCollection.java
│ │ ├── PostmanEvent.java
│ │ ├── PostmanFileBody.java
│ │ ├── PostmanFormDataBody.java
│ │ ├── PostmanHeader.java
│ │ ├── PostmanInfo.java
│ │ ├── PostmanItem.java
│ │ ├── PostmanQuery.java
│ │ ├── PostmanRawBody.java
│ │ ├── PostmanRequest.java
│ │ ├── PostmanScript.java
│ │ ├── PostmanUrl.java
│ │ └── PostmanUrlEncodedBody.java
│ ├── parser
│ ├── AbstractParser.java
│ ├── IParser.java
│ ├── ParserFactory.java
│ └── PostmanParserV2.java
│ └── utils
│ ├── CollectionVersion.java
│ ├── JmxFileAttributesType.java
│ ├── PostmanCollectionUtils.java
│ ├── ResponseBodyMode.java
│ ├── TypeUtils.java
│ ├── UrlUtils.java
│ └── ValueUtils.java
└── resources
├── jmeter
└── bin
│ ├── jmeter.properties
│ └── saveservice.properties
├── jmxFileTemplate.jmx
└── log4j2.properties
/.gitignore:
--------------------------------------------------------------------------------
1 | # Compiled class file
2 | *.class
3 |
4 | # Log file
5 | *.log
6 |
7 | # BlueJ files
8 | *.ctxt
9 |
10 | # Mobile Tools for Java (J2ME)
11 | .mtj.tmp/
12 |
13 | # Package Files #
14 | *.jar
15 | *.war
16 | *.nar
17 | *.ear
18 | *.zip
19 | *.tar.gz
20 | *.rar
21 |
22 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
23 | hs_err_pid*
24 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 Loadium
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # postman2jmx
2 | Postman collection to Jmeter jmx file converter.
3 |
4 | ### Note
5 |
6 | - postman2jmx converter only converts the Postman V2+ exported files!
7 | - feel free to send any pull requests.
8 |
9 | ### Installation
10 |
11 | postman2jmx requires Java8+ and Maven 3+.
12 |
13 | - Clone or download the project.
14 | ```sh
15 | $ git clone https://github.com/Loadium/postman2jmx.git
16 | ```
17 | - Build the project.
18 | ```sh
19 | $ cd postman2jmx
20 | $ mvn package
21 | ```
22 |
23 | ### Usage
24 |
25 | - After build, go to the Postman2Jmx folder. It is located under the target folder.
26 | ```sh
27 | $ cd target/Postman2Jmx
28 | ```
29 | - Then execute the following command to convert your postman json collection file to the jmx file.
30 | ```sh
31 | $ java -jar Postman2Jmx.jar my_postman_collection.json my_jmx_file.jmx
32 | ```
33 |
34 | License
35 | ----
36 |
37 | The MIT License (MIT)
38 |
--------------------------------------------------------------------------------
/assembly/assembly.xml:
--------------------------------------------------------------------------------
1 |
5 | make-assembly
6 |
7 | zip
8 |
9 | false
10 |
11 |
12 | ${project.basedir}/jmeter
13 | /jmeter
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/jmeter/bin/jmeter.properties:
--------------------------------------------------------------------------------
1 | ################################################################################
2 | # Apache JMeter Property file
3 | ################################################################################
4 |
5 | ## Licensed to the Apache Software Foundation (ASF) under one or more
6 | ## contributor license agreements. See the NOTICE file distributed with
7 | ## this work for additional information regarding copyright ownership.
8 | ## The ASF licenses this file to You under the Apache License, Version 2.0
9 | ## (the "License"); you may not use this file except in compliance with
10 | ## the License. You may obtain a copy of the License at
11 | ##
12 | ## http://www.apache.org/licenses/LICENSE-2.0
13 | ##
14 | ## Unless required by applicable law or agreed to in writing, software
15 | ## distributed under the License is distributed on an "AS IS" BASIS,
16 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 | ## See the License for the specific language governing permissions and
18 | ## limitations under the License.
19 |
20 | ################################################################################
21 | #
22 | # THIS FILE SHOULD NOT BE MODIFIED
23 | #
24 | # This avoids having to re-apply the modifications when upgrading JMeter
25 | # Instead only user.properties should be modified:
26 | # 1/ copy the property you want to modify to user.properties from jmeter.properties
27 | # 2/ Change its value there
28 | #
29 | ################################################################################
30 |
31 | # JMeter properties are described in the file
32 | # http://jmeter.apache.org/usermanual/properties_reference.html
33 | # A local copy can be found in
34 | # printable_docs/usermanual/properties_reference.html
35 |
36 | #Preferred GUI language. Comment out to use the JVM default locale's language.
37 | #language=en
38 |
39 |
40 | # Additional locale(s) to add to the displayed list.
41 | # The current default list is: en, fr, de, no, es, tr, ja, zh_CN, zh_TW, pl, pt_BR
42 | # [see JMeterMenuBar#makeLanguageMenu()]
43 | # The entries are a comma-separated list of language names
44 | #locales.add=zu
45 |
46 |
47 | #---------------------------------------------------------------------------
48 | # XML Parser
49 | #---------------------------------------------------------------------------
50 |
51 | # Path to a Properties file containing Namespace mapping in the form
52 | # prefix=Namespace
53 | # Example:
54 | # ns=http://biz.aol.com/schema/2006-12-18
55 | #xpath.namespace.config=
56 |
57 | #---------------------------------------------------------------------------
58 | # SSL configuration
59 | #---------------------------------------------------------------------------
60 |
61 | ## SSL System properties are now in system.properties
62 |
63 | # JMeter no longer converts javax.xxx property entries in this file into System properties.
64 | # These must now be defined in the system.properties file or on the command-line.
65 | # The system.properties file gives more flexibility.
66 |
67 | # By default, SSL session contexts are now created per-thread, rather than being shared.
68 | # The original behaviour can be enabled by setting the JMeter property to true
69 | #https.sessioncontext.shared=false
70 |
71 | # Be aware that https default protocol may vary depending on the version of JVM
72 | # See https://blogs.oracle.com/java-platform-group/entry/diagnosing_tls_ssl_and_https
73 | # See https://bz.apache.org/bugzilla/show_bug.cgi?id=58236
74 | # Default HTTPS protocol level:
75 | #https.default.protocol=TLS
76 | # This may need to be changed here (or in user.properties) to:
77 | #https.default.protocol=SSLv3
78 |
79 | # List of protocols to enable. You may have to select only a subset if you find issues with target server.
80 | # This is needed when server does not support Socket version negotiation, this can lead to:
81 | # javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
82 | # java.net.SocketException: Connection reset
83 | # see https://bz.apache.org/bugzilla/show_bug.cgi?id=54759
84 | #https.socket.protocols=SSLv2Hello SSLv3 TLSv1
85 |
86 | # Control if we allow reuse of cached SSL context between iterations
87 | # set the value to 'false' to reset the SSL context each iteration
88 | #https.use.cached.ssl.context=true
89 |
90 | # Start and end index to be used with keystores with many entries
91 | # The default is to use entry 0, i.e. the first
92 | #https.keyStoreStartIndex=0
93 | #https.keyStoreEndIndex=0
94 |
95 | #---------------------------------------------------------------------------
96 | # Look and Feel configuration
97 | #---------------------------------------------------------------------------
98 |
99 | #Classname of the Swing default UI
100 | #
101 | # The LAF classnames that are available are now displayed as ToolTip text
102 | # when hovering over the Options/Look and Feel selection list.
103 | #
104 | # You can either use a full class name, as shown below,
105 | # or one of the strings "System" or "CrossPlatform" which means
106 | # JMeter will use the corresponding string returned by UIManager.getLookAndFeelClassName()
107 |
108 | # LAF can be overridden by os.name (lowercased, spaces replaced by '_')
109 | # Sample os.name LAF:
110 | #jmeter.laf.windows_xp=javax.swing.plaf.metal.MetalLookAndFeel
111 |
112 | # Failing that, the OS family = os.name, but only up to first space:
113 | # Sample OS family LAF:
114 | #jmeter.laf.windows=com.sun.java.swing.plaf.windows.WindowsLookAndFeel
115 |
116 | # Custom settings for Mac using System LAF if you don't want to use Darcula
117 | #jmeter.laf.mac=System
118 |
119 | # Failing that, the JMeter default laf can be defined:
120 | #jmeter.laf=System
121 |
122 | # If none of the above jmeter.laf properties are defined, JMeter uses the CrossPlatform LAF.
123 | # This is because the CrossPlatform LAF generally looks better than the System LAF.
124 | # See https://bz.apache.org/bugzilla/show_bug.cgi?id=52026 for details
125 | # N.B. the laf can be defined in user.properties.
126 |
127 | # LoggerPanel display
128 | # default to false
129 | #jmeter.loggerpanel.display=false
130 |
131 | # Enable LogViewer Panel to receive log event even if closed
132 | # Enabled since 2.12
133 | # Note this has some impact on performances, but as GUI mode must
134 | # not be used for Load Test it is acceptable
135 | #jmeter.loggerpanel.enable_when_closed=true
136 |
137 | # Max lines kept in LoggerPanel, default to 1000 chars
138 | # 0 means no limit
139 | #jmeter.loggerpanel.maxlength=1000
140 |
141 | # Interval period in ms to process the queue of events of the listeners
142 | #jmeter.gui.refresh_period=500
143 |
144 | # HiDPI mode (default: false)
145 | # Activate a 'pseudo'-hidpi mode. Allows to increase size of some UI elements
146 | # which are not correctly managed by JVM with high resolution screens in Linux or Windows
147 | #jmeter.hidpi.mode=false
148 | # To enable pseudo-hidpi mode change to true
149 | #jmeter.hidpi.mode=true
150 | # HiDPI scale factor
151 | #jmeter.hidpi.scale.factor=1.0
152 | # Suggested value for HiDPI
153 | #jmeter.hidpi.scale.factor=2.0
154 |
155 | # Toolbar display
156 | # Toolbar icon definitions
157 | #jmeter.toolbar.icons=org/apache/jmeter/images/toolbar/icons-toolbar.properties
158 | # Toolbar list
159 | #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
160 | # Toolbar icons default size: 22x22. Available sizes are: 22x22, 32x32, 48x48
161 | #jmeter.toolbar.icons.size=22x22
162 | # Suggested value for HiDPI
163 | #jmeter.toolbar.icons.size=48x48
164 |
165 | # Icon definitions
166 | # default:
167 | #jmeter.icons=org/apache/jmeter/images/icon.properties
168 | # alternate:
169 | #jmeter.icons=org/apache/jmeter/images/icon_1.properties
170 | # Historical icon set (deprecated)
171 | #jmeter.icons=org/apache/jmeter/images/icon_old.properties
172 |
173 | # Tree icons default size: 19x19. Available sizes are: 19x19, 24x24, 32x32, 48x48
174 | # Useful for HiDPI display (see below)
175 | #jmeter.tree.icons.size=19x19
176 | # Suggested value for HiDPI screen like 3200x1800:
177 | #jmeter.tree.icons.size=32x32
178 |
179 | #Components to not display in JMeter GUI (GUI class name or static label)
180 | # These elements are deprecated and will be removed in next version:
181 | # MongoDB Script, MongoDB Source Config, Monitor Results
182 | # BSF Elements
183 | not_in_menu=org.apache.jmeter.protocol.mongodb.sampler.MongoScriptSampler,org.apache.jmeter.protocol.mongodb.config.MongoSourceElement,\
184 | org.apache.jmeter.timers.BSFTimer,org.apache.jmeter.modifiers.BSFPreProcessor,org.apache.jmeter.extractor.BSFPostProcessor,org.apache.jmeter.assertions.BSFAssertion,\
185 | org.apache.jmeter.visualizers.BSFListener,org.apache.jmeter.protocol.java.sampler.BSFSampler,\
186 | org.apache.jmeter.protocol.http.control.gui.SoapSamplerGui
187 |
188 | # Number of items in undo history
189 | # Feature is disabled by default (0) due to known and not fixed bugs:
190 | # https://bz.apache.org/bugzilla/show_bug.cgi?id=57043
191 | # https://bz.apache.org/bugzilla/show_bug.cgi?id=57039
192 | # https://bz.apache.org/bugzilla/show_bug.cgi?id=57040
193 | # Set it to a number > 0 (25 can be a good default)
194 | # The bigger it is, the more it consumes memory
195 | #undo.history.size=0
196 |
197 | # Hotkeys to add JMeter components, will add elements when you press Ctrl+0 .. Ctrl+9 (Command+0 .. Command+9 on Mac)
198 | gui.quick_0=ThreadGroupGui
199 | gui.quick_1=HttpTestSampleGui
200 | gui.quick_2=RegexExtractorGui
201 | gui.quick_3=AssertionGui
202 | gui.quick_4=ConstantTimerGui
203 | gui.quick_5=TestActionGui
204 | gui.quick_6=JSR223PostProcessor
205 | gui.quick_7=JSR223PreProcessor
206 | gui.quick_8=DebugSampler
207 | gui.quick_9=ViewResultsFullVisualizer
208 |
209 |
210 | #---------------------------------------------------------------------------
211 | # JMX Backup configuration
212 | #---------------------------------------------------------------------------
213 | #Enable auto backups of the .jmx file when a test plan is saved.
214 | #When enabled, before the .jmx is saved, it will be backed up to the directory pointed
215 | #by the jmeter.gui.action.save.backup_directory property (see below). Backup file names are built
216 | #after the jmx file being saved. For example, saving test-plan.jmx will create a test-plan-000012.jmx
217 | #in the backup directory provided that the last created backup file is test-plan-000011.jmx.
218 | #Default value is true indicating that auto backups are enabled
219 | #jmeter.gui.action.save.backup_on_save=true
220 |
221 | #Set the backup directory path where JMX backups will be created upon save in the GUI.
222 | #If not set (what it defaults to) then backup files will be created in
223 | #a sub-directory of the JMeter base installation. The default directory is ${JMETER_HOME}/backups
224 | #If set and the directory does not exist, it will be created.
225 | #jmeter.gui.action.save.backup_directory=
226 |
227 | #Set the maximum time (in hours) that backup files should be preserved since the save time.
228 | #By default no expiration time is set which means we keep backups for ever.
229 | #jmeter.gui.action.save.keep_backup_max_hours=0
230 |
231 | #Set the maximum number of backup files that should be preserved. By default 10 backups will be preserved.
232 | #Setting this to zero will cause the backups to not being deleted (unless keep_backup_max_hours is set to a non zero value)
233 | #jmeter.gui.action.save.keep_backup_max_count=10
234 |
235 | #Enable auto saving of the .jmx file before start run a test plan
236 | #When enabled, before the run, the .jmx will be saved and also backed up to the directory pointed
237 | #save_automatically_before_run=true
238 |
239 | #---------------------------------------------------------------------------
240 | # Remote hosts and RMI configuration
241 | #---------------------------------------------------------------------------
242 |
243 | # Remote Hosts - comma delimited
244 | remote_hosts=127.0.0.1
245 | #remote_hosts=localhost:1099,localhost:2010
246 |
247 | # RMI port to be used by the server (must start rmiregistry with same port)
248 | #server_port=1099
249 |
250 | # To change the port to (say) 1234:
251 | # On the server(s)
252 | # - set server_port=1234
253 | # - start rmiregistry with port 1234
254 | # On Windows this can be done by:
255 | # SET SERVER_PORT=1234
256 | # JMETER-SERVER
257 | #
258 | # On Unix:
259 | # SERVER_PORT=1234 jmeter-server
260 | #
261 | # On the client:
262 | # - set remote_hosts=server:1234
263 |
264 | # Parameter that controls the RMI port used by RemoteSampleListenerImpl (The Controller)
265 | # Default value is 0 which means port is randomly assigned
266 | # You may need to open Firewall port on the Controller machine
267 | #client.rmi.localport=0
268 |
269 | # When distributed test is starting, there may be several attempts to initialize
270 | # remote engines. By default, only single try is made. Increase following property
271 | # to make it retry for additional times
272 | #client.tries=1
273 |
274 | # If there is initialization retries, following property sets delay between attempts
275 | #client.retries_delay=5000
276 |
277 | # When all initialization tries was made, test will fail if some remote engines are failed
278 | # Set following property to true to ignore failed nodes and proceed with test
279 | #client.continue_on_fail=false
280 |
281 | # To change the default port (1099) used to access the server:
282 | #server.rmi.port=1234
283 |
284 | # To use a specific port for the JMeter server engine, define
285 | # the following property before starting the server:
286 | #server.rmi.localport=4000
287 |
288 | # The jmeter server creates by default the RMI registry as part of the server process.
289 | # To stop the server creating the RMI registry:
290 | #server.rmi.create=false
291 |
292 | # Define the following property to cause JMeter to exit after the first test
293 | #server.exitaftertest=true
294 |
295 | #
296 | # Configuration of Secure RMI connection
297 | #
298 | # Type of keystore : JKS
299 | #server.rmi.ssl.keystore.type=JKS
300 | #
301 | # Keystore file that contains private key
302 | #server.rmi.ssl.keystore.file=rmi_keystore.jks
303 | #
304 | # Password of Keystore
305 | #server.rmi.ssl.keystore.password=changeit
306 | #
307 | # Key alias
308 | #server.rmi.ssl.keystore.alias=rmi
309 | #
310 | # Type of truststore : JKS
311 | #server.rmi.ssl.truststore.type=JKS
312 | #
313 | # Keystore file that contains certificate
314 | #server.rmi.ssl.truststore.file=rmi_keystore.jks
315 | #
316 | # Password of Trust store
317 | #server.rmi.ssl.truststore.password=changeit
318 | #
319 | # Set this if you don't want to use SSL for RMI
320 | #server.rmi.ssl.disable=false
321 | #---------------------------------------------------------------------------
322 | # Include Controller
323 | #---------------------------------------------------------------------------
324 |
325 | # Prefix used by IncludeController when building file name
326 | #includecontroller.prefix=
327 |
328 | #---------------------------------------------------------------------------
329 | # HTTP Java configuration
330 | #---------------------------------------------------------------------------
331 |
332 | # Number of connection retries performed by HTTP Java sampler before giving up
333 | # 0 means no retry since version 3.0
334 | #http.java.sampler.retries=0
335 |
336 | #---------------------------------------------------------------------------
337 | # Following properties apply to Apache HttpClient
338 | #---------------------------------------------------------------------------
339 |
340 | # set the socket timeout (or use the parameter http.socket.timeout)
341 | # for AJP Sampler implementation.
342 | # Value is in milliseconds
343 | #httpclient.timeout=0
344 | # 0 == no timeout
345 |
346 | # Set the http version (defaults to 1.1)
347 | #httpclient.version=1.1 (or use the parameter http.protocol.version)
348 |
349 | # Define characters per second > 0 to emulate slow connections
350 | #httpclient.socket.http.cps=0
351 | #httpclient.socket.https.cps=0
352 |
353 | #Enable loopback protocol
354 | #httpclient.loopback=true
355 |
356 | # Define the local host address to be used for multi-homed hosts
357 | #httpclient.localaddress=1.2.3.4
358 |
359 | #---------------------------------------------------------------------------
360 | # AuthManager Kerberos configuration
361 | #---------------------------------------------------------------------------
362 |
363 | # AuthManager Kerberos configuration
364 | # Name of application module used in jaas.conf
365 | #kerberos_jaas_application=JMeter
366 |
367 | # Should ports be stripped from urls before constructing SPNs
368 | # for SPNEGO authentication
369 | #kerberos.spnego.strip_port=true
370 |
371 | #---------------------------------------------------------------------------
372 | # Apache HttpComponents HTTPClient configuration (HTTPClient4)
373 | #---------------------------------------------------------------------------
374 |
375 | # define a properties file for overriding Apache HttpClient parameters
376 | # Uncomment this line if you put anything in hc.parameters file
377 | #hc.parameters.file=hc.parameters
378 |
379 | # Preemptively send Authorization Header when BASIC auth is used
380 | #httpclient4.auth.preemptive=true
381 |
382 | # Number of retries to attempt (default 0)
383 | #httpclient4.retrycount=0
384 |
385 | # true if it's OK to retry requests that have been sent
386 | # This will retry Idempotent and non Idempotent requests
387 | # This should usually be false, but it can be useful
388 | # when testing against some Load Balancers like Amazon ELB
389 | #httpclient4.request_sent_retry_enabled=false
390 |
391 | # Idle connection timeout (Milliseconds) to apply if the server does not send
392 | # Keep-Alive headers (default 0)
393 | # Set this > 0 to compensate for servers that don't send a Keep-Alive header
394 | # If <= 0, idle timeout will only apply if the server sends a Keep-Alive header
395 | #httpclient4.idletimeout=0
396 |
397 | # Check connections if the elapsed time (Milliseconds) since the last
398 | # use of the connection exceed this value
399 | #httpclient4.validate_after_inactivity=1700
400 |
401 | # TTL (in Milliseconds) represents an absolute value.
402 | # No matter what, the connection will not be re-used beyond its TTL.
403 | #httpclient4.time_to_live=2000
404 |
405 | # Max size in bytes of PUT body to retain in result sampler.
406 | # Bigger results will be clipped.
407 | #httpclient4.max_body_retain_size=32768
408 |
409 | #---------------------------------------------------------------------------
410 | # HTTP Cache Manager configuration
411 | #---------------------------------------------------------------------------
412 | #
413 | # Space or comma separated list of methods that can be cached
414 | #cacheable_methods=GET
415 | # N.B. This property is currently a temporary solution for Bug 56162
416 |
417 | # Since 2.12, JMeter does not create anymore a Sample Result with 204 response
418 | # code for a resource found in cache which is inline with what browser do.
419 | #cache_manager.cached_resource_mode=RETURN_NO_SAMPLE
420 |
421 | # You can choose between 3 modes:
422 | # RETURN_NO_SAMPLE (default)
423 | # RETURN_200_CACHE
424 | # RETURN_CUSTOM_STATUS
425 |
426 | # Those mode have the following behaviours:
427 | # RETURN_NO_SAMPLE:
428 | # this mode returns no Sample Result, it has no additional configuration
429 |
430 | # RETURN_200_CACHE:
431 | # this mode will return Sample Result with response code to 200 and
432 | # response message to "(ex cache)", you can modify response message by setting
433 | # RETURN_200_CACHE.message=(ex cache)
434 |
435 | # RETURN_CUSTOM_STATUS:
436 | # This mode lets you select what response code and message you want to return,
437 | # if you use this mode you need to set those properties
438 | # RETURN_CUSTOM_STATUS.code=
439 | # RETURN_CUSTOM_STATUS.message=
440 |
441 | #---------------------------------------------------------------------------
442 | # Results file configuration
443 | #---------------------------------------------------------------------------
444 |
445 | # This section helps determine how result data will be saved.
446 | # The commented out values are the defaults.
447 |
448 | # legitimate values: xml, csv, db. Only xml and csv are currently supported.
449 | #jmeter.save.saveservice.output_format=csv
450 |
451 | # The below properties are true when field should be saved; false otherwise
452 | #
453 | # assertion_results_failure_message only affects CSV output
454 | #jmeter.save.saveservice.assertion_results_failure_message=true
455 | #
456 | # legitimate values: none, first, all
457 | #jmeter.save.saveservice.assertion_results=none
458 | #
459 | #jmeter.save.saveservice.data_type=true
460 | #jmeter.save.saveservice.label=true
461 | #jmeter.save.saveservice.response_code=true
462 | # response_data is not currently supported for CSV output
463 | #jmeter.save.saveservice.response_data=false
464 | # Save ResponseData for failed samples
465 | #jmeter.save.saveservice.response_data.on_error=false
466 | #jmeter.save.saveservice.response_message=true
467 | #jmeter.save.saveservice.successful=true
468 | #jmeter.save.saveservice.thread_name=true
469 | #jmeter.save.saveservice.time=true
470 | #jmeter.save.saveservice.subresults=true
471 | #jmeter.save.saveservice.assertions=true
472 | #jmeter.save.saveservice.latency=true
473 | # Only available with HttpClient4
474 | #jmeter.save.saveservice.connect_time=true
475 | #jmeter.save.saveservice.samplerData=false
476 | #jmeter.save.saveservice.responseHeaders=false
477 | #jmeter.save.saveservice.requestHeaders=false
478 | #jmeter.save.saveservice.encoding=false
479 | #jmeter.save.saveservice.bytes=true
480 | # Only available with HttpClient4
481 | #jmeter.save.saveservice.sent_bytes=true
482 | #jmeter.save.saveservice.url=false
483 | #jmeter.save.saveservice.filename=false
484 | #jmeter.save.saveservice.hostname=false
485 | #jmeter.save.saveservice.thread_counts=true
486 | #jmeter.save.saveservice.sample_count=false
487 | #jmeter.save.saveservice.idle_time=true
488 |
489 | # Timestamp format - this only affects CSV output files
490 | # legitimate values: none, ms, or a format suitable for SimpleDateFormat
491 | #jmeter.save.saveservice.timestamp_format=ms
492 | #jmeter.save.saveservice.timestamp_format=yyyy/MM/dd HH:mm:ss.SSS
493 |
494 | # For use with Comma-separated value (CSV) files or other formats
495 | # where the fields' values are separated by specified delimiters.
496 | # Default:
497 | #jmeter.save.saveservice.default_delimiter=,
498 | # For TAB, one can use:
499 | #jmeter.save.saveservice.default_delimiter=\t
500 |
501 | # Only applies to CSV format files:
502 | # Print field names as first line in CSV
503 | #jmeter.save.saveservice.print_field_names=true
504 |
505 | # Optional list of JMeter variable names whose values are to be saved in the result data files.
506 | # Use commas to separate the names. For example:
507 | #sample_variables=SESSION_ID,REFERENCE
508 | # N.B. The current implementation saves the values in XML as attributes,
509 | # so the names must be valid XML names.
510 | # By default JMeter sends the variable to all servers
511 | # to ensure that the correct data is available at the client.
512 |
513 | # Optional xml processing instruction for line 2 of the file:
514 | # Example:
515 | #jmeter.save.saveservice.xml_pi=
516 | # Default value:
517 | #jmeter.save.saveservice.xml_pi=
518 |
519 | # Prefix used to identify filenames that are relative to the current base
520 | #jmeter.save.saveservice.base_prefix=~/
521 |
522 | # AutoFlush on each line written in XML or CSV output
523 | # Setting this to true will result in less test results data loss in case of Crash
524 | # but with impact on performances, particularly for intensive tests (low or no pauses)
525 | # Since JMeter 2.10, this is false by default
526 | #jmeter.save.saveservice.autoflush=false
527 |
528 | #---------------------------------------------------------------------------
529 | # Settings that affect SampleResults
530 | #---------------------------------------------------------------------------
531 |
532 | # Save the start time stamp instead of the end
533 | # This also affects the timestamp stored in result files
534 | sampleresult.timestamp.start=true
535 |
536 | # Whether to use System.nanoTime() - otherwise only use System.currentTimeMillis()
537 | #sampleresult.useNanoTime=true
538 |
539 | # Use a background thread to calculate the nanoTime offset
540 | # Set this to <= 0 to disable the background thread
541 | #sampleresult.nanoThreadSleep=5000
542 |
543 | #---------------------------------------------------------------------------
544 | # Upgrade property
545 | #---------------------------------------------------------------------------
546 |
547 | # File that holds a record of name changes for backward compatibility issues
548 | upgrade_properties=/bin/upgrade.properties
549 |
550 | #---------------------------------------------------------------------------
551 | # JMeter Test Script recorder configuration
552 | #
553 | # N.B. The element was originally called the Proxy recorder, which is why the
554 | # properties have the prefix "proxy".
555 | #---------------------------------------------------------------------------
556 |
557 | # If the recorder detects a gap of at least 5s (default) between HTTP requests,
558 | # it assumes that the user has clicked a new URL
559 | #proxy.pause=5000
560 |
561 | # Add numeric prefix to Sampler names (default true)
562 | #proxy.number.requests=true
563 |
564 | # List of URL patterns that will be added to URL Patterns to exclude
565 | # Separate multiple lines with ;
566 | #proxy.excludes.suggested=.*\\.(bmp|css|js|gif|ico|jpe?g|png|swf|woff|woff2)
567 |
568 | # Change the default HTTP Sampler (currently HttpClient4)
569 | # Java:
570 | #jmeter.httpsampler=HTTPSampler
571 | #or
572 | #jmeter.httpsampler=Java
573 | #
574 | # HttpClient4.x
575 | #jmeter.httpsampler=HttpClient4
576 |
577 | # By default JMeter tries to be more lenient with RFC2616 redirects and allows
578 | # relative paths.
579 | # If you want to test strict conformance, set this value to true
580 | # When the property is true, JMeter follows http://tools.ietf.org/html/rfc3986#section-5.2
581 | #jmeter.httpclient.strict_rfc2616=false
582 |
583 | # Default content-type include filter to use
584 | #proxy.content_type_include=text/html|text/plain|text/xml
585 | # Default content-type exclude filter to use
586 | #proxy.content_type_exclude=image/.*|text/css|application/.*
587 |
588 | # Default headers to remove from Header Manager elements
589 | # (Cookie and Authorization are always removed)
590 | #proxy.headers.remove=If-Modified-Since,If-None-Match,Host
591 |
592 | # Binary content-type handling
593 | # These content-types will be handled by saving the request in a file:
594 | #proxy.binary.types=application/x-amf,application/x-java-serialized-object
595 | # The files will be saved in this directory:
596 | #proxy.binary.directory=user.dir
597 | # The files will be created with this file filesuffix:
598 | #proxy.binary.filesuffix=.binary
599 |
600 | #---------------------------------------------------------------------------
601 | # Test Script Recorder certificate configuration
602 | #---------------------------------------------------------------------------
603 |
604 | #proxy.cert.directory=
605 | #proxy.cert.file=proxyserver.jks
606 | #proxy.cert.type=JKS
607 | #proxy.cert.keystorepass=password
608 | #proxy.cert.keypassword=password
609 | #proxy.cert.factory=SunX509
610 | # define this property if you wish to use your own keystore
611 | #proxy.cert.alias=
612 | # The default validity for certificates created by JMeter
613 | #proxy.cert.validity=7
614 | # Use dynamic key generation (if supported by JMeter/JVM)
615 | # If false, will revert to using a single key with no certificate
616 | #proxy.cert.dynamic_keys=true
617 |
618 | #---------------------------------------------------------------------------
619 | # Test Script Recorder miscellaneous configuration
620 | #---------------------------------------------------------------------------
621 |
622 | # Whether to attempt disabling of samples that resulted from redirects
623 | # where the generated samples use auto-redirection
624 | #proxy.redirect.disabling=true
625 |
626 | # SSL configuration
627 | #proxy.ssl.protocol=TLS
628 |
629 | #---------------------------------------------------------------------------
630 | # JMeter Proxy configuration
631 | #---------------------------------------------------------------------------
632 | # use command-line flags for user-name and password
633 | #http.proxyDomain=NTLM domain, if required by HTTPClient sampler
634 |
635 | #---------------------------------------------------------------------------
636 | # HTTPSampleResponse Parser configuration
637 | #---------------------------------------------------------------------------
638 |
639 | # Space-separated list of parser groups
640 | HTTPResponse.parsers=htmlParser wmlParser cssParser
641 | # for each parser, there should be a parser.types and a parser.className property
642 |
643 | # CSS Parser based on ph-css
644 | cssParser.className=org.apache.jmeter.protocol.http.parser.CssParser
645 | cssParser.types=text/css
646 |
647 | # CSS parser LRU cache size
648 | # This cache stores the URLs found in a CSS to avoid continuously parsing the CSS
649 | # By default the cache size is 400
650 | # It can be disabled by setting its value to 0
651 | #css.parser.cache.size=400
652 |
653 | # Let the CSS Parser ignore all css errors
654 | #css.parser.ignore_all_css_errors=true
655 |
656 | #---------------------------------------------------------------------------
657 | # HTML Parser configuration
658 | #---------------------------------------------------------------------------
659 |
660 | # Define the HTML parser to be used.
661 | # Default parser:
662 | # This new parser (since 2.10) should perform better than all others
663 | # see https://bz.apache.org/bugzilla/show_bug.cgi?id=55632
664 | # Do not comment this property
665 | htmlParser.className=org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser
666 |
667 | # Other parsers:
668 | # Default parser before 2.10
669 | #htmlParser.className=org.apache.jmeter.protocol.http.parser.JTidyHTMLParser
670 | # Note that Regexp extractor may detect references that have been commented out.
671 | # In many cases it will work OK, but you should be aware that it may generate
672 | # additional references.
673 | #htmlParser.className=org.apache.jmeter.protocol.http.parser.RegexpHTMLParser
674 | # This parser is based on JSoup, it should be the most accurate but less
675 | # performant than LagartoBasedHtmlParser
676 | #htmlParser.className=org.apache.jmeter.protocol.http.parser.JsoupBasedHtmlParser
677 |
678 | #Used by HTTPSamplerBase to associate htmlParser with content types below
679 | htmlParser.types=text/html application/xhtml+xml application/xml text/xml
680 |
681 | #---------------------------------------------------------------------------
682 | # WML Parser configuration
683 | #---------------------------------------------------------------------------
684 |
685 | wmlParser.className=org.apache.jmeter.protocol.http.parser.RegexpHTMLParser
686 |
687 | #Used by HTTPSamplerBase to associate wmlParser with content types below
688 | wmlParser.types=text/vnd.wap.wml
689 |
690 | #---------------------------------------------------------------------------
691 | # Remote batching configuration
692 | #---------------------------------------------------------------------------
693 | # How is Sample sender implementations configured:
694 | # - true (default) means client configuration will be used
695 | # - false means server configuration will be used
696 | #sample_sender_client_configured=true
697 |
698 | # By default when Stripping modes are used JMeter since 3.1 will strip
699 | # response even for SampleResults in error.
700 | # If you want to revert to previous behaviour (no stripping of Responses in error)
701 | # set this property to false
702 | #sample_sender_strip_also_on_error=true
703 |
704 | # Remote batching support
705 | # Since JMeter 2.9, default is MODE_STRIPPED_BATCH, which returns samples in
706 | # batch mode (every 100 samples or every minute by default)
707 | # Note also that MODE_STRIPPED_BATCH strips response data from SampleResult, so if you need it change to
708 | # another mode
709 | # Batch returns samples in batches
710 | # Statistical returns sample summary statistics
711 | # mode can also be the class name of an implementation of org.apache.jmeter.samplers.SampleSender
712 | #mode=Standard
713 | #mode=Batch
714 | #mode=Statistical
715 | #Set to true to key statistical samples on threadName rather than threadGroup
716 | #key_on_threadname=false
717 | #mode=Stripped
718 | #mode=StrippedBatch
719 | #mode=org.example.load.MySampleSender
720 | #
721 | #num_sample_threshold=100
722 | # Value is in milliseconds
723 | #time_threshold=60000
724 | #
725 | # Asynchronous sender; uses a queue and background worker process to return the samples
726 | #mode=Asynch
727 | # default queue size
728 | #asynch.batch.queue.size=100
729 | # Same as Asynch but strips response data from SampleResult
730 | #mode=StrippedAsynch
731 | #
732 | # DiskStore: Serialises the samples to disk, rather than saving in memory
733 | #mode=DiskStore
734 | # Same as DiskStore but strips response data from SampleResult
735 | #mode=StrippedDiskStore
736 | # Note: the mode is currently resolved on the client;
737 | # other properties (e.g. time_threshold) are resolved on the server.
738 |
739 | #---------------------------------------------------------------------------
740 | # JDBC Request configuration
741 | #---------------------------------------------------------------------------
742 |
743 | # String used to indicate a null value
744 | #jdbcsampler.nullmarker=]NULL[
745 | #
746 | # Max size of BLOBs and CLOBs to store in JDBC sampler. Result will be cut off
747 | #jdbcsampler.max_retain_result_size=65536
748 |
749 | # Database validation query
750 | # based in https://stackoverflow.com/questions/10684244/dbcp-validationquery-for-different-databases list
751 | jdbc.config.check.query=select 1 from INFORMATION_SCHEMA.SYSTEM_USERS|select 1 from dual|select 1 from sysibm.sysdummy1|select 1|select 1 from rdb$database
752 | jdbc.config.jdbc.driver.class=com.mysql.jdbc.Driver|org.postgresql.Driver|oracle.jdbc.OracleDriver|com.ingres.jdbc.IngresDriver|com.microsoft.sqlserver.jdbc.SQLServerDriver|com.microsoft.jdbc.sqlserver.SQLServerDriver|org.apache.derby.jdbc.ClientDriver|org.hsqldb.jdbc.JDBCDriver|com.ibm.db2.jcc.DB2Driver|org.apache.derby.jdbc.ClientDriver|org.h2.Driver|org.firebirdsql.jdbc.FBDrivery|org.mariadb.jdbc.Driver|org.sqlite.JDBC|net.sourceforge.jtds.jdbc.Driver
753 |
754 | #---------------------------------------------------------------------------
755 | # OS Process Sampler configuration
756 | #---------------------------------------------------------------------------
757 | # Polling to see if process has finished its work, used when a timeout is configured on sampler
758 | #os_sampler.poll_for_timeout=100
759 |
760 | #---------------------------------------------------------------------------
761 | # TCP Sampler configuration
762 | #---------------------------------------------------------------------------
763 |
764 | # The default handler class
765 | #tcp.handler=TCPClientImpl
766 | #
767 | # eolByte = byte value for end of line
768 | # set this to a value outside the range -128 to +127 to skip eol checking
769 | #tcp.eolByte=1000
770 | #
771 | # TCP Charset, used by org.apache.jmeter.protocol.tcp.sampler.TCPClientImpl
772 | # default to Platform defaults charset as returned by Charset.defaultCharset().name()
773 | #tcp.charset=
774 | #
775 | # status.prefix and suffix = strings that enclose the status response code
776 | #tcp.status.prefix=Status=
777 | #tcp.status.suffix=.
778 | #
779 | # status.properties = property file to convert codes to messages
780 | #tcp.status.properties=mytestfiles/tcpstatus.properties
781 |
782 | # The length prefix used by LengthPrefixedBinaryTCPClientImpl implementation
783 | # defaults to 2 bytes.
784 | #tcp.binarylength.prefix.length=2
785 |
786 | #---------------------------------------------------------------------------
787 | # Summariser - Generate Summary Results - configuration (mainly applies to non-GUI mode)
788 | #---------------------------------------------------------------------------
789 | #
790 | # Comment the following property to disable the default non-GUI summariser
791 | # [or change the value to rename it]
792 | # (applies to non-GUI mode only)
793 | summariser.name=summary
794 | #
795 | # interval between summaries (in seconds) default 30 seconds
796 | #summariser.interval=30
797 | #
798 | # Write messages to log file
799 | #summariser.log=true
800 | #
801 | # Write messages to System.out
802 | #summariser.out=true
803 |
804 | # Ignore SampleResults generated by TransactionControllers
805 | # defaults to true
806 | #summariser.ignore_transaction_controller_sample_result=true
807 |
808 |
809 | #---------------------------------------------------------------------------
810 | # Aggregate Report and Aggregate Graph - configuration
811 | #---------------------------------------------------------------------------
812 | #
813 | # Percentiles to display in reports
814 | # Can be float value between 0 and 100
815 | # First percentile to display, defaults to 90%
816 | #aggregate_rpt_pct1=90
817 | # Second percentile to display, defaults to 95%
818 | #aggregate_rpt_pct2=95
819 | # Second percentile to display, defaults to 99%
820 | #aggregate_rpt_pct3=99
821 |
822 | #---------------------------------------------------------------------------
823 | # BackendListener - configuration
824 | #---------------------------------------------------------------------------
825 | #
826 | # Backend metrics window mode (fixed=fixed-size window, timed=time boxed)
827 | #backend_metrics_window_mode=fixed
828 | # Backend metrics sliding window size for Percentiles, Min, Max
829 | #backend_metrics_window=100
830 |
831 | # Backend metrics sliding window size for Percentiles, Min, Max
832 | # when backend_metrics_window_mode is timed
833 | # Setting this value too high can lead to OOM
834 | #backend_metrics_large_window=5000
835 |
836 | ########################
837 | # Graphite Backend
838 | ########################
839 | # Send interval in second
840 | # Defaults to 1 second
841 | #backend_graphite.send_interval=1
842 |
843 | ########################
844 | # Influx Backend
845 | ########################
846 |
847 | # Send interval in second
848 | # Defaults to 5 seconds
849 | #backend_influxdb.send_interval=5
850 | #Influxdb timeouts
851 | #backend_influxdb.connection_timeout=1000
852 | #backend_influxdb.socket_timeout=3000
853 | #backend_influxdb.connection_request_timeout=100
854 |
855 | #---------------------------------------------------------------------------
856 | # BeanShell configuration
857 | #---------------------------------------------------------------------------
858 |
859 | # BeanShell Server properties
860 | #
861 | # Define the port number as non-zero to start the http server on that port
862 | #beanshell.server.port=9000
863 | # The telnet server will be started on the next port
864 |
865 | #
866 | # Define the server initialisation file
867 | beanshell.server.file=../extras/startup.bsh
868 |
869 | #
870 | # Define a file to be processed at startup
871 | # This is processed using its own interpreter.
872 | #beanshell.init.file=
873 |
874 | #
875 | # Define the intialisation files for BeanShell Sampler, Function and other BeanShell elements
876 | # N.B. Beanshell test elements do not share interpreters.
877 | # Each element in each thread has its own interpreter.
878 | # This is retained between samples.
879 | #beanshell.sampler.init=BeanShellSampler.bshrc
880 | #beanshell.function.init=BeanShellFunction.bshrc
881 | #beanshell.assertion.init=BeanShellAssertion.bshrc
882 | #beanshell.listener.init=etc
883 | #beanshell.postprocessor.init=etc
884 | #beanshell.preprocessor.init=etc
885 | #beanshell.timer.init=etc
886 |
887 | # The file BeanShellListeners.bshrc contains sample definitions
888 | # of Test and Thread Listeners.
889 |
890 | #---------------------------------------------------------------------------
891 | # Groovy function
892 | #---------------------------------------------------------------------------
893 |
894 | #Path to Groovy file containing utility functions to make available to __groovy function
895 | #groovy.utilities=
896 |
897 | # Example
898 | #groovy.utilities=bin/utility.groovy
899 |
900 | #---------------------------------------------------------------------------
901 | # MailerModel configuration
902 | #---------------------------------------------------------------------------
903 |
904 | # Number of successful samples before a message is sent
905 | #mailer.successlimit=2
906 | #
907 | # Number of failed samples before a message is sent
908 | #mailer.failurelimit=2
909 |
910 | #---------------------------------------------------------------------------
911 | # CSVRead configuration
912 | #---------------------------------------------------------------------------
913 |
914 | # CSVRead delimiter setting (default ",")
915 | # Make sure that there are no trailing spaces or tabs after the delimiter
916 | # characters, or these will be included in the list of valid delimiters
917 | #csvread.delimiter=,
918 | #csvread.delimiter=;
919 | #csvread.delimiter=!
920 | #csvread.delimiter=~
921 | # The following line has a tab after the =
922 | #csvread.delimiter=
923 |
924 | #---------------------------------------------------------------------------
925 | # __time() function configuration
926 | #
927 | # The properties below can be used to redefine the default formats
928 | #---------------------------------------------------------------------------
929 | #time.YMD=yyyyMMdd
930 | #time.HMS=HHmmss
931 | #time.YMDHMS=yyyyMMdd-HHmmss
932 | #time.USER1=
933 | #time.USER2=
934 |
935 | #---------------------------------------------------------------------------
936 | # CSV DataSet configuration
937 | #---------------------------------------------------------------------------
938 |
939 | # String to return at EOF (if recycle not used)
940 | #csvdataset.eofstring=
941 | #list in https://docs.oracle.com/javase/8/docs/technotes/guides/intl/encoding.doc.html
942 | csvdataset.file.encoding_list=UTF-8|UTF-16|ISO-8859-15|US-ASCII
943 |
944 |
945 | #---------------------------------------------------------------------------
946 | # LDAP Sampler configuration
947 | #---------------------------------------------------------------------------
948 | # Maximum number of search results returned by a search that will be sorted
949 | # to guarantee a stable ordering (if more results then this limit are returned
950 | # then no sorting is done). Set to 0 to turn off all sorting, in which case
951 | # "Equals" response assertions will be very likely to fail against search results.
952 | #
953 | #ldapsampler.max_sorted_results=1000
954 |
955 | # Number of characters to log for each of three sections (starting matching section, diff section,
956 | # ending matching section where not all sections will appear for all diffs) diff display when an Equals
957 | # assertion fails. So a value of 100 means a maximum of 300 characters of diff text will be displayed
958 | # (+ a number of extra characters like "..." and "[[["/"]]]" which are used to decorate it).
959 | #assertion.equals_section_diff_len=100
960 | # test written out to log to signify start/end of diff delta
961 | #assertion.equals_diff_delta_start=[[[
962 | #assertion.equals_diff_delta_end=]]]
963 |
964 | #---------------------------------------------------------------------------
965 | # Miscellaneous configuration
966 | #---------------------------------------------------------------------------
967 | # Used to control what happens when you start a test and
968 | # have listeners that could overwrite existing result files
969 | # Possible values:
970 | # ASK : Ask user
971 | # APPEND : Append results to existing file
972 | # DELETE : Delete existing file and start a new file
973 | #resultcollector.action_if_file_exists=ASK
974 |
975 | # If defined, then start the mirror server on the port
976 | #mirror.server.port=8081
977 |
978 | # ORO PatternCacheLRU size
979 | #oro.patterncache.size=1000
980 |
981 | #TestBeanGui
982 | #
983 | #propertyEditorSearchPath=null
984 |
985 | # Turn expert mode on/off: expert mode will show expert-mode beans and properties
986 | #jmeter.expertMode=true
987 |
988 | # Max size of bytes stored in memory per SampleResult
989 | # Ensure you don't exceed max capacity of a Java Array and remember
990 | # that the higher it is, the higher JMeter will consume heap
991 | # Defaults to 0, which means no truncation
992 | #httpsampler.max_bytes_to_store_per_request=0
993 |
994 | # Max size of buffer in bytes used when reading responses
995 | # Defaults to 64k
996 | #httpsampler.max_buffer_size=66560
997 |
998 | # Maximum redirects to follow in a single sequence (default 20)
999 | #httpsampler.max_redirects=20
1000 | # Maximum frame/iframe nesting depth (default 5)
1001 | #httpsampler.max_frame_depth=5
1002 |
1003 | # Revert to BUG 51939 behaviour (no separate container for embedded resources) by setting the following false:
1004 | #httpsampler.separate.container=true
1005 |
1006 | # If embedded resources download fails due to missing resources or other reasons, if this property is true
1007 | # Parent sample will not be marked as failed
1008 | #httpsampler.ignore_failed_embedded_resources=false
1009 |
1010 | #keep alive time for the parallel download threads (in seconds)
1011 | #httpsampler.parallel_download_thread_keepalive_inseconds=60
1012 |
1013 | # Don't keep the embedded resources response data : just keep the size and the md5
1014 | # default to false
1015 | #httpsampler.embedded_resources_use_md5=false
1016 |
1017 | # List of extra HTTP methods that should be available in select box
1018 | #httpsampler.user_defined_methods=VERSION-CONTROL,REPORT,CHECKOUT,CHECKIN,UNCHECKOUT,MKWORKSPACE,UPDATE,LABEL,MERGE,BASELINE-CONTROL,MKACTIVITY
1019 |
1020 | # The encoding to be used if none is provided (default ISO-8859-1)
1021 | #sampleresult.default.encoding=ISO-8859-1
1022 |
1023 | # CookieManager behaviour - should cookies with null/empty values be deleted?
1024 | # Default is true. Use false to revert to original behaviour
1025 | #CookieManager.delete_null_cookies=true
1026 |
1027 | # CookieManager behaviour - should variable cookies be allowed?
1028 | # Default is true. Use false to revert to original behaviour
1029 | #CookieManager.allow_variable_cookies=true
1030 |
1031 | # CookieManager behaviour - should Cookies be stored as variables?
1032 | # Default is false
1033 | #CookieManager.save.cookies=false
1034 |
1035 | # CookieManager behaviour - prefix to add to cookie name before storing it as a variable
1036 | # Default is COOKIE_; to remove the prefix, define it as one or more spaces
1037 | #CookieManager.name.prefix=
1038 |
1039 | # CookieManager behaviour - check received cookies are valid before storing them?
1040 | # Default is true. Use false to revert to previous behaviour
1041 | #CookieManager.check.cookies=true
1042 |
1043 | # Netscape HTTP Cookie file
1044 | cookies=cookies
1045 |
1046 | # Ability to switch to Nashorn as default Javascript Engine used by IfController and __javaScript function
1047 | # JMeter works as following:
1048 | # - JDK >= 8 and javascript.use_rhino=false or not set : Nashorn
1049 | # - JDK >= 8 and javascript.use_rhino=true: Rhino
1050 | # If you want to use Rhino on JDK8, set this property to true
1051 | #javascript.use_rhino=false
1052 |
1053 | # Number of milliseconds to wait for a thread to stop
1054 | #jmeterengine.threadstop.wait=5000
1055 |
1056 | #Whether to invoke System.exit(0) in server exit code after stopping RMI
1057 | #jmeterengine.remote.system.exit=false
1058 |
1059 | # Whether to call System.exit(1) on failure to stop threads in non-GUI mode.
1060 | # This only takes effect if the test was explicitly requested to stop.
1061 | # If this is disabled, it may be necessary to kill the JVM externally
1062 | #jmeterengine.stopfail.system.exit=true
1063 |
1064 | # Whether to force call System.exit(0) at end of test in non-GUI mode, even if
1065 | # there were no failures and the test was not explicitly asked to stop.
1066 | # Without this, the JVM may never exit if there are other threads spawned by
1067 | # the test which never exit.
1068 | #jmeterengine.force.system.exit=false
1069 |
1070 | # How long to pause (in ms) in the daemon thread before reporting that the JVM has failed to exit.
1071 | # If the value is <= 0, the JMeter does not start the daemon thread
1072 | #jmeter.exit.check.pause=2000
1073 |
1074 | # If running non-GUI, then JMeter listens on the following port for a shutdown message.
1075 | # To disable, set the port to 1000 or less.
1076 | #jmeterengine.nongui.port=4445
1077 | #
1078 | # If the initial port is busy, keep trying until this port is reached
1079 | # (to disable searching, set the value less than or equal to the .port property)
1080 | #jmeterengine.nongui.maxport=4455
1081 |
1082 | # How often to check for shutdown during ramp-up (milliseconds)
1083 | #jmeterthread.rampup.granularity=1000
1084 |
1085 | #Should JMeter expand the tree when loading a test plan?
1086 | # default value is false since JMeter 2.7
1087 | #onload.expandtree=false
1088 |
1089 | #JSyntaxTextArea configuration
1090 | #jsyntaxtextarea.wrapstyleword=true
1091 | #jsyntaxtextarea.linewrap=true
1092 | #jsyntaxtextarea.codefolding=true
1093 | # Set 0 to disable undo feature in JSyntaxTextArea
1094 | #jsyntaxtextarea.maxundos=50
1095 | # Change the font on the (JSyntax) Text Areas. (Useful for HiDPI screens)
1096 | #jsyntaxtextarea.font.family=Hack
1097 | #jsyntaxtextarea.font.size=14
1098 |
1099 | # Set this to false to disable the use of JSyntaxTextArea for the Console Logger panel
1100 | #loggerpanel.usejsyntaxtext=true
1101 |
1102 | # Maximum size of HTML page that can be displayed; default=10 mbytes
1103 | # Set to 0 to disable the size check and display the whole response
1104 | #view.results.tree.max_size=10485760
1105 |
1106 | # Order of Renderers in View Results Tree
1107 | # Note full class names should be used for non jmeter core renderers
1108 | # For JMeter core renderers, class names start with . and are automatically
1109 | # prefixed with org.apache.jmeter.visualizers
1110 | view.results.tree.renderers_order=.RenderAsText,.RenderAsRegexp,.RenderAsBoundaryExtractor,.RenderAsCssJQuery,.RenderAsXPath,org.apache.jmeter.extractor.json.render.RenderAsJsonRenderer,.RenderAsHTML,.RenderAsHTMLFormatted,.RenderAsHTMLWithEmbedded,.RenderAsDocument,.RenderAsJSON,.RenderAsXML
1111 |
1112 | # Maximum number of results in the results tree
1113 | # Set to 0 to store all results (might consume a lot of memory)
1114 | #view.results.tree.max_results=500
1115 |
1116 | # Maximum size of Document that can be parsed by Tika engine; defaut=10 * 1024 * 1024 (10MB)
1117 | # Set to 0 to disable the size check
1118 | #document.max_size=0
1119 |
1120 | #JMS options
1121 | # Enable the following property to stop JMS Point-to-Point Sampler from using
1122 | # the properties java.naming.security.[principal|credentials] when creating the queue connection
1123 | #JMSSampler.useSecurity.properties=false
1124 |
1125 | # Set the following value to true in order to skip the delete confirmation dialogue
1126 | #confirm.delete.skip=false
1127 |
1128 | # Used by JSR223 elements
1129 | # Size of compiled scripts cache
1130 | #jsr223.compiled_scripts_cache_size=100
1131 |
1132 | #---------------------------------------------------------------------------
1133 | # Classpath configuration
1134 | #---------------------------------------------------------------------------
1135 |
1136 | # List of directories (separated by ;) to search for additional JMeter plugin classes,
1137 | # for example new GUI elements and samplers.
1138 | # Any jar file in such a directory will be automatically included,
1139 | # jar files in sub directories are ignored.
1140 | # The given value is in addition to any jars found in the lib/ext directory.
1141 | # Do not use this for utility or plugin dependency jars.
1142 | #search_paths=/app1/lib;/app2/lib
1143 |
1144 | # List of directories that JMeter will search for utility and plugin dependency classes.
1145 | # Use your platform path separator to separate multiple paths.
1146 | # Any jar file in such a directory will be automatically included,
1147 | # jar files in sub directories are ignored.
1148 | # The given value is in addition to any jars found in the lib directory.
1149 | # All entries will be added to the class path of the system class loader
1150 | # and also to the path of the JMeter internal loader.
1151 | # Paths with spaces may cause problems for the JVM
1152 | #user.classpath=../classes;../lib
1153 |
1154 | # List of directories (separated by ;) that JMeter will search for utility
1155 | # and plugin dependency classes.
1156 | # Any jar file in such a directory will be automatically included,
1157 | # jar files in sub directories are ignored.
1158 | # The given value is in addition to any jars found in the lib directory
1159 | # or given by the user.classpath property.
1160 | # All entries will be added to the path of the JMeter internal loader only.
1161 | # For plugin dependencies this property should be used instead of user.classpath.
1162 | #plugin_dependency_paths=../dependencies/lib;../app1/;../app2/
1163 |
1164 | # Classpath finder
1165 | # ================
1166 | # The classpath finder currently needs to load every single JMeter class to find
1167 | # the classes it needs.
1168 | # For non-GUI mode, it's only necessary to scan for Function classes, but all classes
1169 | # are still loaded.
1170 | # All current Function classes include ".function." in their name,
1171 | # and none include ".gui." in the name, so the number of unwanted classes loaded can be
1172 | # reduced by checking for these. However, if a valid function class name does not match
1173 | # these restrictions, it will not be loaded. If problems are encountered, then comment
1174 | # or change the following properties:
1175 | classfinder.functions.contain=.functions.
1176 | classfinder.functions.notContain=.gui.
1177 |
1178 |
1179 | #---------------------------------------------------------------------------
1180 | # Additional property files to load
1181 | #---------------------------------------------------------------------------
1182 |
1183 | # Should JMeter automatically load additional JMeter properties?
1184 | # File name to look for (comment to disable)
1185 | user.properties=user.properties
1186 |
1187 | # Should JMeter automatically load additional system properties?
1188 | # File name to look for (comment to disable)
1189 | system.properties=system.properties
1190 |
1191 | # Comma separated list of files that contain reference to templates and their description
1192 | # Path must be relative to JMeter root folder
1193 | #template.files=/bin/templates/templates.xml
1194 |
1195 |
1196 | #---------------------------------------------------------------------------
1197 | # Thread Group Validation feature
1198 | #---------------------------------------------------------------------------
1199 |
1200 | # Validation is the name of the feature used to rapidly validate a Thread Group runs fine
1201 | # Default implementation is org.apache.jmeter.gui.action.validation.TreeClonerForValidation
1202 | # It runs validation without timers, with 1 thread, 1 iteration and Startup Delay set to 0
1203 | # You can implement your own policy that must extend org.apache.jmeter.engine.TreeCloner
1204 | # JMeter will instantiate it and use it to create the Tree used to run validation on Thread Group
1205 | #testplan_validation.tree_cloner_class=org.apache.jmeter.validation.ComponentTreeClonerForValidation
1206 |
1207 | # Number of threads to use to validate a Thread Group
1208 | #testplan_validation.nb_threads_per_thread_group=1
1209 |
1210 | # Ignore BackendListener when validating the thread group of plan
1211 | #testplan_validation.ignore_backends=true
1212 |
1213 | # Ignore timers when validating the thread group of plan
1214 | #testplan_validation.ignore_timers=true
1215 |
1216 | # Number of iterations to use to validate a Thread Group
1217 | #testplan_validation.number_iterations=1
1218 |
1219 | # Force throuput controllers that work in percentage mode to be a 100%
1220 | # Disabled by default
1221 | #testplan_validation.tpc_force_100_pct=false
1222 |
1223 | #---------------------------------------------------------------------------
1224 | # Think Time configuration
1225 | #---------------------------------------------------------------------------
1226 |
1227 | #
1228 | # Apply a factor on computed pauses by the following Timers:
1229 | # - Gaussian Random Timer
1230 | # - Uniform Random Timer
1231 | # - Poisson Random Timer
1232 | #
1233 | #timer.factor=1.0f
1234 |
1235 | # Default implementation that create the Timer structure to add to Test Plan
1236 | # Implementation of interface org.apache.jmeter.gui.action.thinktime.ThinkTimeCreator
1237 | #think_time_creator.impl=org.apache.jmeter.thinktime.DefaultThinkTimeCreator
1238 |
1239 | # Default Timer GUI class added to Test Plan by DefaultThinkTimeCreator
1240 | #think_time_creator.default_timer_implementation=org.apache.jmeter.timers.gui.UniformRandomTimerGui
1241 |
1242 | # Default constant pause of Timer
1243 | #think_time_creator.default_constant_pause=1000
1244 |
1245 | # Default range pause of Timer
1246 | #think_time_creator.default_range=100
1247 |
1248 |
1249 | # Change this parameter if you want to override the APDEX satisfaction threshold.
1250 | jmeter.reportgenerator.apdex_satisfied_threshold=500
1251 |
1252 | # Change this parameter if you want to override the APDEX tolerance threshold.
1253 | jmeter.reportgenerator.apdex_tolerated_threshold=1500
1254 |
1255 | #---------------------------------------------------------------------------
1256 | # Naming Policy configuration
1257 | #---------------------------------------------------------------------------
1258 |
1259 | # Prefix used when naming elements
1260 | #naming_policy.prefix=
1261 | # Suffix used when naming elements
1262 | #naming_policy.suffix=
1263 |
1264 | # Implementation of interface org.apache.jmeter.gui.action.TreeNodeNamingPolicy
1265 | #naming_policy.impl=org.apache.jmeter.gui.action.impl.DefaultTreeNodeNamingPolicy
1266 |
1267 | #---------------------------------------------------------------------------
1268 | # Help Documentation
1269 | #---------------------------------------------------------------------------
1270 |
1271 | # Switch that allows using Local documentation opened in JMeter GUI
1272 | # By default we use Online documentation opened in Browser
1273 | #help.local=false
--------------------------------------------------------------------------------
/jmeter/bin/saveservice.properties:
--------------------------------------------------------------------------------
1 | #---------------------------------------------------------
2 | # SAVESERVICE PROPERTIES - JMETER INTERNAL USE ONLY
3 | #---------------------------------------------------------
4 |
5 | ## Licensed to the Apache Software Foundation (ASF) under one or more
6 | ## contributor license agreements. See the NOTICE file distributed with
7 | ## this work for additional information regarding copyright ownership.
8 | ## The ASF licenses this file to You under the Apache License, Version 2.0
9 | ## (the "License"); you may not use this file except in compliance with
10 | ## the License. You may obtain a copy of the License at
11 | ##
12 | ## http://www.apache.org/licenses/LICENSE-2.0
13 | ##
14 | ## Unless required by applicable law or agreed to in writing, software
15 | ## distributed under the License is distributed on an "AS IS" BASIS,
16 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 | ## See the License for the specific language governing permissions and
18 | ## limitations under the License.
19 |
20 | # This file is used to define how XStream (de-)serializes classnames
21 | # in JMX test plan files.
22 |
23 | # FOR JMETER INTERNAL USE ONLY
24 |
25 | #---------------------------------------------------------
26 |
27 | # N.B. To ensure backward compatibility, please do NOT change or delete any entries
28 |
29 | # New entries can be added as necessary.
30 | #
31 | # Note that keys starting with an underscore are special,
32 | # and are not used as aliases.
33 | #
34 | # Please keep the entries in alphabetical order within the sections
35 | # to reduce the likelihood of duplicates
36 | #
37 | # version number of this file is now computed by a sha1 sum, so no need for
38 | # an explicit _file_version property anymore.
39 | #
40 | # For this sha1 sum we ignore every newline character. It can be computed
41 | # by the following command:
42 | #
43 | # cat bin/saveservice.properties | perl -ne 'chomp; print' | sha1sum
44 | #
45 | # Be aware, that every change in this file will change the sha1 sum!
46 | #
47 | # Conversion version (for JMX output files)
48 | # Must be updated if the file has been changed since the previous release
49 | # Format is:
50 | # Save service version=JMeter version at which change occurred
51 | # 1.7 = 2.1.1
52 | # 1.8 = 2.1.2
53 | # (Some version updates were missed here...)
54 | # 2.0 = 2.3.1
55 | # 2.1 = 2.3.2
56 | # (Some version updates were missed here...)
57 | # 2.2 = 2.6
58 | # 2.3 = 2.7
59 | # 2.4 = 2.9
60 | # 2.5 = 2.10
61 | # 2.6 = 2.11
62 | # 2.7 = 2.12
63 | # 2.8 = 2.13
64 | # 2.9 = 2.14
65 | # 3.1 = 3.1
66 | # 3.2 = 3.2
67 | # 3.4 = 3.4
68 | _version=4.0
69 | #
70 | #
71 | # Character set encoding used to read and write JMeter XML files and CSV results
72 | #
73 | _file_encoding=UTF-8
74 | #
75 | #---------------------------------------------------------
76 | #
77 | # The following properties are used to create aliases
78 | # [Must all start with capital letter]
79 | #
80 | AccessLogSampler=org.apache.jmeter.protocol.http.sampler.AccessLogSampler
81 | AjpSampler=org.apache.jmeter.protocol.http.sampler.AjpSampler
82 | AjpSamplerGui=org.apache.jmeter.protocol.http.control.gui.AjpSamplerGui
83 | AnchorModifier=org.apache.jmeter.protocol.http.modifier.AnchorModifier
84 | AnchorModifierGui=org.apache.jmeter.protocol.http.modifier.gui.AnchorModifierGui
85 | Argument=org.apache.jmeter.config.Argument
86 | Arguments=org.apache.jmeter.config.Arguments
87 | ArgumentsPanel=org.apache.jmeter.config.gui.ArgumentsPanel
88 | AssertionGui=org.apache.jmeter.assertions.gui.AssertionGui
89 | AssertionVisualizer=org.apache.jmeter.visualizers.AssertionVisualizer
90 | AuthManager=org.apache.jmeter.protocol.http.control.AuthManager
91 | Authorization=org.apache.jmeter.protocol.http.control.Authorization
92 | AuthPanel=org.apache.jmeter.protocol.http.gui.AuthPanel
93 | BackendListener=org.apache.jmeter.visualizers.backend.BackendListener
94 | BackendListenerGui=org.apache.jmeter.visualizers.backend.BackendListenerGui
95 | BeanShellAssertion=org.apache.jmeter.assertions.BeanShellAssertion
96 | BeanShellAssertionGui=org.apache.jmeter.assertions.gui.BeanShellAssertionGui
97 | BeanShellListener=org.apache.jmeter.visualizers.BeanShellListener
98 | BeanShellPostProcessor=org.apache.jmeter.extractor.BeanShellPostProcessor
99 | BeanShellPreProcessor=org.apache.jmeter.modifiers.BeanShellPreProcessor
100 | BeanShellSampler=org.apache.jmeter.protocol.java.sampler.BeanShellSampler
101 | BeanShellSamplerGui=org.apache.jmeter.protocol.java.control.gui.BeanShellSamplerGui
102 | BeanShellTimer=org.apache.jmeter.timers.BeanShellTimer
103 | BoundaryExtractor=org.apache.jmeter.extractor.BoundaryExtractor
104 | BoundaryExtractorGui=org.apache.jmeter.extractor.gui.BoundaryExtractorGui
105 | BSFAssertion=org.apache.jmeter.assertions.BSFAssertion
106 | BSFListener=org.apache.jmeter.visualizers.BSFListener
107 | BSFPreProcessor=org.apache.jmeter.modifiers.BSFPreProcessor
108 | BSFPostProcessor=org.apache.jmeter.extractor.BSFPostProcessor
109 | BSFSampler=org.apache.jmeter.protocol.java.sampler.BSFSampler
110 | BSFSamplerGui=org.apache.jmeter.protocol.java.control.gui.BSFSamplerGui
111 | BSFTimer=org.apache.jmeter.timers.BSFTimer
112 | CacheManager=org.apache.jmeter.protocol.http.control.CacheManager
113 | CacheManagerGui=org.apache.jmeter.protocol.http.gui.CacheManagerGui
114 | CompareAssertion=org.apache.jmeter.assertions.CompareAssertion
115 | ComparisonVisualizer=org.apache.jmeter.visualizers.ComparisonVisualizer
116 | ConfigTestElement=org.apache.jmeter.config.ConfigTestElement
117 | ConstantThroughputTimer=org.apache.jmeter.timers.ConstantThroughputTimer
118 | ConstantTimer=org.apache.jmeter.timers.ConstantTimer
119 | ConstantTimerGui=org.apache.jmeter.timers.gui.ConstantTimerGui
120 | Cookie=org.apache.jmeter.protocol.http.control.Cookie
121 | CookieManager=org.apache.jmeter.protocol.http.control.CookieManager
122 | CookiePanel=org.apache.jmeter.protocol.http.gui.CookiePanel
123 | CounterConfig=org.apache.jmeter.modifiers.CounterConfig
124 | CriticalSectionController=org.apache.jmeter.control.CriticalSectionController
125 | CriticalSectionControllerGui=org.apache.jmeter.control.gui.CriticalSectionControllerGui
126 | CounterConfigGui=org.apache.jmeter.modifiers.gui.CounterConfigGui
127 | CSVDataSet=org.apache.jmeter.config.CSVDataSet
128 | DebugPostProcessor=org.apache.jmeter.extractor.DebugPostProcessor
129 | DebugSampler=org.apache.jmeter.sampler.DebugSampler
130 | # removed in 3.1, class was deleted in r1763837
131 | DistributionGraphVisualizer=org.apache.jmeter.visualizers.DistributionGraphVisualizer
132 | DNSCacheManager=org.apache.jmeter.protocol.http.control.DNSCacheManager
133 | DNSCachePanel=org.apache.jmeter.protocol.http.gui.DNSCachePanel
134 | DurationAssertion=org.apache.jmeter.assertions.DurationAssertion
135 | DurationAssertionGui=org.apache.jmeter.assertions.gui.DurationAssertionGui
136 | PreciseThroughputTimer=org.apache.jmeter.timers.poissonarrivals.PreciseThroughputTimer
137 | # Should really have been defined as floatProp to agree with other properties
138 | # No point changing this now
139 | FloatProperty=org.apache.jmeter.testelement.property.FloatProperty
140 | ForeachController=org.apache.jmeter.control.ForeachController
141 | ForeachControlPanel=org.apache.jmeter.control.gui.ForeachControlPanel
142 | FtpConfigGui=org.apache.jmeter.protocol.ftp.config.gui.FtpConfigGui
143 | FTPSampler=org.apache.jmeter.protocol.ftp.sampler.FTPSampler
144 | FtpTestSamplerGui=org.apache.jmeter.protocol.ftp.control.gui.FtpTestSamplerGui
145 | GaussianRandomTimer=org.apache.jmeter.timers.GaussianRandomTimer
146 | GaussianRandomTimerGui=org.apache.jmeter.timers.gui.GaussianRandomTimerGui
147 | GenericController=org.apache.jmeter.control.GenericController
148 | GraphAccumVisualizer=org.apache.jmeter.visualizers.GraphAccumVisualizer
149 | GraphVisualizer=org.apache.jmeter.visualizers.GraphVisualizer
150 | Header=org.apache.jmeter.protocol.http.control.Header
151 | HeaderManager=org.apache.jmeter.protocol.http.control.HeaderManager
152 | HeaderPanel=org.apache.jmeter.protocol.http.gui.HeaderPanel
153 | HTMLAssertion=org.apache.jmeter.assertions.HTMLAssertion
154 | HTMLAssertionGui=org.apache.jmeter.assertions.gui.HTMLAssertionGui
155 | HTTPArgument=org.apache.jmeter.protocol.http.util.HTTPArgument
156 | HTTPArgumentsPanel=org.apache.jmeter.protocol.http.gui.HTTPArgumentsPanel
157 | HTTPFileArg=org.apache.jmeter.protocol.http.util.HTTPFileArg
158 | HTTPFileArgs=org.apache.jmeter.protocol.http.util.HTTPFileArgs
159 | HttpDefaultsGui=org.apache.jmeter.protocol.http.config.gui.HttpDefaultsGui
160 | HtmlExtractor=org.apache.jmeter.extractor.HtmlExtractor
161 | HtmlExtractorGui=org.apache.jmeter.extractor.gui.HtmlExtractorGui
162 | # removed in r1039684, probably not released. Not present in r322831 or since.
163 | #HttpGenericSampler=org.apache.jmeter.protocol.http.sampler.HttpGenericSampler
164 | # removed in r1039684, probably not released. Not present in r322831 or since.
165 | #HttpGenericSamplerGui=org.apache.jmeter.protocol.http.control.gui.HttpGenericSamplerGui
166 | HttpMirrorControl=org.apache.jmeter.protocol.http.control.HttpMirrorControl
167 | HttpMirrorControlGui=org.apache.jmeter.protocol.http.control.gui.HttpMirrorControlGui
168 | # r397955 - removed test class. Keep as commented entry for info only.
169 | #HTTPNullSampler=org.apache.jmeter.protocol.http.sampler.HTTPNullSampler
170 | # Merge previous 2 HTTP samplers into one
171 | HTTPSampler_=org.apache.jmeter.protocol.http.sampler.HTTPSampler
172 | HTTPSampler2_=org.apache.jmeter.protocol.http.sampler.HTTPSampler2
173 | HTTPSamplerProxy,HTTPSampler,HTTPSampler2=org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy
174 | # Merge GUIs
175 | HttpTestSampleGui,HttpTestSampleGui2=org.apache.jmeter.protocol.http.control.gui.HttpTestSampleGui
176 | #HttpTestSampleGui2=org.apache.jmeter.protocol.http.control.gui.HttpTestSampleGui2
177 | IfController=org.apache.jmeter.control.IfController
178 | IfControllerPanel=org.apache.jmeter.control.gui.IfControllerPanel
179 | IncludeController=org.apache.jmeter.control.IncludeController
180 | IncludeControllerGui=org.apache.jmeter.control.gui.IncludeControllerGui
181 | InterleaveControl=org.apache.jmeter.control.InterleaveControl
182 | InterleaveControlGui=org.apache.jmeter.control.gui.InterleaveControlGui
183 | JavaConfig=org.apache.jmeter.protocol.java.config.JavaConfig
184 | JavaConfigGui=org.apache.jmeter.protocol.java.config.gui.JavaConfigGui
185 | JavaSampler=org.apache.jmeter.protocol.java.sampler.JavaSampler
186 | JavaTest=org.apache.jmeter.protocol.java.test.JavaTest
187 | JavaTestSamplerGui=org.apache.jmeter.protocol.java.control.gui.JavaTestSamplerGui
188 | JDBCDataSource=org.apache.jmeter.protocol.jdbc.config.DataSourceElement
189 | JDBCPostProcessor=org.apache.jmeter.protocol.jdbc.processor.JDBCPostProcessor
190 | JDBCPreProcessor=org.apache.jmeter.protocol.jdbc.processor.JDBCPreProcessor
191 | JDBCSampler=org.apache.jmeter.protocol.jdbc.sampler.JDBCSampler
192 | # Renamed to JMSSamplerGui; keep original entry for backwards compatibility
193 | JMSConfigGui=org.apache.jmeter.protocol.jms.control.gui.JMSConfigGui
194 | JMSProperties=org.apache.jmeter.protocol.jms.sampler.JMSProperties
195 | JMSProperty=org.apache.jmeter.protocol.jms.sampler.JMSProperty
196 | JMSPublisherGui=org.apache.jmeter.protocol.jms.control.gui.JMSPublisherGui
197 | JMSSampler=org.apache.jmeter.protocol.jms.sampler.JMSSampler
198 | JMSSamplerGui=org.apache.jmeter.protocol.jms.control.gui.JMSSamplerGui
199 | JMSSubscriberGui=org.apache.jmeter.protocol.jms.control.gui.JMSSubscriberGui
200 | JSONPathAssertion=org.apache.jmeter.assertions.JSONPathAssertion
201 | JSONPathAssertionGui=org.apache.jmeter.assertions.gui.JSONPathAssertionGui
202 | JSONPostProcessor=org.apache.jmeter.extractor.json.jsonpath.JSONPostProcessor
203 | JSONPostProcessorGui=org.apache.jmeter.extractor.json.jsonpath.gui.JSONPostProcessorGui
204 | # Removed in r545311 as Jndi no longer present; keep for compat.
205 | JndiDefaultsGui=org.apache.jmeter.protocol.jms.control.gui.JndiDefaultsGui
206 | JSR223Assertion=org.apache.jmeter.assertions.JSR223Assertion
207 | JSR223Listener=org.apache.jmeter.visualizers.JSR223Listener
208 | JSR223PostProcessor=org.apache.jmeter.extractor.JSR223PostProcessor
209 | JSR223PreProcessor=org.apache.jmeter.modifiers.JSR223PreProcessor
210 | JSR223Sampler=org.apache.jmeter.protocol.java.sampler.JSR223Sampler
211 | JSR223Timer=org.apache.jmeter.timers.JSR223Timer
212 | JUnitSampler=org.apache.jmeter.protocol.java.sampler.JUnitSampler
213 | JUnitTestSamplerGui=org.apache.jmeter.protocol.java.control.gui.JUnitTestSamplerGui
214 | KeystoreConfig=org.apache.jmeter.config.KeystoreConfig
215 | LDAPArgument=org.apache.jmeter.protocol.ldap.config.gui.LDAPArgument
216 | LDAPArguments=org.apache.jmeter.protocol.ldap.config.gui.LDAPArguments
217 | LDAPArgumentsPanel=org.apache.jmeter.protocol.ldap.config.gui.LDAPArgumentsPanel
218 | LdapConfigGui=org.apache.jmeter.protocol.ldap.config.gui.LdapConfigGui
219 | LdapExtConfigGui=org.apache.jmeter.protocol.ldap.config.gui.LdapExtConfigGui
220 | LDAPExtSampler=org.apache.jmeter.protocol.ldap.sampler.LDAPExtSampler
221 | LdapExtTestSamplerGui=org.apache.jmeter.protocol.ldap.control.gui.LdapExtTestSamplerGui
222 | LDAPSampler=org.apache.jmeter.protocol.ldap.sampler.LDAPSampler
223 | LdapTestSamplerGui=org.apache.jmeter.protocol.ldap.control.gui.LdapTestSamplerGui
224 | LogicControllerGui=org.apache.jmeter.control.gui.LogicControllerGui
225 | LoginConfig=org.apache.jmeter.config.LoginConfig
226 | LoginConfigGui=org.apache.jmeter.config.gui.LoginConfigGui
227 | LoopController=org.apache.jmeter.control.LoopController
228 | LoopControlPanel=org.apache.jmeter.control.gui.LoopControlPanel
229 | MailerModel=org.apache.jmeter.reporters.MailerModel
230 | MailerResultCollector=org.apache.jmeter.reporters.MailerResultCollector
231 | MailerVisualizer=org.apache.jmeter.visualizers.MailerVisualizer
232 | MailReaderSampler=org.apache.jmeter.protocol.mail.sampler.MailReaderSampler
233 | MailReaderSamplerGui=org.apache.jmeter.protocol.mail.sampler.gui.MailReaderSamplerGui
234 | MD5HexAssertion=org.apache.jmeter.assertions.MD5HexAssertion
235 | MD5HexAssertionGUI=org.apache.jmeter.assertions.gui.MD5HexAssertionGUI
236 | ModuleController=org.apache.jmeter.control.ModuleController
237 | ModuleControllerGui=org.apache.jmeter.control.gui.ModuleControllerGui
238 | MongoScriptSampler=org.apache.jmeter.protocol.mongodb.sampler.MongoScriptSampler
239 | MongoSourceElement=org.apache.jmeter.protocol.mongodb.config.MongoSourceElement
240 |
241 | # removed in 3.2, class was deleted in r
242 | MonitorHealthVisualizer=org.apache.jmeter.visualizers.MonitorHealthVisualizer
243 |
244 | NamePanel=org.apache.jmeter.gui.NamePanel
245 | ObsoleteGui=org.apache.jmeter.config.gui.ObsoleteGui
246 | OnceOnlyController=org.apache.jmeter.control.OnceOnlyController
247 | OnceOnlyControllerGui=org.apache.jmeter.control.gui.OnceOnlyControllerGui
248 | # removed in 3.0, class was deleted in r1722962
249 | ParamMask=org.apache.jmeter.protocol.http.modifier.ParamMask
250 | # removed in 3.0, class was deleted in r1722757
251 | ParamModifier=org.apache.jmeter.protocol.http.modifier.ParamModifier
252 | # removed in 3.0, class was deleted in r1722757
253 | ParamModifierGui=org.apache.jmeter.protocol.http.modifier.gui.ParamModifierGui
254 | PoissonRandomTimer=org.apache.jmeter.timers.PoissonRandomTimer
255 | PoissonRandomTimerGui=org.apache.jmeter.timers.gui.PoissonRandomTimerGui
256 | PropertyControlGui=org.apache.jmeter.visualizers.PropertyControlGui
257 | ProxyControl=org.apache.jmeter.protocol.http.proxy.ProxyControl
258 | ProxyControlGui=org.apache.jmeter.protocol.http.proxy.gui.ProxyControlGui
259 | PublisherSampler=org.apache.jmeter.protocol.jms.sampler.PublisherSampler
260 | RandomControlGui=org.apache.jmeter.control.gui.RandomControlGui
261 | RandomController=org.apache.jmeter.control.RandomController
262 | RandomOrderController=org.apache.jmeter.control.RandomOrderController
263 | RandomOrderControllerGui=org.apache.jmeter.control.gui.RandomOrderControllerGui
264 | RandomVariableConfig=org.apache.jmeter.config.RandomVariableConfig
265 | RecordController=org.apache.jmeter.protocol.http.control.gui.RecordController
266 | RecordingController=org.apache.jmeter.protocol.http.control.RecordingController
267 | # removed in r1039684, class was deleted in r580452
268 | ReflectionThreadGroup=org.apache.jmeter.threads.ReflectionThreadGroup
269 | RegexExtractor=org.apache.jmeter.extractor.RegexExtractor
270 | RegexExtractorGui=org.apache.jmeter.extractor.gui.RegexExtractorGui
271 | RegExUserParameters=org.apache.jmeter.protocol.http.modifier.RegExUserParameters
272 | RegExUserParametersGui=org.apache.jmeter.protocol.http.modifier.gui.RegExUserParametersGui
273 | RemoteListenerWrapper=org.apache.jmeter.samplers.RemoteListenerWrapper
274 | RemoteSampleListenerWrapper=org.apache.jmeter.samplers.RemoteSampleListenerWrapper
275 | RemoteTestListenerWrapper=org.apache.jmeter.samplers.RemoteTestListenerWrapper
276 | RemoteThreadsListenerWrapper=org.apache.jmeter.threads.RemoteThreadsListenerWrapper
277 | ResponseAssertion=org.apache.jmeter.assertions.ResponseAssertion
278 | RespTimeGraphVisualizer=org.apache.jmeter.visualizers.RespTimeGraphVisualizer
279 | ResultAction=org.apache.jmeter.reporters.ResultAction
280 | ResultActionGui=org.apache.jmeter.reporters.gui.ResultActionGui
281 | ResultCollector=org.apache.jmeter.reporters.ResultCollector
282 | ResultSaver=org.apache.jmeter.reporters.ResultSaver
283 | ResultSaverGui=org.apache.jmeter.reporters.gui.ResultSaverGui
284 | RunTime=org.apache.jmeter.control.RunTime
285 | RunTimeGui=org.apache.jmeter.control.gui.RunTimeGui
286 | SampleSaveConfiguration=org.apache.jmeter.samplers.SampleSaveConfiguration
287 | SampleTimeout=org.apache.jmeter.modifiers.SampleTimeout
288 | SampleTimeoutGui=org.apache.jmeter.modifiers.gui.SampleTimeoutGui
289 | SimpleConfigGui=org.apache.jmeter.config.gui.SimpleConfigGui
290 | SimpleDataWriter=org.apache.jmeter.visualizers.SimpleDataWriter
291 | SizeAssertion=org.apache.jmeter.assertions.SizeAssertion
292 | SizeAssertionGui=org.apache.jmeter.assertions.gui.SizeAssertionGui
293 | SMIMEAssertion=org.apache.jmeter.assertions.SMIMEAssertionTestElement
294 | SMIMEAssertionGui=org.apache.jmeter.assertions.gui.SMIMEAssertionGui
295 | SmtpSampler=org.apache.jmeter.protocol.smtp.sampler.SmtpSampler
296 | SmtpSamplerGui=org.apache.jmeter.protocol.smtp.sampler.gui.SmtpSamplerGui
297 |
298 | # removed in 3.2, class was deleted in r
299 | SoapSampler=org.apache.jmeter.protocol.http.sampler.SoapSampler
300 | # removed in 3.2, class was deleted in r
301 | SoapSamplerGui=org.apache.jmeter.protocol.http.control.gui.SoapSamplerGui
302 |
303 | # removed in 3.1, class was deleted in r1763837
304 | SplineVisualizer=org.apache.jmeter.visualizers.SplineVisualizer
305 | # Originally deleted in r397955 as class is obsolete; needed for compat.
306 | SqlConfigGui=org.apache.jmeter.protocol.jdbc.config.gui.SqlConfigGui
307 | StaticHost=org.apache.jmeter.protocol.http.control.StaticHost
308 | StatGraphVisualizer=org.apache.jmeter.visualizers.StatGraphVisualizer
309 | StatVisualizer=org.apache.jmeter.visualizers.StatVisualizer
310 | SubscriberSampler=org.apache.jmeter.protocol.jms.sampler.SubscriberSampler
311 | SubstitutionElement=org.apache.jmeter.assertions.SubstitutionElement
312 | Summariser=org.apache.jmeter.reporters.Summariser
313 | SummariserGui=org.apache.jmeter.reporters.gui.SummariserGui
314 | SummaryReport=org.apache.jmeter.visualizers.SummaryReport
315 | SwitchController=org.apache.jmeter.control.SwitchController
316 | SwitchControllerGui=org.apache.jmeter.control.gui.SwitchControllerGui
317 | SyncTimer=org.apache.jmeter.timers.SyncTimer
318 | SystemSampler=org.apache.jmeter.protocol.system.SystemSampler
319 | SystemSamplerGui=org.apache.jmeter.protocol.system.gui.SystemSamplerGui
320 | TableVisualizer=org.apache.jmeter.visualizers.TableVisualizer
321 | TCPConfigGui=org.apache.jmeter.protocol.tcp.config.gui.TCPConfigGui
322 | TCPSampler=org.apache.jmeter.protocol.tcp.sampler.TCPSampler
323 | TCPSamplerGui=org.apache.jmeter.protocol.tcp.control.gui.TCPSamplerGui
324 | TestAction=org.apache.jmeter.sampler.TestAction
325 | TestActionGui=org.apache.jmeter.sampler.gui.TestActionGui
326 | TestBeanGUI=org.apache.jmeter.testbeans.gui.TestBeanGUI
327 | TestFragmentController=org.apache.jmeter.control.TestFragmentController
328 | TestFragmentControllerGui=org.apache.jmeter.control.gui.TestFragmentControllerGui
329 | TestPlan=org.apache.jmeter.testelement.TestPlan
330 | TestPlanGui=org.apache.jmeter.control.gui.TestPlanGui
331 | ThreadGroup=org.apache.jmeter.threads.ThreadGroup
332 | ThreadGroupGui=org.apache.jmeter.threads.gui.ThreadGroupGui
333 | PostThreadGroup=org.apache.jmeter.threads.PostThreadGroup
334 | PostThreadGroupGui=org.apache.jmeter.threads.gui.PostThreadGroupGui
335 | SetupThreadGroup=org.apache.jmeter.threads.SetupThreadGroup
336 | SetupThreadGroupGui=org.apache.jmeter.threads.gui.SetupThreadGroupGui
337 | ThroughputController=org.apache.jmeter.control.ThroughputController
338 | ThroughputControllerGui=org.apache.jmeter.control.gui.ThroughputControllerGui
339 | TransactionController=org.apache.jmeter.control.TransactionController
340 | TransactionControllerGui=org.apache.jmeter.control.gui.TransactionControllerGui
341 | TransactionSampler=org.apache.jmeter.control.TransactionSampler
342 | UniformRandomTimer=org.apache.jmeter.timers.UniformRandomTimer
343 | UniformRandomTimerGui=org.apache.jmeter.timers.gui.UniformRandomTimerGui
344 | URLRewritingModifier=org.apache.jmeter.protocol.http.modifier.URLRewritingModifier
345 | URLRewritingModifierGui=org.apache.jmeter.protocol.http.modifier.gui.URLRewritingModifierGui
346 | UserParameterModifier=org.apache.jmeter.protocol.http.modifier.UserParameterModifier
347 | UserParameterModifierGui=org.apache.jmeter.protocol.http.modifier.gui.UserParameterModifierGui
348 | UserParameters=org.apache.jmeter.modifiers.UserParameters
349 | UserParametersGui=org.apache.jmeter.modifiers.gui.UserParametersGui
350 | ViewResultsFullVisualizer=org.apache.jmeter.visualizers.ViewResultsFullVisualizer
351 | # removed in 3.0, class was deleted in r1722757
352 | WebServiceSampler=org.apache.jmeter.protocol.http.sampler.WebServiceSampler
353 | # removed in 3.0, class was deleted in r1722757
354 | WebServiceSamplerGui=org.apache.jmeter.protocol.http.control.gui.WebServiceSamplerGui
355 | WhileController=org.apache.jmeter.control.WhileController
356 | WhileControllerGui=org.apache.jmeter.control.gui.WhileControllerGui
357 | WorkBench=org.apache.jmeter.testelement.WorkBench
358 | WorkBenchGui=org.apache.jmeter.control.gui.WorkBenchGui
359 | XMLAssertion=org.apache.jmeter.assertions.XMLAssertion
360 | XMLAssertionGui=org.apache.jmeter.assertions.gui.XMLAssertionGui
361 | XMLSchemaAssertion=org.apache.jmeter.assertions.XMLSchemaAssertion
362 | XMLSchemaAssertionGUI=org.apache.jmeter.assertions.gui.XMLSchemaAssertionGUI
363 | XPathAssertion=org.apache.jmeter.assertions.XPathAssertion
364 | XPathAssertionGui=org.apache.jmeter.assertions.gui.XPathAssertionGui
365 | XPathExtractor=org.apache.jmeter.extractor.XPathExtractor
366 | XPathExtractorGui=org.apache.jmeter.extractor.gui.XPathExtractorGui
367 | #
368 | # Properties - all start with lower case letter and end with Prop
369 | #
370 | boolProp=org.apache.jmeter.testelement.property.BooleanProperty
371 | collectionProp=org.apache.jmeter.testelement.property.CollectionProperty
372 | doubleProp=org.apache.jmeter.testelement.property.DoubleProperty
373 | elementProp=org.apache.jmeter.testelement.property.TestElementProperty
374 | # see above - already defined as FloatProperty
375 | #floatProp=org.apache.jmeter.testelement.property.FloatProperty
376 | intProp=org.apache.jmeter.testelement.property.IntegerProperty
377 | longProp=org.apache.jmeter.testelement.property.LongProperty
378 | mapProp=org.apache.jmeter.testelement.property.MapProperty
379 | objProp=org.apache.jmeter.testelement.property.ObjectProperty
380 | stringProp=org.apache.jmeter.testelement.property.StringProperty
381 | #
382 | # Other - must start with a lower case letter (and not end with Prop)
383 | # (otherwise they could clash with the initial set of aliases)
384 | #
385 | hashTree=org.apache.jorphan.collections.ListedHashTree
386 | jmeterTestPlan=org.apache.jmeter.save.ScriptWrapper
387 | sample=org.apache.jmeter.samplers.SampleResult
388 | httpSample=org.apache.jmeter.protocol.http.sampler.HTTPSampleResult
389 | statSample=org.apache.jmeter.samplers.StatisticalSampleResult
390 | testResults=org.apache.jmeter.save.TestResultWrapper
391 | assertionResult=org.apache.jmeter.assertions.AssertionResult
392 |
393 | # removed in 3.2, class was deleted in r
394 | monitorStats=org.apache.jmeter.visualizers.MonitorStats
395 | sampleEvent=org.apache.jmeter.samplers.SampleEvent
396 | #
397 | # Converters to register. Must start line with '_'
398 | # If the converter is a collection of subitems, set equal to "collection"
399 | # If the converter needs to know the class mappings but is not a collection of
400 | # subitems, set it equal to "mapping"
401 | _org.apache.jmeter.protocol.http.sampler.HTTPSamplerBaseConverter=collection
402 | _org.apache.jmeter.protocol.http.util.HTTPResultConverter=collection
403 | _org.apache.jmeter.save.converters.BooleanPropertyConverter=
404 | _org.apache.jmeter.save.converters.IntegerPropertyConverter=
405 | _org.apache.jmeter.save.converters.LongPropertyConverter=
406 | _org.apache.jmeter.save.converters.MultiPropertyConverter=collection
407 | _org.apache.jmeter.save.converters.SampleEventConverter=
408 | _org.apache.jmeter.save.converters.SampleResultConverter=collection
409 | _org.apache.jmeter.save.converters.SampleSaveConfigurationConverter=collection
410 | _org.apache.jmeter.save.converters.StringPropertyConverter=
411 | _org.apache.jmeter.save.converters.HashTreeConverter=collection
412 | _org.apache.jmeter.save.converters.TestElementConverter=collection
413 | _org.apache.jmeter.save.converters.TestElementPropertyConverter=collection
414 | _org.apache.jmeter.save.converters.TestResultWrapperConverter=collection
415 | _org.apache.jmeter.save.ScriptWrapperConverter=mapping
416 | #
417 | # Remember to update the _version entry
418 | #
419 |
--------------------------------------------------------------------------------
/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 4.0.0
6 |
7 | loadium
8 | postman2jmx
9 | 0.2.8
10 |
11 |
12 |
13 | org.apache.logging.log4j
14 | log4j-slf4j-impl
15 | 2.10.0
16 |
17 |
18 | com.fasterxml.jackson.core
19 | jackson-databind
20 | 2.9.10.1
21 |
22 |
23 |
24 | org.apache.jmeter
25 | ApacheJMeter_http
26 | 4.0
27 |
28 |
29 | commons-math3
30 | commons-math3
31 |
32 |
33 | commons-pool2
34 | commons-pool2
35 |
36 |
37 | log4j
38 | *
39 |
40 |
41 | org.slf4j
42 | *
43 |
44 |
45 | org.codehaus.groovy
46 | groovy-all
47 |
48 |
49 | org.apache.poi
50 | poi-ooxml
51 |
52 |
53 | edu.ucar
54 | grib
55 |
56 |
57 | edu.ucar
58 | cdm
59 |
60 |
61 | xalan
62 | xalan
63 |
64 |
65 | org.apache.poi
66 | poi
67 |
68 |
69 | org.apache.pdfbox
70 | pdfbox
71 |
72 |
73 | org.bouncycastle
74 | bcprov-jdk15on
75 |
76 |
77 | com.fasterxml.jackson.core
78 | jackson-databind
79 |
80 |
81 |
82 | apache-xerces
83 | xercesImpl
84 |
85 |
86 | org.apache.commons
87 | commons-math3
88 |
89 |
90 | org.apache.poi
91 | poi-scratchpad
92 |
93 |
94 | org.freemarker
95 | freemarker
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 | org.apache.maven.plugins
107 | maven-compiler-plugin
108 | 3.7.0
109 |
110 | 1.8
111 | 1.8
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 | maven-resources-plugin
120 | 3.0.2
121 |
122 |
123 | copy-resources
124 | validate
125 |
126 | copy-resources
127 |
128 |
129 | ${basedir}/target/Postman2Jmx/jmeter
130 |
131 |
132 | jmeter
133 | true
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 | org.apache.maven.plugins
143 | maven-dependency-plugin
144 |
145 |
146 | copy-dependencies
147 | prepare-package
148 |
149 | copy-dependencies
150 |
151 |
152 | ${project.build.directory}/Postman2Jmx/lib
153 | false
154 | false
155 | true
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 | org.apache.maven.plugins
164 | maven-jar-plugin
165 |
166 |
167 |
168 | true
169 | lib/
170 | com.loadium.postman2jmx.app.Postman2Jmx
171 |
172 |
173 | .
174 |
175 |
176 |
177 | Postman2Jmx/Postman2Jmx
178 |
179 |
180 |
181 |
182 |
183 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/app/Postman2Jmx.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.app;
2 |
3 | import com.loadium.postman2jmx.builder.JmxFileBuilder;
4 | import com.loadium.postman2jmx.exception.InvalidArgumentsException;
5 | import com.loadium.postman2jmx.model.postman.PostmanCollection;
6 | import com.loadium.postman2jmx.parser.IParser;
7 | import com.loadium.postman2jmx.parser.ParserFactory;
8 | import com.loadium.postman2jmx.utils.CollectionVersion;
9 | import org.slf4j.Logger;
10 | import org.slf4j.LoggerFactory;
11 |
12 |
13 | public class Postman2Jmx {
14 |
15 | private static Logger logger = LoggerFactory.getLogger(Postman2Jmx.class.getName());
16 |
17 |
18 | public static void main(String[] args) {
19 |
20 | try {
21 | if (args.length != 2) {
22 | throw new InvalidArgumentsException();
23 | }
24 |
25 | String postmanCollectionJson = args[0];
26 | String jmxOutputFile = args[1];
27 |
28 | logger.info("Trying to parse postman collection file: {}", postmanCollectionJson);
29 | IParser parser = ParserFactory.getParser(CollectionVersion.V2);
30 | PostmanCollection postmanCollection = parser.parse(postmanCollectionJson);
31 | logger.info("Successfully parsed postman collection file: {}, Total parsed item count: {} ", postmanCollectionJson, postmanCollection.getItems().size());
32 |
33 | logger.info("Trying to build jmx file: {}", jmxOutputFile);
34 | JmxFileBuilder jmxFileBuilder = new JmxFileBuilder();
35 | jmxFileBuilder.build(postmanCollection, jmxOutputFile);
36 | logger.info("Successfully build jmx file: {} ", jmxOutputFile);
37 |
38 | } catch (Exception e) {
39 | logger.error("Error occurred!", e);
40 | }
41 | }
42 |
43 |
44 | }
45 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/builder/AbstractJmxBodyBuilder.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.builder;
2 |
3 | import com.loadium.postman2jmx.model.jmx.JmxHTTPSamplerProxy;
4 | import com.loadium.postman2jmx.model.postman.PostmanItem;
5 | import org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy;
6 | import org.slf4j.Logger;
7 | import org.slf4j.LoggerFactory;
8 |
9 | public abstract class AbstractJmxBodyBuilder implements IJmxBodyBuilder {
10 |
11 | @Override
12 | public HTTPSamplerProxy buildJmxBody(PostmanItem postmanItem) throws Exception {
13 | return JmxHTTPSamplerProxy.newInstance(postmanItem);
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/builder/AbstractJmxFileBuilder.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.builder;
2 |
3 | import com.loadium.postman2jmx.config.Postman2JmxConfig;
4 | import com.loadium.postman2jmx.exception.NoPostmanCollectionItemException;
5 | import com.loadium.postman2jmx.exception.NullPostmanCollectionException;
6 | import com.loadium.postman2jmx.model.jmx.*;
7 | import com.loadium.postman2jmx.model.postman.PostmanCollection;
8 | import com.loadium.postman2jmx.model.postman.PostmanItem;
9 | import org.apache.jmeter.control.LoopController;
10 | import org.apache.jmeter.extractor.json.jsonpath.JSONPostProcessor;
11 | import org.apache.jmeter.protocol.http.control.HeaderManager;
12 | import org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy;
13 | import org.apache.jmeter.save.SaveService;
14 | import org.apache.jmeter.testelement.TestPlan;
15 | import org.apache.jmeter.threads.ThreadGroup;
16 | import org.apache.jorphan.collections.HashTree;
17 | import org.apache.jorphan.collections.ListedHashTree;
18 |
19 | import java.io.*;
20 | import java.util.*;
21 |
22 | public abstract class AbstractJmxFileBuilder implements IJmxFileBuilder {
23 |
24 | protected JmxFile buildJmxFile(PostmanCollection postmanCollection, String jmxOutputFilePath) throws Exception {
25 | if (postmanCollection == null) {
26 | throw new NullPostmanCollectionException();
27 | }
28 |
29 | if (postmanCollection.getItems() == null || postmanCollection.getItems().isEmpty()) {
30 | throw new NoPostmanCollectionItemException();
31 | }
32 |
33 | Postman2JmxConfig config = new Postman2JmxConfig();
34 | config.setJMeterHome();
35 |
36 | // TestPlan
37 | TestPlan testPlan = JmxTestPlan.newInstance(postmanCollection.getInfo() != null ? postmanCollection.getInfo().getName() : "");
38 |
39 | // ThreadGroup controller
40 | LoopController loopController = JmxLoopController.newInstance();
41 |
42 | // ThreadGroup
43 | ThreadGroup threadGroup = JmxThreadGroup.newInstance(loopController);
44 |
45 | // HTTPSamplerProxy
46 | List httpSamplerProxies = new ArrayList<>();
47 | List headerManagers = new ArrayList<>();
48 |
49 | for (PostmanItem item : postmanCollection.getItems()) {
50 | /* if (!item.getEvent().isEmpty()) {
51 | continue;
52 | }*/
53 |
54 | removeEmptyQueries(item);
55 | IJmxBodyBuilder bodyBuilder = JmxBodyBuilderFactory.getJmxBodyBuilder(item);
56 | HTTPSamplerProxy httpSamplerProxy = bodyBuilder.buildJmxBody(item);
57 | httpSamplerProxies.add(httpSamplerProxy);
58 |
59 | headerManagers.add(JmxHeaderManager.newInstance(item.getRequest().getHeaders()));
60 | }
61 |
62 | // Create TestPlan hash tree
63 | HashTree testPlanHashTree = new ListedHashTree();
64 | testPlanHashTree.add(testPlan);
65 |
66 | // Add ThreadGroup to TestPlan hash tree
67 | HashTree threadGroupHashTree = new ListedHashTree();
68 | threadGroupHashTree = testPlanHashTree.add(testPlan, threadGroup);
69 |
70 | // Add Http Cookie Manager
71 | threadGroupHashTree.add(JmxCookieManager.newInstance());
72 |
73 | // Add Http Sampler to ThreadGroup hash tree
74 | HashTree httpSamplerHashTree = new ListedHashTree();
75 |
76 | // Add header manager hash tree
77 | HashTree headerHashTree = null;
78 |
79 | // Add Java Sampler to ThreadGroup hash tree
80 | for (int i = 0; i < httpSamplerProxies.size(); i++) {
81 | HTTPSamplerProxy httpSamplerProxy = httpSamplerProxies.get(i);
82 | HeaderManager headerManager = headerManagers.get(i);
83 |
84 | httpSamplerHashTree = threadGroupHashTree.add(httpSamplerProxy);
85 |
86 | headerHashTree = new HashTree();
87 | headerHashTree = httpSamplerHashTree.add(headerManager);
88 |
89 | PostmanItem postmanItem = postmanCollection.getItems().get(i);
90 | if (!postmanItem.getEvents().isEmpty()) {
91 | List jsonPostProcessors = JmxJsonPostProcessor.getJsonPostProcessors(postmanItem);
92 | httpSamplerHashTree.add(jsonPostProcessors);
93 | }
94 | }
95 |
96 | File file = new File(jmxOutputFilePath);
97 | OutputStream os = new FileOutputStream(file);
98 | SaveService.saveTree(testPlanHashTree, os);
99 |
100 | InputStream is = new FileInputStream(file);
101 | ByteArrayOutputStream bos = new ByteArrayOutputStream();
102 | byte[] buffer = new byte[1024];
103 |
104 | for (int len = 0; (len = is.read(buffer)) != -1; ) {
105 | bos.write(buffer, 0, len);
106 | }
107 | bos.flush();
108 |
109 | byte[] data = bos.toByteArray();
110 | JmxFile jmxFile = new JmxFile(data, testPlanHashTree);
111 |
112 | os.close();
113 | is.close();
114 | bos.close();
115 |
116 | return jmxFile;
117 | }
118 |
119 | private void removeEmptyQueries(PostmanItem item) {
120 | item.getRequest().getUrl().getQueries().removeIf(query -> Objects.equals(query.getKey(), "")
121 | || Objects.equals(query.getValue(), "") || Objects.equals(query.getKey(), null)
122 | || Objects.equals(query.getValue(), null) || Objects.equals(query.getKey(), " ")
123 | || Objects.equals(query.getValue(), " "));
124 | }
125 | }
126 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/builder/IJmxBodyBuilder.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.builder;
2 |
3 | import com.loadium.postman2jmx.model.postman.PostmanItem;
4 | import org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy;
5 |
6 | public interface IJmxBodyBuilder {
7 |
8 | HTTPSamplerProxy buildJmxBody(PostmanItem postmanItem) throws Exception;
9 | }
10 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/builder/IJmxFileBuilder.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.builder;
2 |
3 | import com.loadium.postman2jmx.model.postman.PostmanCollection;
4 | import com.loadium.postman2jmx.model.jmx.JmxFile;
5 |
6 | public interface IJmxFileBuilder {
7 |
8 | JmxFile build(PostmanCollection postmanCollection, String jmxOutputFilePath) throws Exception;
9 | }
10 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/builder/JmxBinaryBodyBuilder.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.builder;
2 |
3 | import com.loadium.postman2jmx.model.jmx.JmxHTTPSamplerProxy;
4 | import com.loadium.postman2jmx.model.postman.PostmanFileBody;
5 | import com.loadium.postman2jmx.model.postman.PostmanItem;
6 | import org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy;
7 | import org.apache.jmeter.protocol.http.util.HTTPFileArg;
8 |
9 | public class JmxBinaryBodyBuilder extends AbstractJmxBodyBuilder {
10 |
11 | @Override
12 | public HTTPSamplerProxy buildJmxBody(PostmanItem postmanItem) {
13 | HTTPSamplerProxy httpSamplerProxy = JmxHTTPSamplerProxy.newInstance(postmanItem);
14 | PostmanFileBody fileBody = postmanItem.getRequest().getBody().getFile();
15 |
16 | HTTPFileArg argument = new HTTPFileArg();
17 | argument.setPath(fileBody.getSrc() == null ? "" : fileBody.getSrc());
18 | argument.setParamName(" ");
19 | argument.setMimeType(" ");
20 |
21 | HTTPFileArg[] fileArgs = new HTTPFileArg[1];
22 | fileArgs[0] = argument;
23 |
24 | httpSamplerProxy.setHTTPFiles(fileArgs);
25 |
26 | return httpSamplerProxy;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/builder/JmxBodyBuilderFactory.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.builder;
2 |
3 | import com.loadium.postman2jmx.exception.UnsupportedJmxFileBuilderException;
4 | import com.loadium.postman2jmx.model.postman.PostmanItem;
5 | import com.loadium.postman2jmx.utils.ResponseBodyMode;
6 |
7 | public class JmxBodyBuilderFactory {
8 | private static JmxRawBodyBuilder jmxRawBodyFileBuilder;
9 | private static JmxFormDataBodyBuilder jmxFormDataBodyFileBuilder;
10 | private static JmxUrlEncodedBodyBuilder jmxUrlEncodedBodyFileBuilder;
11 | private static JmxBinaryBodyBuilder jmxBinaryBodyFileBuilder;
12 | private static JmxEmptyBodyBuilder jmxEmptyBodyBuilder;
13 |
14 |
15 | public static IJmxBodyBuilder getJmxBodyBuilder(PostmanItem postmanItem) throws UnsupportedJmxFileBuilderException {
16 | String responseBodyMode = null;
17 | if (postmanItem.getRequest().getBody() != null) {
18 | responseBodyMode = postmanItem.getRequest().getBody().getMode();
19 | }
20 |
21 | if (responseBodyMode == null || ResponseBodyMode.EMPTY.getMode().equals(responseBodyMode)) {
22 | if (jmxEmptyBodyBuilder == null) {
23 | jmxEmptyBodyBuilder = new JmxEmptyBodyBuilder();
24 | }
25 | return jmxEmptyBodyBuilder;
26 | }
27 |
28 | if (ResponseBodyMode.RAW.getMode().equals(responseBodyMode)) {
29 | if (jmxRawBodyFileBuilder == null) {
30 | jmxRawBodyFileBuilder = new JmxRawBodyBuilder();
31 | }
32 | return jmxRawBodyFileBuilder;
33 | } else if (ResponseBodyMode.FORM_DATA.getMode().equals(responseBodyMode)) {
34 | if (jmxFormDataBodyFileBuilder == null) {
35 | jmxFormDataBodyFileBuilder = new JmxFormDataBodyBuilder();
36 | }
37 | return jmxFormDataBodyFileBuilder;
38 | } else if (ResponseBodyMode.URL_ENCODED.getMode().equals(responseBodyMode)) {
39 | if (jmxUrlEncodedBodyFileBuilder == null) {
40 | jmxUrlEncodedBodyFileBuilder = new JmxUrlEncodedBodyBuilder();
41 | }
42 | return jmxUrlEncodedBodyFileBuilder;
43 | } else if (ResponseBodyMode.FILE.getMode().equals(responseBodyMode)) {
44 | if (jmxBinaryBodyFileBuilder == null) {
45 | jmxBinaryBodyFileBuilder = new JmxBinaryBodyBuilder();
46 | }
47 | return jmxBinaryBodyFileBuilder;
48 | } else {
49 | throw new UnsupportedJmxFileBuilderException("There is no Jxm builder for response body type: " + responseBodyMode);
50 | }
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/builder/JmxEmptyBodyBuilder.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.builder;
2 |
3 | import com.loadium.postman2jmx.model.jmx.JmxHTTPSamplerProxy;
4 | import com.loadium.postman2jmx.model.postman.PostmanItem;
5 | import org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy;
6 |
7 | public class JmxEmptyBodyBuilder extends AbstractJmxBodyBuilder {
8 |
9 | @Override
10 | public HTTPSamplerProxy buildJmxBody(PostmanItem postmanItem) throws Exception {
11 | return JmxHTTPSamplerProxy.newInstance(postmanItem);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/builder/JmxFileBuilder.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.builder;
2 |
3 | import com.loadium.postman2jmx.model.jmx.JmxFile;
4 | import com.loadium.postman2jmx.model.postman.PostmanCollection;
5 |
6 | public class JmxFileBuilder extends AbstractJmxFileBuilder {
7 |
8 | @Override
9 | public JmxFile build(PostmanCollection postmanCollection, String jmxOutputFilePath) throws Exception {
10 | return super.buildJmxFile(postmanCollection, jmxOutputFilePath);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/builder/JmxFormDataBodyBuilder.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.builder;
2 |
3 | import com.loadium.postman2jmx.model.jmx.JmxHTTPSamplerProxy;
4 | import com.loadium.postman2jmx.model.postman.PostmanFormDataBody;
5 | import com.loadium.postman2jmx.model.postman.PostmanItem;
6 | import com.loadium.postman2jmx.model.postman.PostmanRawBody;
7 | import org.apache.jmeter.config.Argument;
8 | import org.apache.jmeter.config.Arguments;
9 | import org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy;
10 | import org.apache.jmeter.protocol.http.util.HTTPArgument;
11 |
12 | import java.util.List;
13 |
14 | public class JmxFormDataBodyBuilder extends AbstractJmxBodyBuilder {
15 |
16 | @Override
17 | public HTTPSamplerProxy buildJmxBody(PostmanItem postmanItem) {
18 | HTTPSamplerProxy httpSamplerProxy = JmxHTTPSamplerProxy.newInstance(postmanItem);
19 |
20 | Arguments arguments = new Arguments();
21 | List formDataList = postmanItem.getRequest().getBody().getFormDataList();
22 |
23 | HTTPArgument argument;
24 | for(PostmanFormDataBody formData : formDataList) {
25 | argument = new HTTPArgument();
26 | argument.setEnabled(true);
27 | argument.setName(formData.getKey());
28 | argument.setValue(formData.getValue());
29 | argument.setMetaData("=");
30 | argument.setAlwaysEncoded(false);
31 | argument.setUseEquals(true);
32 | arguments.addArgument(argument);
33 | }
34 |
35 | httpSamplerProxy.setArguments(arguments);
36 | return httpSamplerProxy;
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/builder/JmxRawBodyBuilder.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.builder;
2 |
3 | import com.loadium.postman2jmx.model.jmx.JmxHTTPSamplerProxy;
4 | import com.loadium.postman2jmx.model.postman.PostmanItem;
5 | import com.loadium.postman2jmx.model.postman.PostmanRawBody;
6 | import com.loadium.postman2jmx.utils.ValueUtils;
7 | import org.apache.jmeter.config.Arguments;
8 | import org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy;
9 | import org.apache.jmeter.protocol.http.util.HTTPArgument;
10 |
11 | import javax.ws.rs.HttpMethod;
12 |
13 | public class JmxRawBodyBuilder extends AbstractJmxBodyBuilder {
14 |
15 | @Override
16 | public HTTPSamplerProxy buildJmxBody(PostmanItem postmanItem) {
17 |
18 | HTTPSamplerProxy httpSamplerProxy = JmxHTTPSamplerProxy.newInstance(postmanItem);
19 |
20 | if (HttpMethod.POST.equalsIgnoreCase(httpSamplerProxy.getMethod()) || HttpMethod.PUT.equalsIgnoreCase(httpSamplerProxy.getMethod()) || HttpMethod.DELETE.equalsIgnoreCase(httpSamplerProxy.getMethod())) {
21 | httpSamplerProxy.setPostBodyRaw(true);
22 | Arguments arguments = new Arguments();
23 | PostmanRawBody raw = postmanItem.getRequest().getBody().getRaw();
24 |
25 | if (raw.getValue() != null && !raw.getValue().isEmpty()) {
26 | HTTPArgument argument = new HTTPArgument();
27 | argument.setEnabled(true);
28 | argument.setAlwaysEncoded(false);
29 | argument.setMetaData("=");
30 | argument.setValue(ValueUtils.value(raw.getValue()));
31 | arguments.addArgument(argument);
32 | }
33 | httpSamplerProxy.setArguments(arguments);
34 | }
35 |
36 | return httpSamplerProxy;
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/builder/JmxUrlEncodedBodyBuilder.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.builder;
2 |
3 | import com.loadium.postman2jmx.model.jmx.JmxHTTPSamplerProxy;
4 | import com.loadium.postman2jmx.model.postman.PostmanItem;
5 | import com.loadium.postman2jmx.model.postman.PostmanUrlEncodedBody;
6 | import org.apache.jmeter.config.Arguments;
7 | import org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy;
8 | import org.apache.jmeter.protocol.http.util.HTTPArgument;
9 |
10 | import java.util.List;
11 |
12 | public class JmxUrlEncodedBodyBuilder extends AbstractJmxBodyBuilder {
13 |
14 | @Override
15 | public HTTPSamplerProxy buildJmxBody(PostmanItem postmanItem) throws Exception {
16 | HTTPSamplerProxy httpSamplerProxy = JmxHTTPSamplerProxy.newInstance(postmanItem);
17 |
18 | Arguments arguments = new Arguments();
19 | List urlEncodes = postmanItem.getRequest().getBody().getUrlEncodes();
20 |
21 | HTTPArgument argument;
22 | for (PostmanUrlEncodedBody urlEncode : urlEncodes) {
23 | argument = new HTTPArgument();
24 | argument.setEnabled(true);
25 | argument.setName(urlEncode.getKey());
26 | argument.setValue(urlEncode.getValue());
27 | argument.setMetaData("=");
28 | argument.setAlwaysEncoded(false);
29 | argument.setUseEquals(true);
30 | arguments.addArgument(argument);
31 | }
32 |
33 | httpSamplerProxy.setArguments(arguments);
34 | return httpSamplerProxy;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/config/Postman2JmxConfig.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.config;
2 |
3 | import org.apache.jmeter.util.JMeterUtils;
4 |
5 | import java.io.File;
6 |
7 | public class Postman2JmxConfig {
8 |
9 | public void setJMeterHome() throws Exception {
10 | String path = new File("").getAbsolutePath();
11 | path = path + "/jmeter";
12 | JMeterUtils.setJMeterHome(path);
13 | }
14 |
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/config/jmeter/bin/saveservice.properties:
--------------------------------------------------------------------------------
1 | #---------------------------------------------------------
2 | # SAVESERVICE PROPERTIES - JMETER INTERNAL USE ONLY
3 | #---------------------------------------------------------
4 |
5 | ## Licensed to the Apache Software Foundation (ASF) under one or more
6 | ## contributor license agreements. See the NOTICE file distributed with
7 | ## this work for additional information regarding copyright ownership.
8 | ## The ASF licenses this file to You under the Apache License, Version 2.0
9 | ## (the "License"); you may not use this file except in compliance with
10 | ## the License. You may obtain a copy of the License at
11 | ##
12 | ## http://www.apache.org/licenses/LICENSE-2.0
13 | ##
14 | ## Unless required by applicable law or agreed to in writing, software
15 | ## distributed under the License is distributed on an "AS IS" BASIS,
16 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 | ## See the License for the specific language governing permissions and
18 | ## limitations under the License.
19 |
20 | # This file is used to define how XStream (de-)serializes classnames
21 | # in JMX test plan files.
22 |
23 | # FOR JMETER INTERNAL USE ONLY
24 |
25 | #---------------------------------------------------------
26 |
27 | # N.B. To ensure backward compatibility, please do NOT change or delete any entries
28 |
29 | # New entries can be added as necessary.
30 | #
31 | # Note that keys starting with an underscore are special,
32 | # and are not used as aliases.
33 | #
34 | # Please keep the entries in alphabetical order within the sections
35 | # to reduce the likelihood of duplicates
36 | #
37 | # version number of this file is now computed by a sha1 sum, so no need for
38 | # an explicit _file_version property anymore.
39 | #
40 | # For this sha1 sum we ignore every newline character. It can be computed
41 | # by the following command:
42 | #
43 | # cat bin/saveservice.properties | perl -ne 'chomp; print' | sha1sum
44 | #
45 | # Be aware, that every change in this file will change the sha1 sum!
46 | #
47 | # Conversion version (for JMX output files)
48 | # Must be updated if the file has been changed since the previous release
49 | # Format is:
50 | # Save service version=JMeter version at which change occurred
51 | # 1.7 = 2.1.1
52 | # 1.8 = 2.1.2
53 | # (Some version updates were missed here...)
54 | # 2.0 = 2.3.1
55 | # 2.1 = 2.3.2
56 | # (Some version updates were missed here...)
57 | # 2.2 = 2.6
58 | # 2.3 = 2.7
59 | # 2.4 = 2.9
60 | # 2.5 = 2.10
61 | # 2.6 = 2.11
62 | # 2.7 = 2.12
63 | # 2.8 = 2.13
64 | # 2.9 = 2.14
65 | # 3.1 = 3.1
66 | # 3.2 = 3.2
67 | # 3.4 = 3.4
68 | _version=4.0
69 | #
70 | #
71 | # Character set encoding used to read and write JMeter XML files and CSV results
72 | #
73 | _file_encoding=UTF-8
74 | #
75 | #---------------------------------------------------------
76 | #
77 | # The following properties are used to create aliases
78 | # [Must all start with capital letter]
79 | #
80 | AccessLogSampler=org.apache.jmeter.protocol.http.sampler.AccessLogSampler
81 | AjpSampler=org.apache.jmeter.protocol.http.sampler.AjpSampler
82 | AjpSamplerGui=org.apache.jmeter.protocol.http.control.gui.AjpSamplerGui
83 | AnchorModifier=org.apache.jmeter.protocol.http.modifier.AnchorModifier
84 | AnchorModifierGui=org.apache.jmeter.protocol.http.modifier.gui.AnchorModifierGui
85 | Argument=org.apache.jmeter.config.Argument
86 | Arguments=org.apache.jmeter.config.Arguments
87 | ArgumentsPanel=org.apache.jmeter.config.gui.ArgumentsPanel
88 | AssertionGui=org.apache.jmeter.assertions.gui.AssertionGui
89 | AssertionVisualizer=org.apache.jmeter.visualizers.AssertionVisualizer
90 | AuthManager=org.apache.jmeter.protocol.http.control.AuthManager
91 | Authorization=org.apache.jmeter.protocol.http.control.Authorization
92 | AuthPanel=org.apache.jmeter.protocol.http.gui.AuthPanel
93 | BackendListener=org.apache.jmeter.visualizers.backend.BackendListener
94 | BackendListenerGui=org.apache.jmeter.visualizers.backend.BackendListenerGui
95 | BeanShellAssertion=org.apache.jmeter.assertions.BeanShellAssertion
96 | BeanShellAssertionGui=org.apache.jmeter.assertions.gui.BeanShellAssertionGui
97 | BeanShellListener=org.apache.jmeter.visualizers.BeanShellListener
98 | BeanShellPostProcessor=org.apache.jmeter.extractor.BeanShellPostProcessor
99 | BeanShellPreProcessor=org.apache.jmeter.modifiers.BeanShellPreProcessor
100 | BeanShellSampler=org.apache.jmeter.protocol.java.sampler.BeanShellSampler
101 | BeanShellSamplerGui=org.apache.jmeter.protocol.java.control.gui.BeanShellSamplerGui
102 | BeanShellTimer=org.apache.jmeter.timers.BeanShellTimer
103 | BoundaryExtractor=org.apache.jmeter.extractor.BoundaryExtractor
104 | BoundaryExtractorGui=org.apache.jmeter.extractor.gui.BoundaryExtractorGui
105 | BSFAssertion=org.apache.jmeter.assertions.BSFAssertion
106 | BSFListener=org.apache.jmeter.visualizers.BSFListener
107 | BSFPreProcessor=org.apache.jmeter.modifiers.BSFPreProcessor
108 | BSFPostProcessor=org.apache.jmeter.extractor.BSFPostProcessor
109 | BSFSampler=org.apache.jmeter.protocol.java.sampler.BSFSampler
110 | BSFSamplerGui=org.apache.jmeter.protocol.java.control.gui.BSFSamplerGui
111 | BSFTimer=org.apache.jmeter.timers.BSFTimer
112 | CacheManager=org.apache.jmeter.protocol.http.control.CacheManager
113 | CacheManagerGui=org.apache.jmeter.protocol.http.gui.CacheManagerGui
114 | CompareAssertion=org.apache.jmeter.assertions.CompareAssertion
115 | ComparisonVisualizer=org.apache.jmeter.visualizers.ComparisonVisualizer
116 | ConfigTestElement=org.apache.jmeter.config.ConfigTestElement
117 | ConstantThroughputTimer=org.apache.jmeter.timers.ConstantThroughputTimer
118 | ConstantTimer=org.apache.jmeter.timers.ConstantTimer
119 | ConstantTimerGui=org.apache.jmeter.timers.gui.ConstantTimerGui
120 | Cookie=org.apache.jmeter.protocol.http.control.Cookie
121 | CookieManager=org.apache.jmeter.protocol.http.control.CookieManager
122 | CookiePanel=org.apache.jmeter.protocol.http.gui.CookiePanel
123 | CounterConfig=org.apache.jmeter.modifiers.CounterConfig
124 | CriticalSectionController=org.apache.jmeter.control.CriticalSectionController
125 | CriticalSectionControllerGui=org.apache.jmeter.control.gui.CriticalSectionControllerGui
126 | CounterConfigGui=org.apache.jmeter.modifiers.gui.CounterConfigGui
127 | CSVDataSet=org.apache.jmeter.config.CSVDataSet
128 | DebugPostProcessor=org.apache.jmeter.extractor.DebugPostProcessor
129 | DebugSampler=org.apache.jmeter.sampler.DebugSampler
130 | # removed in 3.1, class was deleted in r1763837
131 | DistributionGraphVisualizer=org.apache.jmeter.visualizers.DistributionGraphVisualizer
132 | DNSCacheManager=org.apache.jmeter.protocol.http.control.DNSCacheManager
133 | DNSCachePanel=org.apache.jmeter.protocol.http.gui.DNSCachePanel
134 | DurationAssertion=org.apache.jmeter.assertions.DurationAssertion
135 | DurationAssertionGui=org.apache.jmeter.assertions.gui.DurationAssertionGui
136 | PreciseThroughputTimer=org.apache.jmeter.timers.poissonarrivals.PreciseThroughputTimer
137 | # Should really have been defined as floatProp to agree with other properties
138 | # No point changing this now
139 | FloatProperty=org.apache.jmeter.testelement.property.FloatProperty
140 | ForeachController=org.apache.jmeter.control.ForeachController
141 | ForeachControlPanel=org.apache.jmeter.control.gui.ForeachControlPanel
142 | FtpConfigGui=org.apache.jmeter.protocol.ftp.config.gui.FtpConfigGui
143 | FTPSampler=org.apache.jmeter.protocol.ftp.sampler.FTPSampler
144 | FtpTestSamplerGui=org.apache.jmeter.protocol.ftp.control.gui.FtpTestSamplerGui
145 | GaussianRandomTimer=org.apache.jmeter.timers.GaussianRandomTimer
146 | GaussianRandomTimerGui=org.apache.jmeter.timers.gui.GaussianRandomTimerGui
147 | GenericController=org.apache.jmeter.control.GenericController
148 | GraphAccumVisualizer=org.apache.jmeter.visualizers.GraphAccumVisualizer
149 | GraphVisualizer=org.apache.jmeter.visualizers.GraphVisualizer
150 | Header=org.apache.jmeter.protocol.http.control.Header
151 | HeaderManager=org.apache.jmeter.protocol.http.control.HeaderManager
152 | HeaderPanel=org.apache.jmeter.protocol.http.gui.HeaderPanel
153 | HTMLAssertion=org.apache.jmeter.assertions.HTMLAssertion
154 | HTMLAssertionGui=org.apache.jmeter.assertions.gui.HTMLAssertionGui
155 | HTTPArgument=org.apache.jmeter.protocol.http.util.HTTPArgument
156 | HTTPArgumentsPanel=org.apache.jmeter.protocol.http.gui.HTTPArgumentsPanel
157 | HTTPFileArg=org.apache.jmeter.protocol.http.util.HTTPFileArg
158 | HTTPFileArgs=org.apache.jmeter.protocol.http.util.HTTPFileArgs
159 | HttpDefaultsGui=org.apache.jmeter.protocol.http.config.gui.HttpDefaultsGui
160 | HtmlExtractor=org.apache.jmeter.extractor.HtmlExtractor
161 | HtmlExtractorGui=org.apache.jmeter.extractor.gui.HtmlExtractorGui
162 | # removed in r1039684, probably not released. Not present in r322831 or since.
163 | #HttpGenericSampler=org.apache.jmeter.protocol.http.sampler.HttpGenericSampler
164 | # removed in r1039684, probably not released. Not present in r322831 or since.
165 | #HttpGenericSamplerGui=org.apache.jmeter.protocol.http.control.gui.HttpGenericSamplerGui
166 | HttpMirrorControl=org.apache.jmeter.protocol.http.control.HttpMirrorControl
167 | HttpMirrorControlGui=org.apache.jmeter.protocol.http.control.gui.HttpMirrorControlGui
168 | # r397955 - removed test class. Keep as commented entry for info only.
169 | #HTTPNullSampler=org.apache.jmeter.protocol.http.sampler.HTTPNullSampler
170 | # Merge previous 2 HTTP samplers into one
171 | HTTPSampler_=org.apache.jmeter.protocol.http.sampler.HTTPSampler
172 | HTTPSampler2_=org.apache.jmeter.protocol.http.sampler.HTTPSampler2
173 | HTTPSamplerProxy,HTTPSampler,HTTPSampler2=org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy
174 | # Merge GUIs
175 | HttpTestSampleGui,HttpTestSampleGui2=org.apache.jmeter.protocol.http.control.gui.HttpTestSampleGui
176 | #HttpTestSampleGui2=org.apache.jmeter.protocol.http.control.gui.HttpTestSampleGui2
177 | IfController=org.apache.jmeter.control.IfController
178 | IfControllerPanel=org.apache.jmeter.control.gui.IfControllerPanel
179 | IncludeController=org.apache.jmeter.control.IncludeController
180 | IncludeControllerGui=org.apache.jmeter.control.gui.IncludeControllerGui
181 | InterleaveControl=org.apache.jmeter.control.InterleaveControl
182 | InterleaveControlGui=org.apache.jmeter.control.gui.InterleaveControlGui
183 | JavaConfig=org.apache.jmeter.protocol.java.config.JavaConfig
184 | JavaConfigGui=org.apache.jmeter.protocol.java.config.gui.JavaConfigGui
185 | JavaSampler=org.apache.jmeter.protocol.java.sampler.JavaSampler
186 | JavaTest=org.apache.jmeter.protocol.java.test.JavaTest
187 | JavaTestSamplerGui=org.apache.jmeter.protocol.java.control.gui.JavaTestSamplerGui
188 | JDBCDataSource=org.apache.jmeter.protocol.jdbc.config.DataSourceElement
189 | JDBCPostProcessor=org.apache.jmeter.protocol.jdbc.processor.JDBCPostProcessor
190 | JDBCPreProcessor=org.apache.jmeter.protocol.jdbc.processor.JDBCPreProcessor
191 | JDBCSampler=org.apache.jmeter.protocol.jdbc.sampler.JDBCSampler
192 | # Renamed to JMSSamplerGui; keep original entry for backwards compatibility
193 | JMSConfigGui=org.apache.jmeter.protocol.jms.control.gui.JMSConfigGui
194 | JMSProperties=org.apache.jmeter.protocol.jms.sampler.JMSProperties
195 | JMSProperty=org.apache.jmeter.protocol.jms.sampler.JMSProperty
196 | JMSPublisherGui=org.apache.jmeter.protocol.jms.control.gui.JMSPublisherGui
197 | JMSSampler=org.apache.jmeter.protocol.jms.sampler.JMSSampler
198 | JMSSamplerGui=org.apache.jmeter.protocol.jms.control.gui.JMSSamplerGui
199 | JMSSubscriberGui=org.apache.jmeter.protocol.jms.control.gui.JMSSubscriberGui
200 | JSONPathAssertion=org.apache.jmeter.assertions.JSONPathAssertion
201 | JSONPathAssertionGui=org.apache.jmeter.assertions.gui.JSONPathAssertionGui
202 | JSONPostProcessor=org.apache.jmeter.extractor.json.jsonpath.JSONPostProcessor
203 | JSONPostProcessorGui=org.apache.jmeter.extractor.json.jsonpath.gui.JSONPostProcessorGui
204 | # Removed in r545311 as Jndi no longer present; keep for compat.
205 | JndiDefaultsGui=org.apache.jmeter.protocol.jms.control.gui.JndiDefaultsGui
206 | JSR223Assertion=org.apache.jmeter.assertions.JSR223Assertion
207 | JSR223Listener=org.apache.jmeter.visualizers.JSR223Listener
208 | JSR223PostProcessor=org.apache.jmeter.extractor.JSR223PostProcessor
209 | JSR223PreProcessor=org.apache.jmeter.modifiers.JSR223PreProcessor
210 | JSR223Sampler=org.apache.jmeter.protocol.java.sampler.JSR223Sampler
211 | JSR223Timer=org.apache.jmeter.timers.JSR223Timer
212 | JUnitSampler=org.apache.jmeter.protocol.java.sampler.JUnitSampler
213 | JUnitTestSamplerGui=org.apache.jmeter.protocol.java.control.gui.JUnitTestSamplerGui
214 | KeystoreConfig=org.apache.jmeter.config.KeystoreConfig
215 | LDAPArgument=org.apache.jmeter.protocol.ldap.config.gui.LDAPArgument
216 | LDAPArguments=org.apache.jmeter.protocol.ldap.config.gui.LDAPArguments
217 | LDAPArgumentsPanel=org.apache.jmeter.protocol.ldap.config.gui.LDAPArgumentsPanel
218 | LdapConfigGui=org.apache.jmeter.protocol.ldap.config.gui.LdapConfigGui
219 | LdapExtConfigGui=org.apache.jmeter.protocol.ldap.config.gui.LdapExtConfigGui
220 | LDAPExtSampler=org.apache.jmeter.protocol.ldap.sampler.LDAPExtSampler
221 | LdapExtTestSamplerGui=org.apache.jmeter.protocol.ldap.control.gui.LdapExtTestSamplerGui
222 | LDAPSampler=org.apache.jmeter.protocol.ldap.sampler.LDAPSampler
223 | LdapTestSamplerGui=org.apache.jmeter.protocol.ldap.control.gui.LdapTestSamplerGui
224 | LogicControllerGui=org.apache.jmeter.control.gui.LogicControllerGui
225 | LoginConfig=org.apache.jmeter.config.LoginConfig
226 | LoginConfigGui=org.apache.jmeter.config.gui.LoginConfigGui
227 | LoopController=org.apache.jmeter.control.LoopController
228 | LoopControlPanel=org.apache.jmeter.control.gui.LoopControlPanel
229 | MailerModel=org.apache.jmeter.reporters.MailerModel
230 | MailerResultCollector=org.apache.jmeter.reporters.MailerResultCollector
231 | MailerVisualizer=org.apache.jmeter.visualizers.MailerVisualizer
232 | MailReaderSampler=org.apache.jmeter.protocol.mail.sampler.MailReaderSampler
233 | MailReaderSamplerGui=org.apache.jmeter.protocol.mail.sampler.gui.MailReaderSamplerGui
234 | MD5HexAssertion=org.apache.jmeter.assertions.MD5HexAssertion
235 | MD5HexAssertionGUI=org.apache.jmeter.assertions.gui.MD5HexAssertionGUI
236 | ModuleController=org.apache.jmeter.control.ModuleController
237 | ModuleControllerGui=org.apache.jmeter.control.gui.ModuleControllerGui
238 | MongoScriptSampler=org.apache.jmeter.protocol.mongodb.sampler.MongoScriptSampler
239 | MongoSourceElement=org.apache.jmeter.protocol.mongodb.config.MongoSourceElement
240 |
241 | # removed in 3.2, class was deleted in r
242 | MonitorHealthVisualizer=org.apache.jmeter.visualizers.MonitorHealthVisualizer
243 |
244 | NamePanel=org.apache.jmeter.gui.NamePanel
245 | ObsoleteGui=org.apache.jmeter.config.gui.ObsoleteGui
246 | OnceOnlyController=org.apache.jmeter.control.OnceOnlyController
247 | OnceOnlyControllerGui=org.apache.jmeter.control.gui.OnceOnlyControllerGui
248 | # removed in 3.0, class was deleted in r1722962
249 | ParamMask=org.apache.jmeter.protocol.http.modifier.ParamMask
250 | # removed in 3.0, class was deleted in r1722757
251 | ParamModifier=org.apache.jmeter.protocol.http.modifier.ParamModifier
252 | # removed in 3.0, class was deleted in r1722757
253 | ParamModifierGui=org.apache.jmeter.protocol.http.modifier.gui.ParamModifierGui
254 | PoissonRandomTimer=org.apache.jmeter.timers.PoissonRandomTimer
255 | PoissonRandomTimerGui=org.apache.jmeter.timers.gui.PoissonRandomTimerGui
256 | PropertyControlGui=org.apache.jmeter.visualizers.PropertyControlGui
257 | ProxyControl=org.apache.jmeter.protocol.http.proxy.ProxyControl
258 | ProxyControlGui=org.apache.jmeter.protocol.http.proxy.gui.ProxyControlGui
259 | PublisherSampler=org.apache.jmeter.protocol.jms.sampler.PublisherSampler
260 | RandomControlGui=org.apache.jmeter.control.gui.RandomControlGui
261 | RandomController=org.apache.jmeter.control.RandomController
262 | RandomOrderController=org.apache.jmeter.control.RandomOrderController
263 | RandomOrderControllerGui=org.apache.jmeter.control.gui.RandomOrderControllerGui
264 | RandomVariableConfig=org.apache.jmeter.config.RandomVariableConfig
265 | RecordController=org.apache.jmeter.protocol.http.control.gui.RecordController
266 | RecordingController=org.apache.jmeter.protocol.http.control.RecordingController
267 | # removed in r1039684, class was deleted in r580452
268 | ReflectionThreadGroup=org.apache.jmeter.threads.ReflectionThreadGroup
269 | RegexExtractor=org.apache.jmeter.extractor.RegexExtractor
270 | RegexExtractorGui=org.apache.jmeter.extractor.gui.RegexExtractorGui
271 | RegExUserParameters=org.apache.jmeter.protocol.http.modifier.RegExUserParameters
272 | RegExUserParametersGui=org.apache.jmeter.protocol.http.modifier.gui.RegExUserParametersGui
273 | RemoteListenerWrapper=org.apache.jmeter.samplers.RemoteListenerWrapper
274 | RemoteSampleListenerWrapper=org.apache.jmeter.samplers.RemoteSampleListenerWrapper
275 | RemoteTestListenerWrapper=org.apache.jmeter.samplers.RemoteTestListenerWrapper
276 | RemoteThreadsListenerWrapper=org.apache.jmeter.threads.RemoteThreadsListenerWrapper
277 | ResponseAssertion=org.apache.jmeter.assertions.ResponseAssertion
278 | RespTimeGraphVisualizer=org.apache.jmeter.visualizers.RespTimeGraphVisualizer
279 | ResultAction=org.apache.jmeter.reporters.ResultAction
280 | ResultActionGui=org.apache.jmeter.reporters.gui.ResultActionGui
281 | ResultCollector=org.apache.jmeter.reporters.ResultCollector
282 | ResultSaver=org.apache.jmeter.reporters.ResultSaver
283 | ResultSaverGui=org.apache.jmeter.reporters.gui.ResultSaverGui
284 | RunTime=org.apache.jmeter.control.RunTime
285 | RunTimeGui=org.apache.jmeter.control.gui.RunTimeGui
286 | SampleSaveConfiguration=org.apache.jmeter.samplers.SampleSaveConfiguration
287 | SampleTimeout=org.apache.jmeter.modifiers.SampleTimeout
288 | SampleTimeoutGui=org.apache.jmeter.modifiers.gui.SampleTimeoutGui
289 | SimpleConfigGui=org.apache.jmeter.config.gui.SimpleConfigGui
290 | SimpleDataWriter=org.apache.jmeter.visualizers.SimpleDataWriter
291 | SizeAssertion=org.apache.jmeter.assertions.SizeAssertion
292 | SizeAssertionGui=org.apache.jmeter.assertions.gui.SizeAssertionGui
293 | SMIMEAssertion=org.apache.jmeter.assertions.SMIMEAssertionTestElement
294 | SMIMEAssertionGui=org.apache.jmeter.assertions.gui.SMIMEAssertionGui
295 | SmtpSampler=org.apache.jmeter.protocol.smtp.sampler.SmtpSampler
296 | SmtpSamplerGui=org.apache.jmeter.protocol.smtp.sampler.gui.SmtpSamplerGui
297 |
298 | # removed in 3.2, class was deleted in r
299 | SoapSampler=org.apache.jmeter.protocol.http.sampler.SoapSampler
300 | # removed in 3.2, class was deleted in r
301 | SoapSamplerGui=org.apache.jmeter.protocol.http.control.gui.SoapSamplerGui
302 |
303 | # removed in 3.1, class was deleted in r1763837
304 | SplineVisualizer=org.apache.jmeter.visualizers.SplineVisualizer
305 | # Originally deleted in r397955 as class is obsolete; needed for compat.
306 | SqlConfigGui=org.apache.jmeter.protocol.jdbc.config.gui.SqlConfigGui
307 | StaticHost=org.apache.jmeter.protocol.http.control.StaticHost
308 | StatGraphVisualizer=org.apache.jmeter.visualizers.StatGraphVisualizer
309 | StatVisualizer=org.apache.jmeter.visualizers.StatVisualizer
310 | SubscriberSampler=org.apache.jmeter.protocol.jms.sampler.SubscriberSampler
311 | SubstitutionElement=org.apache.jmeter.assertions.SubstitutionElement
312 | Summariser=org.apache.jmeter.reporters.Summariser
313 | SummariserGui=org.apache.jmeter.reporters.gui.SummariserGui
314 | SummaryReport=org.apache.jmeter.visualizers.SummaryReport
315 | SwitchController=org.apache.jmeter.control.SwitchController
316 | SwitchControllerGui=org.apache.jmeter.control.gui.SwitchControllerGui
317 | SyncTimer=org.apache.jmeter.timers.SyncTimer
318 | SystemSampler=org.apache.jmeter.protocol.system.SystemSampler
319 | SystemSamplerGui=org.apache.jmeter.protocol.system.gui.SystemSamplerGui
320 | TableVisualizer=org.apache.jmeter.visualizers.TableVisualizer
321 | TCPConfigGui=org.apache.jmeter.protocol.tcp.config.gui.TCPConfigGui
322 | TCPSampler=org.apache.jmeter.protocol.tcp.sampler.TCPSampler
323 | TCPSamplerGui=org.apache.jmeter.protocol.tcp.control.gui.TCPSamplerGui
324 | TestAction=org.apache.jmeter.sampler.TestAction
325 | TestActionGui=org.apache.jmeter.sampler.gui.TestActionGui
326 | TestBeanGUI=org.apache.jmeter.testbeans.gui.TestBeanGUI
327 | TestFragmentController=org.apache.jmeter.control.TestFragmentController
328 | TestFragmentControllerGui=org.apache.jmeter.control.gui.TestFragmentControllerGui
329 | TestPlan=org.apache.jmeter.testelement.TestPlan
330 | TestPlanGui=org.apache.jmeter.control.gui.TestPlanGui
331 | ThreadGroup=org.apache.jmeter.threads.ThreadGroup
332 | ThreadGroupGui=org.apache.jmeter.threads.gui.ThreadGroupGui
333 | PostThreadGroup=org.apache.jmeter.threads.PostThreadGroup
334 | PostThreadGroupGui=org.apache.jmeter.threads.gui.PostThreadGroupGui
335 | SetupThreadGroup=org.apache.jmeter.threads.SetupThreadGroup
336 | SetupThreadGroupGui=org.apache.jmeter.threads.gui.SetupThreadGroupGui
337 | ThroughputController=org.apache.jmeter.control.ThroughputController
338 | ThroughputControllerGui=org.apache.jmeter.control.gui.ThroughputControllerGui
339 | TransactionController=org.apache.jmeter.control.TransactionController
340 | TransactionControllerGui=org.apache.jmeter.control.gui.TransactionControllerGui
341 | TransactionSampler=org.apache.jmeter.control.TransactionSampler
342 | UniformRandomTimer=org.apache.jmeter.timers.UniformRandomTimer
343 | UniformRandomTimerGui=org.apache.jmeter.timers.gui.UniformRandomTimerGui
344 | URLRewritingModifier=org.apache.jmeter.protocol.http.modifier.URLRewritingModifier
345 | URLRewritingModifierGui=org.apache.jmeter.protocol.http.modifier.gui.URLRewritingModifierGui
346 | UserParameterModifier=org.apache.jmeter.protocol.http.modifier.UserParameterModifier
347 | UserParameterModifierGui=org.apache.jmeter.protocol.http.modifier.gui.UserParameterModifierGui
348 | UserParameters=org.apache.jmeter.modifiers.UserParameters
349 | UserParametersGui=org.apache.jmeter.modifiers.gui.UserParametersGui
350 | ViewResultsFullVisualizer=org.apache.jmeter.visualizers.ViewResultsFullVisualizer
351 | # removed in 3.0, class was deleted in r1722757
352 | WebServiceSampler=org.apache.jmeter.protocol.http.sampler.WebServiceSampler
353 | # removed in 3.0, class was deleted in r1722757
354 | WebServiceSamplerGui=org.apache.jmeter.protocol.http.control.gui.WebServiceSamplerGui
355 | WhileController=org.apache.jmeter.control.WhileController
356 | WhileControllerGui=org.apache.jmeter.control.gui.WhileControllerGui
357 | WorkBench=org.apache.jmeter.testelement.WorkBench
358 | WorkBenchGui=org.apache.jmeter.control.gui.WorkBenchGui
359 | XMLAssertion=org.apache.jmeter.assertions.XMLAssertion
360 | XMLAssertionGui=org.apache.jmeter.assertions.gui.XMLAssertionGui
361 | XMLSchemaAssertion=org.apache.jmeter.assertions.XMLSchemaAssertion
362 | XMLSchemaAssertionGUI=org.apache.jmeter.assertions.gui.XMLSchemaAssertionGUI
363 | XPathAssertion=org.apache.jmeter.assertions.XPathAssertion
364 | XPathAssertionGui=org.apache.jmeter.assertions.gui.XPathAssertionGui
365 | XPathExtractor=org.apache.jmeter.extractor.XPathExtractor
366 | XPathExtractorGui=org.apache.jmeter.extractor.gui.XPathExtractorGui
367 | #
368 | # Properties - all start with lower case letter and end with Prop
369 | #
370 | boolProp=org.apache.jmeter.testelement.property.BooleanProperty
371 | collectionProp=org.apache.jmeter.testelement.property.CollectionProperty
372 | doubleProp=org.apache.jmeter.testelement.property.DoubleProperty
373 | elementProp=org.apache.jmeter.testelement.property.TestElementProperty
374 | # see above - already defined as FloatProperty
375 | #floatProp=org.apache.jmeter.testelement.property.FloatProperty
376 | intProp=org.apache.jmeter.testelement.property.IntegerProperty
377 | longProp=org.apache.jmeter.testelement.property.LongProperty
378 | mapProp=org.apache.jmeter.testelement.property.MapProperty
379 | objProp=org.apache.jmeter.testelement.property.ObjectProperty
380 | stringProp=org.apache.jmeter.testelement.property.StringProperty
381 | #
382 | # Other - must start with a lower case letter (and not end with Prop)
383 | # (otherwise they could clash with the initial set of aliases)
384 | #
385 | hashTree=org.apache.jorphan.collections.ListedHashTree
386 | jmeterTestPlan=org.apache.jmeter.save.ScriptWrapper
387 | sample=org.apache.jmeter.samplers.SampleResult
388 | httpSample=org.apache.jmeter.protocol.http.sampler.HTTPSampleResult
389 | statSample=org.apache.jmeter.samplers.StatisticalSampleResult
390 | testResults=org.apache.jmeter.save.TestResultWrapper
391 | assertionResult=org.apache.jmeter.assertions.AssertionResult
392 |
393 | # removed in 3.2, class was deleted in r
394 | monitorStats=org.apache.jmeter.visualizers.MonitorStats
395 | sampleEvent=org.apache.jmeter.samplers.SampleEvent
396 | #
397 | # Converters to register. Must start line with '_'
398 | # If the converter is a collection of subitems, set equal to "collection"
399 | # If the converter needs to know the class mappings but is not a collection of
400 | # subitems, set it equal to "mapping"
401 | _org.apache.jmeter.protocol.http.sampler.HTTPSamplerBaseConverter=collection
402 | _org.apache.jmeter.protocol.http.util.HTTPResultConverter=collection
403 | _org.apache.jmeter.save.converters.BooleanPropertyConverter=
404 | _org.apache.jmeter.save.converters.IntegerPropertyConverter=
405 | _org.apache.jmeter.save.converters.LongPropertyConverter=
406 | _org.apache.jmeter.save.converters.MultiPropertyConverter=collection
407 | _org.apache.jmeter.save.converters.SampleEventConverter=
408 | _org.apache.jmeter.save.converters.SampleResultConverter=collection
409 | _org.apache.jmeter.save.converters.SampleSaveConfigurationConverter=collection
410 | _org.apache.jmeter.save.converters.StringPropertyConverter=
411 | _org.apache.jmeter.save.converters.HashTreeConverter=collection
412 | _org.apache.jmeter.save.converters.TestElementConverter=collection
413 | _org.apache.jmeter.save.converters.TestElementPropertyConverter=collection
414 | _org.apache.jmeter.save.converters.TestResultWrapperConverter=collection
415 | _org.apache.jmeter.save.ScriptWrapperConverter=mapping
416 | #
417 | # Remember to update the _version entry
418 | #
419 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/exception/InvalidArgumentsException.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.exception;
2 |
3 | public class InvalidArgumentsException extends Exception {
4 | public InvalidArgumentsException() {
5 | super("Needs 2 args -- Postman collection json filepath and Jmx output file path!");
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/exception/NoPostmanCollectionItemException.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.exception;
2 |
3 | public class NoPostmanCollectionItemException extends Exception {
4 | public NoPostmanCollectionItemException() {
5 | super("There is no postman collection item! Please ensure that your postman file has been exported as Collection v2 or v2.1");
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/exception/NullPostmanCollectionException.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.exception;
2 |
3 | public class NullPostmanCollectionException extends Exception {
4 | public NullPostmanCollectionException() {
5 | super("Postman collection model can not be null! Please ensure that your postman file has been exported as Collection v2 or v2.1");
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/exception/UnsupportedJmxFileBuilderException.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.exception;
2 |
3 | public class UnsupportedJmxFileBuilderException extends Exception {
4 | public UnsupportedJmxFileBuilderException(String message) {
5 | super(message);
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/model/deserializer/ExecDeserializer.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.model.deserializer;
2 |
3 | import com.fasterxml.jackson.core.JsonParser;
4 | import com.fasterxml.jackson.core.JsonProcessingException;
5 | import com.fasterxml.jackson.core.JsonToken;
6 | import com.fasterxml.jackson.databind.DeserializationContext;
7 | import com.fasterxml.jackson.databind.JsonDeserializer;
8 | import com.fasterxml.jackson.databind.ObjectMapper;
9 |
10 | import java.io.IOException;
11 | import java.util.ArrayList;
12 | import java.util.List;
13 |
14 | public class ExecDeserializer extends JsonDeserializer {
15 |
16 | public ExecDeserializer() {}
17 |
18 | @Override
19 | public ExecDeserializer.ExecData deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
20 | ExecDeserializer.ExecData execData = new ExecDeserializer.ExecData();
21 | if (jsonParser.getCurrentToken() == JsonToken.VALUE_STRING) {
22 | execData.addValue(jsonParser.getValueAsString());
23 | } else if (jsonParser.getCurrentToken() == JsonToken.START_ARRAY) {
24 | ObjectMapper mapper = new ObjectMapper();
25 | List values = mapper.readValue(jsonParser, List.class);
26 | execData.setValues(values);
27 |
28 | }
29 | return execData;
30 | }
31 |
32 | public class ExecData {
33 | private List values = new ArrayList<>();
34 |
35 | public void addValue(String value) {
36 | this.values.add(value);
37 | }
38 |
39 | public List getValues() {
40 | return this.values;
41 | }
42 |
43 | public void setValues(List values) {
44 | this.values.addAll(values);
45 | }
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/model/jmx/JmxCookieManager.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.model.jmx;
2 |
3 | import org.apache.jmeter.protocol.http.control.CookieManager;
4 | import org.apache.jmeter.protocol.http.gui.CookiePanel;
5 | import org.apache.jmeter.testelement.TestElement;
6 |
7 | public class JmxCookieManager {
8 | public static CookieManager newInstance() {
9 | CookieManager cookieManager = new CookieManager();
10 | cookieManager.setProperty(TestElement.GUI_CLASS, CookiePanel.class.getName());
11 | cookieManager.setProperty(TestElement.TEST_CLASS, CookieManager.class.getName());
12 | cookieManager.setName("Cookie Manager");
13 | cookieManager.setEnabled(true);
14 | return cookieManager;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/model/jmx/JmxFile.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.model.jmx;
2 |
3 | import org.apache.jorphan.collections.HashTree;
4 |
5 | public class JmxFile {
6 | byte[] data;
7 | HashTree jmxTree;
8 |
9 | public JmxFile(byte[] data, HashTree jmxTree) {
10 | this.data = data;
11 | this.jmxTree = jmxTree;
12 | }
13 |
14 | public byte[] getData() {
15 | return data;
16 | }
17 |
18 | public void setData(byte[] data) {
19 | this.data = data;
20 | }
21 |
22 | public HashTree getJmxTree() {
23 | return jmxTree;
24 | }
25 |
26 | public void setJmxTree(HashTree jmxTree) {
27 | this.jmxTree = jmxTree;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/model/jmx/JmxHTTPSamplerProxy.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.model.jmx;
2 |
3 | import com.loadium.postman2jmx.model.postman.PostmanItem;
4 | import com.loadium.postman2jmx.model.postman.PostmanQuery;
5 | import com.loadium.postman2jmx.utils.UrlUtils;
6 | import org.apache.jmeter.config.Arguments;
7 | import org.apache.jmeter.protocol.http.control.gui.HttpTestSampleGui;
8 | import org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy;
9 | import org.apache.jmeter.protocol.http.util.HTTPArgument;
10 | import org.apache.jmeter.testelement.TestElement;
11 |
12 | import java.net.MalformedURLException;
13 | import java.net.URL;
14 |
15 | public class JmxHTTPSamplerProxy {
16 | public static HTTPSamplerProxy newInstance(PostmanItem postmanItem) {
17 | HTTPSamplerProxy httpSamplerProxy = new HTTPSamplerProxy();
18 | httpSamplerProxy.setProperty(TestElement.TEST_CLASS, HTTPSamplerProxy.class.getName());
19 | httpSamplerProxy.setProperty(TestElement.GUI_CLASS, HttpTestSampleGui.class.getName());
20 | httpSamplerProxy.setName(postmanItem.getName());
21 | httpSamplerProxy.setEnabled(true);
22 | httpSamplerProxy.setAutoRedirects(false);
23 | httpSamplerProxy.setFollowRedirects(true);
24 | httpSamplerProxy.setUseKeepAlive(true);
25 | httpSamplerProxy.setMonitor(false);
26 | httpSamplerProxy.setDoMultipartPost(false);
27 | httpSamplerProxy.setComment("");
28 | httpSamplerProxy.setConnectTimeout("");
29 | httpSamplerProxy.setResponseTimeout("");
30 | httpSamplerProxy.setEmbeddedUrlRE("");
31 | httpSamplerProxy.setContentEncoding("");
32 | httpSamplerProxy.setMethod(postmanItem.getRequest().getMethod());
33 |
34 |
35 | String rawUrl = postmanItem.getRequest().getUrl().getRaw();
36 |
37 | if (UrlUtils.isVariableUrl(rawUrl)) {
38 | String url = UrlUtils.getVariableUrl(rawUrl);
39 | String path = UrlUtils.getVariablePath(rawUrl);
40 | String protocol = UrlUtils.getVariableProtocol(rawUrl);
41 | int port = UrlUtils.getVariablePort(rawUrl);
42 |
43 | if (port != -1) {
44 | httpSamplerProxy.setPort(port);
45 | }
46 | if (protocol != null) {
47 | httpSamplerProxy.setProtocol(protocol);
48 | }
49 | httpSamplerProxy.setDomain(url);
50 | httpSamplerProxy.setPath(path);
51 | } else {
52 | URL url = null;
53 |
54 | try {
55 | url = UrlUtils.getUrl(rawUrl);
56 | } catch (MalformedURLException e) {
57 | e.printStackTrace();
58 | }
59 |
60 | String domain = UrlUtils.getDomain(url);
61 | int port = UrlUtils.getPort(url);
62 | String path = UrlUtils.getPath(url);
63 | String protocol = UrlUtils.getProtocol(url);
64 |
65 | httpSamplerProxy.setDomain(domain);
66 | httpSamplerProxy.setPath(path);
67 |
68 | if (port != -1) {
69 | httpSamplerProxy.setPort(port);
70 | }
71 | httpSamplerProxy.setProtocol(protocol);
72 | }
73 |
74 |
75 | Arguments arguments = new Arguments();
76 | HTTPArgument argument;
77 |
78 |
79 | for (PostmanQuery query : postmanItem.getRequest().getUrl().getQueries()) {
80 | argument = new HTTPArgument();
81 | argument.setName(query.getKey());
82 | argument.setValue(query.getValue());
83 | argument.setDescription(query.getKey());
84 | argument.setEnabled(true);
85 | argument.setMetaData("=");
86 | argument.setAlwaysEncoded(false);
87 | argument.setUseEquals(true);
88 | arguments.addArgument(argument);
89 | }
90 | httpSamplerProxy.setArguments(arguments);
91 |
92 | return httpSamplerProxy;
93 | }
94 | }
95 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/model/jmx/JmxHeaderManager.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.model.jmx;
2 |
3 | import com.loadium.postman2jmx.model.postman.PostmanHeader;
4 | import org.apache.jmeter.protocol.http.control.Header;
5 | import org.apache.jmeter.protocol.http.control.HeaderManager;
6 | import org.apache.jmeter.protocol.http.gui.HeaderPanel;
7 | import org.apache.jmeter.testelement.TestElement;
8 |
9 | import java.util.List;
10 |
11 | public class JmxHeaderManager {
12 | public static HeaderManager newInstance(List headers) {
13 | HeaderManager headerManager = new HeaderManager();
14 | headerManager.setProperty(TestElement.GUI_CLASS, HeaderPanel.class.getName());
15 | headerManager.setProperty(TestElement.TEST_CLASS, HeaderManager.class.getName());
16 | headerManager.setEnabled(true);
17 | headerManager.setName("HTTP Header Manager");
18 |
19 | for (PostmanHeader header : headers) {
20 |
21 | headerManager.add(new Header(header.getKey(), header.getValue()));
22 | }
23 |
24 | return headerManager;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/model/jmx/JmxJsonPostProcessor.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.model.jmx;
2 |
3 | import com.loadium.postman2jmx.model.postman.PostmanEvent;
4 | import com.loadium.postman2jmx.model.postman.PostmanItem;
5 | import org.apache.jmeter.extractor.json.jsonpath.JSONPostProcessor;
6 | import org.apache.jmeter.extractor.json.jsonpath.gui.JSONPostProcessorGui;
7 | import org.apache.jmeter.testelement.TestElement;
8 | import org.slf4j.Logger;
9 | import org.slf4j.LoggerFactory;
10 |
11 | import java.util.ArrayList;
12 | import java.util.List;
13 | import java.util.regex.Matcher;
14 | import java.util.regex.Pattern;
15 |
16 | public class JmxJsonPostProcessor {
17 | public static String FULL_RESPONSE_PATTERN = "responseBody";
18 | public static String CHILD_ELEMENT_PATTERN = "^(\\w+)\\.?(.*)$";
19 |
20 | private static Logger logger = LoggerFactory.getLogger(JmxJsonPostProcessor.class.getName());
21 |
22 | public static JSONPostProcessor newInstance(String name, String jsonPathExpression) {
23 | JSONPostProcessor jsonPostProcessor = new JSONPostProcessor();
24 | jsonPostProcessor.setProperty(TestElement.GUI_CLASS, JSONPostProcessorGui.class.getName());
25 | jsonPostProcessor.setProperty(TestElement.TEST_CLASS, JSONPostProcessor.class.getName());
26 | jsonPostProcessor.setEnabled(true);
27 | jsonPostProcessor.setName(name);
28 | jsonPostProcessor.setMatchNumbers("0");
29 | jsonPostProcessor.setRefNames(name);
30 | jsonPostProcessor.setJsonPathExpressions(jsonPathExpression);
31 |
32 | return jsonPostProcessor;
33 | }
34 |
35 | private static List getInstances(List variables, List varValues) {
36 | List jsonPostProcessors = new ArrayList<>();
37 | if (variables.size()!=varValues.size()) {
38 | logger.error("List of variables does not match the length of its values!");
39 | }
40 | for (int i=0; i getJsonPostProcessors(PostmanItem postmanItem) {
54 | List jsonPostProcessors = new ArrayList<>();
55 | for (PostmanEvent event : postmanItem.getEvents()) {
56 | jsonPostProcessors.addAll(JmxJsonPostProcessor.getInstances(event.getVariables(), event.getVariableValues()));
57 | }
58 | return jsonPostProcessors;
59 | }
60 |
61 | public static String getPathExpression(String postmanExpr) {
62 | Matcher m;
63 | m = Pattern.compile(FULL_RESPONSE_PATTERN).matcher(postmanExpr);
64 | if (m.find()) {
65 | return "$";
66 | }
67 | m = Pattern.compile(CHILD_ELEMENT_PATTERN).matcher(postmanExpr);
68 | if (m.find()) {
69 | return m.group(2);
70 | }
71 | logger.warn("No pattern for Postman variable assignment found - skip proper translation...");
72 | return postmanExpr.replace("\"", ""); // TODO: fallback only - should not happen!
73 | }
74 | }
75 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/model/jmx/JmxLoopController.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.model.jmx;
2 |
3 | import org.apache.jmeter.control.LoopController;
4 | import org.apache.jmeter.control.gui.LoopControlPanel;
5 | import org.apache.jmeter.testelement.TestElement;
6 |
7 | public class JmxLoopController {
8 |
9 | public static LoopController newInstance() {
10 | LoopController loopController = new LoopController();
11 | loopController.setEnabled(true);
12 | loopController.setLoops(1);
13 | loopController.setProperty(TestElement.TEST_CLASS, LoopController.class.getName());
14 | loopController.setProperty(TestElement.GUI_CLASS, LoopControlPanel.class.getName());
15 |
16 | return loopController;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/model/jmx/JmxTestPlan.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.model.jmx;
2 |
3 | import org.apache.jmeter.config.Arguments;
4 | import org.apache.jmeter.control.gui.TestPlanGui;
5 | import org.apache.jmeter.testelement.TestElement;
6 | import org.apache.jmeter.testelement.TestPlan;
7 |
8 | public class JmxTestPlan {
9 |
10 | public static TestPlan newInstance(String name) {
11 | TestPlan testPlan = new TestPlan();
12 | testPlan.setProperty(TestElement.TEST_CLASS, TestPlan.class.getName());
13 | testPlan.setProperty(TestElement.GUI_CLASS, TestPlanGui.class.getName());
14 | testPlan.setName(name);
15 | testPlan.setEnabled(true);
16 | testPlan.setFunctionalMode(false);
17 | testPlan.setComment("");
18 | testPlan.setSerialized(false);
19 | testPlan.setTestPlanClasspath("");
20 | testPlan.setUserDefinedVariables(new Arguments());
21 | return testPlan;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/model/jmx/JmxThreadGroup.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.model.jmx;
2 |
3 | import org.apache.jmeter.control.LoopController;
4 | import org.apache.jmeter.testelement.TestElement;
5 | import org.apache.jmeter.testelement.property.JMeterProperty;
6 | import org.apache.jmeter.threads.ThreadGroup;
7 | import org.apache.jmeter.threads.gui.ThreadGroupGui;
8 |
9 | public class JmxThreadGroup {
10 |
11 | public static ThreadGroup newInstance(LoopController loopController) {
12 | ThreadGroup threadGroup = new ThreadGroup();
13 | threadGroup.setProperty(TestElement.TEST_CLASS, ThreadGroup.class.getName());
14 | threadGroup.setProperty(TestElement.GUI_CLASS, ThreadGroupGui.class.getName());
15 | threadGroup.setName("Http URL/API Test");
16 | threadGroup.setEnabled(true);
17 | threadGroup.setSamplerController(loopController);
18 | threadGroup.setNumThreads(1);
19 | threadGroup.setRampUp(1);
20 | threadGroup.setScheduler(false);
21 | threadGroup.setDuration(0);
22 | threadGroup.setDelay(0);
23 | threadGroup.setComment("");
24 | threadGroup.setProperty(ThreadGroup.ON_SAMPLE_ERROR, "continue");
25 | return threadGroup;
26 | }
27 |
28 | }
29 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/model/postman/PostmanBody.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.model.postman;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import com.fasterxml.jackson.annotation.JsonProperty;
5 | import com.loadium.postman2jmx.utils.ResponseBodyMode;
6 | import com.loadium.postman2jmx.utils.ValueUtils;
7 |
8 | import java.util.ArrayList;
9 | import java.util.List;
10 |
11 | @JsonIgnoreProperties(ignoreUnknown = true)
12 | public class PostmanBody {
13 |
14 | @JsonProperty("mode")
15 | private String mode = ResponseBodyMode.EMPTY.getMode();
16 |
17 | @JsonProperty("file")
18 | private PostmanFileBody file;
19 |
20 | @JsonProperty("urlencoded")
21 | private List urlEncodes = new ArrayList<>();
22 |
23 | @JsonProperty("raw")
24 | private PostmanRawBody raw;
25 |
26 | @JsonProperty("formdata")
27 | private List formDataList = new ArrayList<>();
28 |
29 |
30 | public PostmanBody() {
31 | }
32 |
33 | public String getMode() {
34 | return mode;
35 | }
36 |
37 | public void setMode(String mode) {
38 | this.mode = mode;
39 | }
40 |
41 | public PostmanFileBody getFile() {
42 | return file;
43 | }
44 |
45 | public void setFile(PostmanFileBody file) {
46 | this.file = file;
47 | }
48 |
49 | public List getUrlEncodes() {
50 | return urlEncodes;
51 | }
52 |
53 | public void setUrlEncodes(List urlEncodes) {
54 | this.urlEncodes = urlEncodes;
55 | }
56 |
57 | public PostmanRawBody getRaw() {
58 | return raw;
59 | }
60 |
61 | public void setRaw(PostmanRawBody raw) {
62 | this.raw = raw;
63 | this.raw.setValue(ValueUtils.value(raw.getValue()));
64 | }
65 |
66 | public List getFormDataList() {
67 | return formDataList;
68 | }
69 |
70 | public void setFormDataList(List formDataList) {
71 | this.formDataList = formDataList;
72 | }
73 | }
74 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/model/postman/PostmanCollection.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.model.postman;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import com.fasterxml.jackson.annotation.JsonProperty;
5 |
6 | import java.util.ArrayList;
7 | import java.util.List;
8 |
9 | @JsonIgnoreProperties(ignoreUnknown = true)
10 | public class PostmanCollection {
11 |
12 | @JsonProperty("item")
13 | private List items = new ArrayList<>();
14 |
15 | @JsonProperty("info")
16 | private PostmanInfo info;
17 |
18 | public PostmanCollection() {
19 | }
20 |
21 | public PostmanCollection(List items, PostmanInfo info) {
22 | this.items = items;
23 | this.info = info;
24 | }
25 |
26 | public List getItems() {
27 | return items;
28 | }
29 |
30 | public void setItems(List items) {
31 | this.items = items;
32 | }
33 |
34 | public PostmanInfo getInfo() {
35 | return info;
36 | }
37 |
38 | public void setInfo(PostmanInfo info) {
39 | this.info = info;
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/model/postman/PostmanEvent.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.model.postman;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnore;
4 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
5 | import com.fasterxml.jackson.annotation.JsonProperty;
6 | import com.loadium.postman2jmx.utils.ValueUtils;
7 |
8 | import java.util.ArrayList;
9 | import java.util.List;
10 | import java.util.Map;
11 |
12 | @JsonIgnoreProperties(ignoreUnknown = true)
13 | public class PostmanEvent {
14 |
15 | @JsonProperty("listen")
16 | private String listen;
17 |
18 | @JsonProperty("script")
19 | private PostmanScript script;
20 |
21 | @JsonIgnore
22 | private List variables = new ArrayList<>();
23 |
24 | @JsonIgnore
25 | private List variableValues = new ArrayList<>();
26 |
27 | public PostmanEvent() {
28 | }
29 |
30 | public PostmanEvent(String listen, PostmanScript script) {
31 | this.listen = listen;
32 | setScript(script);
33 | }
34 |
35 | public String getListen() {
36 | return listen;
37 | }
38 |
39 | public void setListen(String listen) {
40 | this.listen = listen;
41 | }
42 |
43 | public PostmanScript getScript() {
44 | return script;
45 | }
46 |
47 | public void setScript(PostmanScript script) {
48 | this.script = script;
49 | Map varMappings = ValueUtils.extractVariablesWithValues(script.getExec());
50 | varMappings.forEach((variable, value) -> {
51 | this.variables.add(variable);
52 | this.variableValues.add(value);
53 | });
54 |
55 | }
56 |
57 | public List getVariables() {
58 | return variables;
59 | }
60 |
61 | public List getVariableValues() {
62 | return variableValues;
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/model/postman/PostmanFileBody.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.model.postman;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import com.fasterxml.jackson.annotation.JsonProperty;
5 |
6 | @JsonIgnoreProperties(ignoreUnknown = true)
7 | public class PostmanFileBody {
8 |
9 | @JsonProperty("src")
10 | private String src;
11 |
12 | public PostmanFileBody() {
13 | }
14 |
15 | public PostmanFileBody(String src) {
16 | this.src = src;
17 | }
18 |
19 | public String getSrc() {
20 | return src;
21 | }
22 |
23 | public void setSrc(String src) {
24 | this.src = src;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/model/postman/PostmanFormDataBody.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.model.postman;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import com.fasterxml.jackson.annotation.JsonProperty;
5 | import com.loadium.postman2jmx.utils.ValueUtils;
6 |
7 | @JsonIgnoreProperties(ignoreUnknown = true)
8 | public class PostmanFormDataBody {
9 |
10 | @JsonProperty("key")
11 | private String key;
12 |
13 | @JsonProperty("value")
14 | private String value;
15 |
16 | @JsonProperty("description")
17 | private String description;
18 |
19 | @JsonProperty("type")
20 | private String type;
21 |
22 | public PostmanFormDataBody() {
23 | }
24 |
25 | public PostmanFormDataBody(String key, String value, String description, String type) {
26 | this.key = key;
27 | this.value = value;
28 | this.description = description;
29 | this.type = type;
30 | }
31 |
32 | public String getKey() {
33 | return key;
34 | }
35 |
36 | public void setKey(String key) {
37 | this.key = key;
38 | }
39 |
40 | public String getValue() {
41 | return value;
42 | }
43 |
44 | public void setValue(String value) {
45 | this.value = ValueUtils.value(value);
46 | }
47 |
48 | public String getDescription() {
49 | return description;
50 | }
51 |
52 | public void setDescription(String description) {
53 | this.description = description;
54 | }
55 |
56 | public String getType() {
57 | return type;
58 | }
59 |
60 | public void setType(String type) {
61 | this.type = type;
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/model/postman/PostmanHeader.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.model.postman;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import com.fasterxml.jackson.annotation.JsonProperty;
5 | import com.loadium.postman2jmx.utils.ValueUtils;
6 |
7 | @JsonIgnoreProperties(ignoreUnknown = true)
8 | public class PostmanHeader {
9 |
10 | @JsonProperty("key")
11 | private String key;
12 |
13 | @JsonProperty("value")
14 | private String value;
15 |
16 | public PostmanHeader() {
17 | }
18 |
19 | public PostmanHeader(String key, String value) {
20 | this.key = key;
21 | this.value = value;
22 | }
23 |
24 | public String getKey() {
25 | return key;
26 | }
27 |
28 | public void setKey(String key) {
29 | this.key = ValueUtils.value(key);
30 | }
31 |
32 | public String getValue() {
33 | return value;
34 | }
35 |
36 | public void setValue(String value) {
37 | this.value = ValueUtils.value(value);
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/model/postman/PostmanInfo.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.model.postman;
2 |
3 |
4 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
5 | import com.fasterxml.jackson.annotation.JsonProperty;
6 |
7 | @JsonIgnoreProperties(ignoreUnknown = true)
8 | public class PostmanInfo {
9 |
10 | @JsonProperty("name")
11 | private String name;
12 |
13 | @JsonProperty("_postman_id")
14 | private String postmanId;
15 |
16 | @JsonProperty("description")
17 | private String description;
18 |
19 | @JsonProperty("schema")
20 | private String schema;
21 |
22 | public PostmanInfo() {
23 | }
24 |
25 | public PostmanInfo(String name, String postmanId, String description, String schema) {
26 | this.name = name;
27 | this.postmanId = postmanId;
28 | this.description = description;
29 | this.schema = schema;
30 | }
31 |
32 | public String getName() {
33 | return name;
34 | }
35 |
36 | public void setName(String name) {
37 | this.name = name;
38 | }
39 |
40 | public String getPostmanId() {
41 | return postmanId;
42 | }
43 |
44 | public void setPostmanId(String postmanId) {
45 | this.postmanId = postmanId;
46 | }
47 |
48 | public String getDescription() {
49 | return description;
50 | }
51 |
52 | public void setDescription(String description) {
53 | this.description = description;
54 | }
55 |
56 | public String getSchema() {
57 | return schema;
58 | }
59 |
60 | public void setSchema(String schema) {
61 | this.schema = schema;
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/model/postman/PostmanItem.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.model.postman;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import com.fasterxml.jackson.annotation.JsonProperty;
5 | import com.loadium.postman2jmx.utils.ValueUtils;
6 |
7 | import java.util.ArrayList;
8 | import java.util.List;
9 |
10 | @JsonIgnoreProperties(ignoreUnknown = true)
11 | public class PostmanItem implements Comparable {
12 |
13 | @JsonProperty("item")
14 | List items = new ArrayList<>();
15 |
16 | @JsonProperty("name")
17 | private String name;
18 |
19 | @JsonProperty("request")
20 | private PostmanRequest request;
21 |
22 | @JsonProperty("event")
23 | private List events = new ArrayList<>();
24 |
25 | public PostmanItem() {
26 | }
27 |
28 | public PostmanItem(String name, PostmanRequest request, List events) {
29 | this.name = name;
30 | this.request = request;
31 | this.events = events;
32 | }
33 |
34 | public String getName() {
35 | return name;
36 | }
37 |
38 | public void setName(String name) {
39 | this.name = ValueUtils.value(name);
40 | }
41 |
42 | public PostmanRequest getRequest() {
43 | return request;
44 | }
45 |
46 | public void setRequest(PostmanRequest request) {
47 | this.request = request;
48 | }
49 |
50 | public List getItems() {
51 | return items;
52 | }
53 |
54 | public void setItems(List items) {
55 | this.items = items;
56 | }
57 |
58 | public List getEvents() {
59 | return events;
60 | }
61 |
62 | public void setEvents(List events) {
63 | this.events = events;
64 | }
65 |
66 | @Override
67 | public int compareTo(PostmanItem o) {
68 | return this.name.compareTo(o.name);
69 | }
70 | }
71 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/model/postman/PostmanQuery.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.model.postman;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import com.loadium.postman2jmx.utils.ValueUtils;
5 |
6 | @JsonIgnoreProperties(ignoreUnknown = true)
7 | public class PostmanQuery {
8 | private String key;
9 | private String value;
10 | private String description;
11 | private String disabled;
12 |
13 |
14 | public PostmanQuery() {
15 | }
16 |
17 | public String getKey() {
18 | return key;
19 | }
20 |
21 | public void setKey(String key) {
22 | this.key = ValueUtils.value(key);
23 | }
24 |
25 | public String getValue() {
26 | return value;
27 | }
28 |
29 | public void setValue(String value) {
30 | this.value = ValueUtils.value(value);
31 | }
32 |
33 | public String getDescription() {
34 | return description;
35 | }
36 |
37 | public void setDescription(String description) {
38 | this.description = description;
39 | }
40 |
41 | public String getDisabled() {
42 | return disabled;
43 | }
44 |
45 | public void setDisabled(String disabled) {
46 | this.disabled = disabled;
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/model/postman/PostmanRawBody.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.model.postman;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import com.loadium.postman2jmx.utils.ValueUtils;
5 |
6 | @JsonIgnoreProperties(ignoreUnknown = true)
7 | public class PostmanRawBody {
8 |
9 | private String value;
10 |
11 | public PostmanRawBody() {
12 | }
13 |
14 | public PostmanRawBody(String value) {
15 | this.value = value;
16 | }
17 |
18 | public String getValue() {
19 | return value;
20 | }
21 |
22 | public void setValue(String value) {
23 | this.value = ValueUtils.value(value);
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/model/postman/PostmanRequest.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.model.postman;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import com.fasterxml.jackson.annotation.JsonProperty;
5 |
6 | import java.util.ArrayList;
7 | import java.util.List;
8 |
9 | @JsonIgnoreProperties(ignoreUnknown = true)
10 | public class PostmanRequest {
11 |
12 | @JsonProperty("url")
13 | private PostmanUrl url;
14 |
15 | @JsonProperty("method")
16 | private String method;
17 |
18 | @JsonProperty("header")
19 | private List headers = new ArrayList<>();
20 |
21 | @JsonProperty("body")
22 | private PostmanBody body;
23 |
24 | @JsonProperty("description")
25 | private String description;
26 |
27 | public PostmanRequest() {
28 | }
29 |
30 | public List getHeaders() {
31 | return headers;
32 | }
33 |
34 | public void setHeaders(List headers) {
35 | this.headers = headers;
36 | }
37 |
38 | public PostmanBody getBody() {
39 | return body;
40 | }
41 |
42 | public void setBody(PostmanBody body) {
43 | this.body = body;
44 | }
45 |
46 | public String getDescription() {
47 | return description;
48 | }
49 |
50 | public void setDescription(String description) {
51 | this.description = description;
52 | }
53 |
54 | public PostmanUrl getUrl() {
55 | return url;
56 | }
57 |
58 | public void setUrl(PostmanUrl url) {
59 | this.url = url;
60 | }
61 |
62 | public String getMethod() {
63 | return method;
64 | }
65 |
66 | public void setMethod(String method) {
67 | this.method = method;
68 | }
69 |
70 |
71 | }
72 |
73 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/model/postman/PostmanScript.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.model.postman;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import com.fasterxml.jackson.annotation.JsonProperty;
5 | import com.fasterxml.jackson.core.JsonParser;
6 | import com.fasterxml.jackson.core.JsonProcessingException;
7 | import com.fasterxml.jackson.core.JsonToken;
8 | import com.fasterxml.jackson.databind.DeserializationContext;
9 | import com.fasterxml.jackson.databind.JsonDeserializer;
10 | import com.fasterxml.jackson.databind.ObjectMapper;
11 | import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
12 | import com.loadium.postman2jmx.model.deserializer.ExecDeserializer;
13 |
14 | import java.io.IOException;
15 | import java.util.ArrayList;
16 | import java.util.List;
17 |
18 | @JsonIgnoreProperties(ignoreUnknown = true)
19 | public class PostmanScript {
20 |
21 | @JsonProperty("type")
22 | private String type;
23 |
24 | @JsonProperty("exec")
25 | private List execs = new ArrayList<>();
26 |
27 | public PostmanScript() {
28 | }
29 |
30 | public PostmanScript(String type, List execs) {
31 | this.type = type;
32 | this.execs = execs;
33 | }
34 |
35 | public String getType() {
36 | return type;
37 | }
38 |
39 | public void setType(String type) {
40 | this.type = type;
41 | }
42 |
43 | public List getExec() {
44 | return execs;
45 | }
46 |
47 | public void setExec(List execs) {
48 | this.execs = execs;
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/model/postman/PostmanUrl.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.model.postman;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import com.fasterxml.jackson.annotation.JsonProperty;
5 | import com.loadium.postman2jmx.utils.ValueUtils;
6 |
7 | import java.util.ArrayList;
8 | import java.util.List;
9 |
10 | @JsonIgnoreProperties(ignoreUnknown = true)
11 | public class PostmanUrl {
12 |
13 | @JsonProperty("raw")
14 | private String raw;
15 |
16 | @JsonProperty("query")
17 | private List queries = new ArrayList<>();
18 |
19 | public PostmanUrl() {
20 | }
21 |
22 | public PostmanUrl(String raw) {
23 | this.raw = ValueUtils.value(raw);
24 | }
25 |
26 | public String getRaw() {
27 | return raw;
28 | }
29 |
30 | public void setRaw(String raw) {
31 | this.raw = ValueUtils.value(raw);
32 | }
33 |
34 | public List getQueries() {
35 | return queries;
36 | }
37 |
38 | public void setQueries(List queries) {
39 | this.queries = queries;
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/model/postman/PostmanUrlEncodedBody.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.model.postman;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import com.fasterxml.jackson.annotation.JsonProperty;
5 | import com.loadium.postman2jmx.utils.ValueUtils;
6 |
7 | @JsonIgnoreProperties(ignoreUnknown = true)
8 | public class PostmanUrlEncodedBody {
9 |
10 | @JsonProperty("key")
11 | private String key;
12 |
13 | @JsonProperty("value")
14 | private String value;
15 |
16 | @JsonProperty("description")
17 | private String description;
18 |
19 | @JsonProperty("type")
20 | private String type;
21 |
22 | public PostmanUrlEncodedBody() {
23 | }
24 |
25 | public PostmanUrlEncodedBody(String key, String value, String description, String type) {
26 | this.key = key;
27 | this.value = value;
28 | this.description = description;
29 | this.type = type;
30 | }
31 |
32 | public String getKey() {
33 | return key;
34 | }
35 |
36 | public void setKey(String key) {
37 | this.key = key;
38 | }
39 |
40 | public String getValue() {
41 | return value;
42 | }
43 |
44 | public void setValue(String value) {
45 | this.value = ValueUtils.value(value);
46 | }
47 |
48 | public String getDescription() {
49 | return description;
50 | }
51 |
52 | public void setDescription(String description) {
53 | this.description = description;
54 | }
55 |
56 | public String getType() {
57 | return type;
58 | }
59 |
60 | public void setType(String type) {
61 | this.type = type;
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/parser/AbstractParser.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.parser;
2 |
3 | import com.fasterxml.jackson.databind.ObjectMapper;
4 | import com.loadium.postman2jmx.model.postman.PostmanCollection;
5 | import com.loadium.postman2jmx.model.postman.PostmanItem;
6 | import com.loadium.postman2jmx.utils.PostmanCollectionUtils;
7 |
8 | import java.io.IOException;
9 | import java.io.InputStream;
10 | import java.nio.file.Files;
11 | import java.nio.file.Paths;
12 | import java.util.Collections;
13 | import java.util.List;
14 |
15 | public abstract class AbstractParser implements IParser {
16 |
17 | private ObjectMapper objectMapper;
18 |
19 | public AbstractParser() {
20 | objectMapper = new ObjectMapper();
21 | }
22 |
23 | protected ObjectMapper getMapper() {
24 | return this.objectMapper;
25 | }
26 |
27 | protected PostmanCollection readValue(String fileName) throws IOException {
28 | byte[] jsonData = Files.readAllBytes(Paths.get(fileName));
29 | PostmanCollection postmanCollection = getMapper().readValue(jsonData, PostmanCollection.class);
30 | getItems(postmanCollection);
31 | return postmanCollection;
32 | }
33 |
34 | protected PostmanCollection readValue(InputStream is) throws IOException {
35 | PostmanCollection postmanCollection = getMapper().readValue(is, PostmanCollection.class);
36 | getItems(postmanCollection);
37 | return postmanCollection;
38 | }
39 |
40 | protected void getItems(PostmanCollection postmanCollection) {
41 | List items = PostmanCollectionUtils.getItems(postmanCollection);
42 | //Collections.sort(items);
43 | postmanCollection.setItems(items);
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/parser/IParser.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.parser;
2 |
3 | import com.loadium.postman2jmx.model.postman.PostmanCollection;
4 |
5 | import java.io.IOException;
6 | import java.io.InputStream;
7 |
8 | public interface IParser {
9 |
10 | PostmanCollection parse(String postmanJsonFile) throws IOException;
11 |
12 | PostmanCollection parse(InputStream is) throws IOException;
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/parser/ParserFactory.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.parser;
2 |
3 | import com.loadium.postman2jmx.utils.CollectionVersion;
4 |
5 | public class ParserFactory {
6 |
7 | public static IParser getParser(CollectionVersion version) {
8 | if(CollectionVersion.V2 == version) {
9 | return new PostmanParserV2();
10 | } else {
11 | throw new UnsupportedOperationException();
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/parser/PostmanParserV2.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.parser;
2 |
3 | import com.loadium.postman2jmx.model.postman.PostmanCollection;
4 | import com.loadium.postman2jmx.model.postman.PostmanItem;
5 | import com.loadium.postman2jmx.utils.PostmanCollectionUtils;
6 |
7 | import java.io.IOException;
8 | import java.io.InputStream;
9 | import java.util.List;
10 |
11 | public class PostmanParserV2 extends AbstractParser {
12 |
13 | @Override
14 | public PostmanCollection parse(String postmanJsonFile) throws IOException {
15 | PostmanCollection postmanCollection = readValue(postmanJsonFile);
16 | return postmanCollection;
17 | }
18 |
19 | @Override
20 | public PostmanCollection parse(InputStream is) throws IOException {
21 | PostmanCollection postmanCollection = readValue(is);
22 | return postmanCollection;
23 | }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/utils/CollectionVersion.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.utils;
2 |
3 | public enum CollectionVersion {
4 | V2
5 | }
6 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/utils/JmxFileAttributesType.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.utils;
2 |
3 | public enum JmxFileAttributesType {
4 |
5 | HASH_TREE("hashTree"),
6 | HEADER_MANAGER("HeaderManager"),
7 | HTTP_SAMPLER_PROXY("HTTPSamplerProxy"),
8 | HTTP_SAMPLER_DOMAIN("HTTPSampler.domain"),
9 | HTTP_SAMPLER_PORT("HTTPSampler.port"),
10 | HTTP_SAMPLER_PATH("HTTPSampler.path"),
11 | HTTP_SAMPLER_METHOD("HTTPSampler.method"),
12 | HTTP_SAMPLER_ARGUMENTS("HTTPsampler.Arguments"),
13 | ARGUMENT_VALUE("Argument.value"),
14 | NAME("name"),
15 | HTTP_SAMPLER_CONNECT_TIMEOUT("HTTPSampler.connect_timeout"),
16 | HTTP_SAMPLER_RESPONSE_TIMEOUT("HTTPSampler.response_timeout");
17 |
18 |
19 | String text;
20 |
21 | public String getText() {
22 | return text;
23 | }
24 |
25 |
26 | JmxFileAttributesType(String text) {
27 | this.text = text;
28 | }
29 | }
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/utils/PostmanCollectionUtils.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.utils;
2 |
3 | import com.loadium.postman2jmx.model.postman.PostmanCollection;
4 | import com.loadium.postman2jmx.model.postman.PostmanItem;
5 | import org.apache.commons.lang3.StringUtils;
6 |
7 | import java.util.ArrayList;
8 | import java.util.Calendar;
9 | import java.util.Collections;
10 | import java.util.List;
11 | import java.util.regex.Matcher;
12 | import java.util.regex.Pattern;
13 |
14 | public class PostmanCollectionUtils {
15 |
16 | private static void getItem(PostmanItem item, List itemList) {
17 | if (item.getItems().size() == 0 && item.getRequest() != null) {
18 | itemList.add(item);
19 | }
20 |
21 | for (PostmanItem i : item.getItems()) {
22 | getItem(i, itemList);
23 | }
24 | }
25 |
26 | public static List getItems(PostmanCollection postmanCollection) {
27 | List items = new ArrayList<>();
28 |
29 | for (PostmanItem item : postmanCollection.getItems()) {
30 | getItem(item, items);
31 | }
32 | return items;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/utils/ResponseBodyMode.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.utils;
2 |
3 | public enum ResponseBodyMode {
4 |
5 | URL_ENCODED("urlencoded"),
6 | FILE("file"),
7 | RAW("raw"),
8 | FORM_DATA("formdata"),
9 | EMPTY("empty");
10 |
11 | private String mode;
12 |
13 | ResponseBodyMode(String mode) {
14 | this.mode = mode;
15 | }
16 |
17 | public String getMode(){
18 | return this.mode;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/utils/TypeUtils.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.utils;
2 |
3 | import java.util.Collection;
4 | import java.util.Map;
5 |
6 | public class TypeUtils {
7 |
8 | public static boolean isLong(String value) {
9 | if (isEmpty(value)) {
10 | return false;
11 | }
12 | try {
13 | Long.parseLong(value);
14 | } catch (NumberFormatException e) {
15 | return false;
16 | }
17 | return true;
18 | }
19 |
20 | public static boolean isInteger(String value) {
21 | if (isEmpty(value)) {
22 | return false;
23 | }
24 | try {
25 | Integer.parseInt(value);
26 | } catch (NumberFormatException e) {
27 | return false;
28 | }
29 | return true;
30 | }
31 |
32 | public static boolean isEmpty(String value) {
33 | return value == null || "".equals(value);
34 | }
35 |
36 | public static boolean isEmpty(Collection> collection) {
37 | return collection == null || collection.size() == 0;
38 | }
39 |
40 | public static boolean isEmpty(Map, ?> map) {
41 | return map == null || map.size() == 0;
42 | }
43 |
44 | public static boolean isEmpty(Object[] array) {
45 | return array == null || array.length == 0;
46 | }
47 |
48 | public static boolean isNotEmpty(String value) {
49 | return !isEmpty(value);
50 | }
51 |
52 | public static boolean isNotEmpty(Collection> collection) {
53 | return !isEmpty(collection);
54 | }
55 |
56 | public static boolean isNotEmpty(Map, ?> map) {
57 | return !isEmpty(map);
58 | }
59 |
60 | public static boolean isNotEmpty(Object[] array) {
61 | return !isEmpty(array);
62 | }
63 |
64 | public static String join(String[] strs, String joinChar) {
65 | if (isNotEmpty(strs) && isNotEmpty(joinChar)) {
66 | String result = "";
67 | for (String str : strs) {
68 | result += str;
69 | result += joinChar;
70 | }
71 | return result.substring(0, result.length() - joinChar.length());
72 | }
73 | return "";
74 | }
75 |
76 | public static String join(Collection strs, String joinChar) {
77 | if (isNotEmpty(strs) && isNotEmpty(joinChar)) {
78 | String result = "";
79 | for (String str : strs) {
80 | result += str;
81 | result += joinChar;
82 | }
83 | return result.substring(0, result.length() - joinChar.length());
84 | }
85 | return "";
86 | }
87 | }
88 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/utils/UrlUtils.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.utils;
2 |
3 | import java.net.MalformedURLException;
4 | import java.net.URL;
5 | import java.util.regex.Matcher;
6 | import java.util.regex.Pattern;
7 |
8 | public class UrlUtils {
9 | private static String URL_VARIABLE_PATTERN = "\\$\\{(.*?)}";
10 |
11 | private static String URL_PARTITIONS_PATTERN = "^((http[s]?|ftp):\\/)?\\/?([^:\\/\\s]+)(:([^\\/]*))?((\\/?(?:[^\\/\\?#]+\\/+)*)([^\\?#]*))(\\?([^#]*))?(#(.*))?$";
12 |
13 | private static Pattern pattern = Pattern.compile(URL_VARIABLE_PATTERN);
14 |
15 | private static Pattern urlPartitionPattern = Pattern.compile(URL_PARTITIONS_PATTERN);
16 |
17 |
18 | public static URL getUrl(String httpUrl) throws MalformedURLException {
19 | if (!httpUrl.startsWith("http") && !httpUrl.startsWith("https")) {
20 | httpUrl = "http://" + httpUrl;
21 | }
22 | return new URL(httpUrl);
23 | }
24 |
25 | public static String getDomain(URL url) {
26 | return url.getHost();
27 | }
28 |
29 | public static String getPath(URL url) {
30 | String path = url.getPath();
31 | String queryString = url.getQuery();
32 |
33 | if (TypeUtils.isNotEmpty(queryString)) {
34 | path = path + "?" + queryString;
35 | }
36 | return path;
37 | }
38 |
39 | public static int getPort(URL url) {
40 | return url.getPort();
41 | }
42 |
43 | public static String getProtocol(URL url) {
44 | return url.getProtocol();
45 | }
46 |
47 | public static boolean isVariableUrl(String url) {
48 | Matcher matcher = pattern.matcher(url);
49 | return matcher.find();
50 | }
51 |
52 | public static String getVariableUrl(String url) {
53 | Matcher matcher = urlPartitionPattern.matcher(url);
54 | matcher.matches();
55 | return matcher.group(3);
56 | }
57 |
58 | public static String getVariablePath(String url) {
59 | Matcher matcher = urlPartitionPattern.matcher(url);
60 | matcher.matches();
61 | String path = matcher.group(6);
62 | if (matcher.group(9) != null) {
63 | path = path + matcher.group(9);
64 | }
65 | return path;
66 | }
67 |
68 | public static String getVariableProtocol(String url) {
69 | Matcher matcher = urlPartitionPattern.matcher(url);
70 | matcher.matches();
71 | return matcher.group(2);
72 | }
73 |
74 | public static int getVariablePort(String url) {
75 | Matcher matcher = urlPartitionPattern.matcher(url);
76 | matcher.matches();
77 | return matcher.group(5) != null ? Integer.valueOf(matcher.group(5)) : -1;
78 | }
79 | }
80 |
--------------------------------------------------------------------------------
/src/main/java/com/loadium/postman2jmx/utils/ValueUtils.java:
--------------------------------------------------------------------------------
1 | package com.loadium.postman2jmx.utils;
2 |
3 | import java.util.HashMap;
4 | import java.util.List;
5 | import java.util.Map;
6 |
7 | public class ValueUtils {
8 | // TODO: replace substring(...) solution for matching with (safer) regex matching, using java matcher groups
9 | private static final String[] patterns = {".environment.set", ".setGlobalVariable", ".setEnvironmentVariable", ".globals.set"};
10 |
11 | public static String value(String value) {
12 | if (value != null && value.contains("{{") && value.contains("}}")) {
13 | value = value.replace("{{", "${");
14 | value = value.replace("}}", "}");
15 | }
16 | return value;
17 | }
18 |
19 | public static Map extractVariablesWithValues(List execs) {
20 | Map variableAssignments = new HashMap<>(); // TODO: better use SortedMap to preserve order? any advantages as opposed to HashMap?
21 | for (String exec : execs) {
22 | if (exec.contains(patterns[0]) || exec.contains(patterns[1]) || exec.contains(patterns[2]) || exec.contains(patterns[3])) {
23 | String variable = exec.substring(exec.indexOf("(") + 1, exec.indexOf(","));
24 | variable = variable.trim().replace("\'", "").replace("\"", "");
25 | String value = exec.substring(exec.indexOf(",") + 1, exec.indexOf(")"));
26 | value = value.trim();
27 | variableAssignments.put(variable, value);
28 | }
29 | }
30 | return variableAssignments;
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/src/main/resources/jmeter/bin/saveservice.properties:
--------------------------------------------------------------------------------
1 | #---------------------------------------------------------
2 | # SAVESERVICE PROPERTIES - JMETER INTERNAL USE ONLY
3 | #---------------------------------------------------------
4 |
5 | ## Licensed to the Apache Software Foundation (ASF) under one or more
6 | ## contributor license agreements. See the NOTICE file distributed with
7 | ## this work for additional information regarding copyright ownership.
8 | ## The ASF licenses this file to You under the Apache License, Version 2.0
9 | ## (the "License"); you may not use this file except in compliance with
10 | ## the License. You may obtain a copy of the License at
11 | ##
12 | ## http://www.apache.org/licenses/LICENSE-2.0
13 | ##
14 | ## Unless required by applicable law or agreed to in writing, software
15 | ## distributed under the License is distributed on an "AS IS" BASIS,
16 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 | ## See the License for the specific language governing permissions and
18 | ## limitations under the License.
19 |
20 | # This file is used to define how XStream (de-)serializes classnames
21 | # in JMX test plan files.
22 |
23 | # FOR JMETER INTERNAL USE ONLY
24 |
25 | #---------------------------------------------------------
26 |
27 | # N.B. To ensure backward compatibility, please do NOT change or delete any entries
28 |
29 | # New entries can be added as necessary.
30 | #
31 | # Note that keys starting with an underscore are special,
32 | # and are not used as aliases.
33 | #
34 | # Please keep the entries in alphabetical order within the sections
35 | # to reduce the likelihood of duplicates
36 | #
37 | # version number of this file is now computed by a sha1 sum, so no need for
38 | # an explicit _file_version property anymore.
39 | #
40 | # For this sha1 sum we ignore every newline character. It can be computed
41 | # by the following command:
42 | #
43 | # cat bin/saveservice.properties | perl -ne 'chomp; print' | sha1sum
44 | #
45 | # Be aware, that every change in this file will change the sha1 sum!
46 | #
47 | # Conversion version (for JMX output files)
48 | # Must be updated if the file has been changed since the previous release
49 | # Format is:
50 | # Save service version=JMeter version at which change occurred
51 | # 1.7 = 2.1.1
52 | # 1.8 = 2.1.2
53 | # (Some version updates were missed here...)
54 | # 2.0 = 2.3.1
55 | # 2.1 = 2.3.2
56 | # (Some version updates were missed here...)
57 | # 2.2 = 2.6
58 | # 2.3 = 2.7
59 | # 2.4 = 2.9
60 | # 2.5 = 2.10
61 | # 2.6 = 2.11
62 | # 2.7 = 2.12
63 | # 2.8 = 2.13
64 | # 2.9 = 2.14
65 | # 3.1 = 3.1
66 | # 3.2 = 3.2
67 | # 3.4 = 3.4
68 | _version=4.0
69 | #
70 | #
71 | # Character set encoding used to read and write JMeter XML files and CSV results
72 | #
73 | _file_encoding=UTF-8
74 | #
75 | #---------------------------------------------------------
76 | #
77 | # The following properties are used to create aliases
78 | # [Must all start with capital letter]
79 | #
80 | AccessLogSampler=org.apache.jmeter.protocol.http.sampler.AccessLogSampler
81 | AjpSampler=org.apache.jmeter.protocol.http.sampler.AjpSampler
82 | AjpSamplerGui=org.apache.jmeter.protocol.http.control.gui.AjpSamplerGui
83 | AnchorModifier=org.apache.jmeter.protocol.http.modifier.AnchorModifier
84 | AnchorModifierGui=org.apache.jmeter.protocol.http.modifier.gui.AnchorModifierGui
85 | Argument=org.apache.jmeter.config.Argument
86 | Arguments=org.apache.jmeter.config.Arguments
87 | ArgumentsPanel=org.apache.jmeter.config.gui.ArgumentsPanel
88 | AssertionGui=org.apache.jmeter.assertions.gui.AssertionGui
89 | AssertionVisualizer=org.apache.jmeter.visualizers.AssertionVisualizer
90 | AuthManager=org.apache.jmeter.protocol.http.control.AuthManager
91 | Authorization=org.apache.jmeter.protocol.http.control.Authorization
92 | AuthPanel=org.apache.jmeter.protocol.http.gui.AuthPanel
93 | BackendListener=org.apache.jmeter.visualizers.backend.BackendListener
94 | BackendListenerGui=org.apache.jmeter.visualizers.backend.BackendListenerGui
95 | BeanShellAssertion=org.apache.jmeter.assertions.BeanShellAssertion
96 | BeanShellAssertionGui=org.apache.jmeter.assertions.gui.BeanShellAssertionGui
97 | BeanShellListener=org.apache.jmeter.visualizers.BeanShellListener
98 | BeanShellPostProcessor=org.apache.jmeter.extractor.BeanShellPostProcessor
99 | BeanShellPreProcessor=org.apache.jmeter.modifiers.BeanShellPreProcessor
100 | BeanShellSampler=org.apache.jmeter.protocol.java.sampler.BeanShellSampler
101 | BeanShellSamplerGui=org.apache.jmeter.protocol.java.control.gui.BeanShellSamplerGui
102 | BeanShellTimer=org.apache.jmeter.timers.BeanShellTimer
103 | BoundaryExtractor=org.apache.jmeter.extractor.BoundaryExtractor
104 | BoundaryExtractorGui=org.apache.jmeter.extractor.gui.BoundaryExtractorGui
105 | BSFAssertion=org.apache.jmeter.assertions.BSFAssertion
106 | BSFListener=org.apache.jmeter.visualizers.BSFListener
107 | BSFPreProcessor=org.apache.jmeter.modifiers.BSFPreProcessor
108 | BSFPostProcessor=org.apache.jmeter.extractor.BSFPostProcessor
109 | BSFSampler=org.apache.jmeter.protocol.java.sampler.BSFSampler
110 | BSFSamplerGui=org.apache.jmeter.protocol.java.control.gui.BSFSamplerGui
111 | BSFTimer=org.apache.jmeter.timers.BSFTimer
112 | CacheManager=org.apache.jmeter.protocol.http.control.CacheManager
113 | CacheManagerGui=org.apache.jmeter.protocol.http.gui.CacheManagerGui
114 | CompareAssertion=org.apache.jmeter.assertions.CompareAssertion
115 | ComparisonVisualizer=org.apache.jmeter.visualizers.ComparisonVisualizer
116 | ConfigTestElement=org.apache.jmeter.config.ConfigTestElement
117 | ConstantThroughputTimer=org.apache.jmeter.timers.ConstantThroughputTimer
118 | ConstantTimer=org.apache.jmeter.timers.ConstantTimer
119 | ConstantTimerGui=org.apache.jmeter.timers.gui.ConstantTimerGui
120 | Cookie=org.apache.jmeter.protocol.http.control.Cookie
121 | CookieManager=org.apache.jmeter.protocol.http.control.CookieManager
122 | CookiePanel=org.apache.jmeter.protocol.http.gui.CookiePanel
123 | CounterConfig=org.apache.jmeter.modifiers.CounterConfig
124 | CriticalSectionController=org.apache.jmeter.control.CriticalSectionController
125 | CriticalSectionControllerGui=org.apache.jmeter.control.gui.CriticalSectionControllerGui
126 | CounterConfigGui=org.apache.jmeter.modifiers.gui.CounterConfigGui
127 | CSVDataSet=org.apache.jmeter.config.CSVDataSet
128 | DebugPostProcessor=org.apache.jmeter.extractor.DebugPostProcessor
129 | DebugSampler=org.apache.jmeter.sampler.DebugSampler
130 | # removed in 3.1, class was deleted in r1763837
131 | DistributionGraphVisualizer=org.apache.jmeter.visualizers.DistributionGraphVisualizer
132 | DNSCacheManager=org.apache.jmeter.protocol.http.control.DNSCacheManager
133 | DNSCachePanel=org.apache.jmeter.protocol.http.gui.DNSCachePanel
134 | DurationAssertion=org.apache.jmeter.assertions.DurationAssertion
135 | DurationAssertionGui=org.apache.jmeter.assertions.gui.DurationAssertionGui
136 | PreciseThroughputTimer=org.apache.jmeter.timers.poissonarrivals.PreciseThroughputTimer
137 | # Should really have been defined as floatProp to agree with other properties
138 | # No point changing this now
139 | FloatProperty=org.apache.jmeter.testelement.property.FloatProperty
140 | ForeachController=org.apache.jmeter.control.ForeachController
141 | ForeachControlPanel=org.apache.jmeter.control.gui.ForeachControlPanel
142 | FtpConfigGui=org.apache.jmeter.protocol.ftp.config.gui.FtpConfigGui
143 | FTPSampler=org.apache.jmeter.protocol.ftp.sampler.FTPSampler
144 | FtpTestSamplerGui=org.apache.jmeter.protocol.ftp.control.gui.FtpTestSamplerGui
145 | GaussianRandomTimer=org.apache.jmeter.timers.GaussianRandomTimer
146 | GaussianRandomTimerGui=org.apache.jmeter.timers.gui.GaussianRandomTimerGui
147 | GenericController=org.apache.jmeter.control.GenericController
148 | GraphAccumVisualizer=org.apache.jmeter.visualizers.GraphAccumVisualizer
149 | GraphVisualizer=org.apache.jmeter.visualizers.GraphVisualizer
150 | Header=org.apache.jmeter.protocol.http.control.Header
151 | HeaderManager=org.apache.jmeter.protocol.http.control.HeaderManager
152 | HeaderPanel=org.apache.jmeter.protocol.http.gui.HeaderPanel
153 | HTMLAssertion=org.apache.jmeter.assertions.HTMLAssertion
154 | HTMLAssertionGui=org.apache.jmeter.assertions.gui.HTMLAssertionGui
155 | HTTPArgument=org.apache.jmeter.protocol.http.util.HTTPArgument
156 | HTTPArgumentsPanel=org.apache.jmeter.protocol.http.gui.HTTPArgumentsPanel
157 | HTTPFileArg=org.apache.jmeter.protocol.http.util.HTTPFileArg
158 | HTTPFileArgs=org.apache.jmeter.protocol.http.util.HTTPFileArgs
159 | HttpDefaultsGui=org.apache.jmeter.protocol.http.config.gui.HttpDefaultsGui
160 | HtmlExtractor=org.apache.jmeter.extractor.HtmlExtractor
161 | HtmlExtractorGui=org.apache.jmeter.extractor.gui.HtmlExtractorGui
162 | # removed in r1039684, probably not released. Not present in r322831 or since.
163 | #HttpGenericSampler=org.apache.jmeter.protocol.http.sampler.HttpGenericSampler
164 | # removed in r1039684, probably not released. Not present in r322831 or since.
165 | #HttpGenericSamplerGui=org.apache.jmeter.protocol.http.control.gui.HttpGenericSamplerGui
166 | HttpMirrorControl=org.apache.jmeter.protocol.http.control.HttpMirrorControl
167 | HttpMirrorControlGui=org.apache.jmeter.protocol.http.control.gui.HttpMirrorControlGui
168 | # r397955 - removed test class. Keep as commented entry for info only.
169 | #HTTPNullSampler=org.apache.jmeter.protocol.http.sampler.HTTPNullSampler
170 | # Merge previous 2 HTTP samplers into one
171 | HTTPSampler_=org.apache.jmeter.protocol.http.sampler.HTTPSampler
172 | HTTPSampler2_=org.apache.jmeter.protocol.http.sampler.HTTPSampler2
173 | HTTPSamplerProxy,HTTPSampler,HTTPSampler2=org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy
174 | # Merge GUIs
175 | HttpTestSampleGui,HttpTestSampleGui2=org.apache.jmeter.protocol.http.control.gui.HttpTestSampleGui
176 | #HttpTestSampleGui2=org.apache.jmeter.protocol.http.control.gui.HttpTestSampleGui2
177 | IfController=org.apache.jmeter.control.IfController
178 | IfControllerPanel=org.apache.jmeter.control.gui.IfControllerPanel
179 | IncludeController=org.apache.jmeter.control.IncludeController
180 | IncludeControllerGui=org.apache.jmeter.control.gui.IncludeControllerGui
181 | InterleaveControl=org.apache.jmeter.control.InterleaveControl
182 | InterleaveControlGui=org.apache.jmeter.control.gui.InterleaveControlGui
183 | JavaConfig=org.apache.jmeter.protocol.java.config.JavaConfig
184 | JavaConfigGui=org.apache.jmeter.protocol.java.config.gui.JavaConfigGui
185 | JavaSampler=org.apache.jmeter.protocol.java.sampler.JavaSampler
186 | JavaTest=org.apache.jmeter.protocol.java.test.JavaTest
187 | JavaTestSamplerGui=org.apache.jmeter.protocol.java.control.gui.JavaTestSamplerGui
188 | JDBCDataSource=org.apache.jmeter.protocol.jdbc.config.DataSourceElement
189 | JDBCPostProcessor=org.apache.jmeter.protocol.jdbc.processor.JDBCPostProcessor
190 | JDBCPreProcessor=org.apache.jmeter.protocol.jdbc.processor.JDBCPreProcessor
191 | JDBCSampler=org.apache.jmeter.protocol.jdbc.sampler.JDBCSampler
192 | # Renamed to JMSSamplerGui; keep original entry for backwards compatibility
193 | JMSConfigGui=org.apache.jmeter.protocol.jms.control.gui.JMSConfigGui
194 | JMSProperties=org.apache.jmeter.protocol.jms.sampler.JMSProperties
195 | JMSProperty=org.apache.jmeter.protocol.jms.sampler.JMSProperty
196 | JMSPublisherGui=org.apache.jmeter.protocol.jms.control.gui.JMSPublisherGui
197 | JMSSampler=org.apache.jmeter.protocol.jms.sampler.JMSSampler
198 | JMSSamplerGui=org.apache.jmeter.protocol.jms.control.gui.JMSSamplerGui
199 | JMSSubscriberGui=org.apache.jmeter.protocol.jms.control.gui.JMSSubscriberGui
200 | JSONPathAssertion=org.apache.jmeter.assertions.JSONPathAssertion
201 | JSONPathAssertionGui=org.apache.jmeter.assertions.gui.JSONPathAssertionGui
202 | JSONPostProcessor=org.apache.jmeter.extractor.json.jsonpath.JSONPostProcessor
203 | JSONPostProcessorGui=org.apache.jmeter.extractor.json.jsonpath.gui.JSONPostProcessorGui
204 | # Removed in r545311 as Jndi no longer present; keep for compat.
205 | JndiDefaultsGui=org.apache.jmeter.protocol.jms.control.gui.JndiDefaultsGui
206 | JSR223Assertion=org.apache.jmeter.assertions.JSR223Assertion
207 | JSR223Listener=org.apache.jmeter.visualizers.JSR223Listener
208 | JSR223PostProcessor=org.apache.jmeter.extractor.JSR223PostProcessor
209 | JSR223PreProcessor=org.apache.jmeter.modifiers.JSR223PreProcessor
210 | JSR223Sampler=org.apache.jmeter.protocol.java.sampler.JSR223Sampler
211 | JSR223Timer=org.apache.jmeter.timers.JSR223Timer
212 | JUnitSampler=org.apache.jmeter.protocol.java.sampler.JUnitSampler
213 | JUnitTestSamplerGui=org.apache.jmeter.protocol.java.control.gui.JUnitTestSamplerGui
214 | KeystoreConfig=org.apache.jmeter.config.KeystoreConfig
215 | LDAPArgument=org.apache.jmeter.protocol.ldap.config.gui.LDAPArgument
216 | LDAPArguments=org.apache.jmeter.protocol.ldap.config.gui.LDAPArguments
217 | LDAPArgumentsPanel=org.apache.jmeter.protocol.ldap.config.gui.LDAPArgumentsPanel
218 | LdapConfigGui=org.apache.jmeter.protocol.ldap.config.gui.LdapConfigGui
219 | LdapExtConfigGui=org.apache.jmeter.protocol.ldap.config.gui.LdapExtConfigGui
220 | LDAPExtSampler=org.apache.jmeter.protocol.ldap.sampler.LDAPExtSampler
221 | LdapExtTestSamplerGui=org.apache.jmeter.protocol.ldap.control.gui.LdapExtTestSamplerGui
222 | LDAPSampler=org.apache.jmeter.protocol.ldap.sampler.LDAPSampler
223 | LdapTestSamplerGui=org.apache.jmeter.protocol.ldap.control.gui.LdapTestSamplerGui
224 | LogicControllerGui=org.apache.jmeter.control.gui.LogicControllerGui
225 | LoginConfig=org.apache.jmeter.config.LoginConfig
226 | LoginConfigGui=org.apache.jmeter.config.gui.LoginConfigGui
227 | LoopController=org.apache.jmeter.control.LoopController
228 | LoopControlPanel=org.apache.jmeter.control.gui.LoopControlPanel
229 | MailerModel=org.apache.jmeter.reporters.MailerModel
230 | MailerResultCollector=org.apache.jmeter.reporters.MailerResultCollector
231 | MailerVisualizer=org.apache.jmeter.visualizers.MailerVisualizer
232 | MailReaderSampler=org.apache.jmeter.protocol.mail.sampler.MailReaderSampler
233 | MailReaderSamplerGui=org.apache.jmeter.protocol.mail.sampler.gui.MailReaderSamplerGui
234 | MD5HexAssertion=org.apache.jmeter.assertions.MD5HexAssertion
235 | MD5HexAssertionGUI=org.apache.jmeter.assertions.gui.MD5HexAssertionGUI
236 | ModuleController=org.apache.jmeter.control.ModuleController
237 | ModuleControllerGui=org.apache.jmeter.control.gui.ModuleControllerGui
238 | MongoScriptSampler=org.apache.jmeter.protocol.mongodb.sampler.MongoScriptSampler
239 | MongoSourceElement=org.apache.jmeter.protocol.mongodb.config.MongoSourceElement
240 |
241 | # removed in 3.2, class was deleted in r
242 | MonitorHealthVisualizer=org.apache.jmeter.visualizers.MonitorHealthVisualizer
243 |
244 | NamePanel=org.apache.jmeter.gui.NamePanel
245 | ObsoleteGui=org.apache.jmeter.config.gui.ObsoleteGui
246 | OnceOnlyController=org.apache.jmeter.control.OnceOnlyController
247 | OnceOnlyControllerGui=org.apache.jmeter.control.gui.OnceOnlyControllerGui
248 | # removed in 3.0, class was deleted in r1722962
249 | ParamMask=org.apache.jmeter.protocol.http.modifier.ParamMask
250 | # removed in 3.0, class was deleted in r1722757
251 | ParamModifier=org.apache.jmeter.protocol.http.modifier.ParamModifier
252 | # removed in 3.0, class was deleted in r1722757
253 | ParamModifierGui=org.apache.jmeter.protocol.http.modifier.gui.ParamModifierGui
254 | PoissonRandomTimer=org.apache.jmeter.timers.PoissonRandomTimer
255 | PoissonRandomTimerGui=org.apache.jmeter.timers.gui.PoissonRandomTimerGui
256 | PropertyControlGui=org.apache.jmeter.visualizers.PropertyControlGui
257 | ProxyControl=org.apache.jmeter.protocol.http.proxy.ProxyControl
258 | ProxyControlGui=org.apache.jmeter.protocol.http.proxy.gui.ProxyControlGui
259 | PublisherSampler=org.apache.jmeter.protocol.jms.sampler.PublisherSampler
260 | RandomControlGui=org.apache.jmeter.control.gui.RandomControlGui
261 | RandomController=org.apache.jmeter.control.RandomController
262 | RandomOrderController=org.apache.jmeter.control.RandomOrderController
263 | RandomOrderControllerGui=org.apache.jmeter.control.gui.RandomOrderControllerGui
264 | RandomVariableConfig=org.apache.jmeter.config.RandomVariableConfig
265 | RecordController=org.apache.jmeter.protocol.http.control.gui.RecordController
266 | RecordingController=org.apache.jmeter.protocol.http.control.RecordingController
267 | # removed in r1039684, class was deleted in r580452
268 | ReflectionThreadGroup=org.apache.jmeter.threads.ReflectionThreadGroup
269 | RegexExtractor=org.apache.jmeter.extractor.RegexExtractor
270 | RegexExtractorGui=org.apache.jmeter.extractor.gui.RegexExtractorGui
271 | RegExUserParameters=org.apache.jmeter.protocol.http.modifier.RegExUserParameters
272 | RegExUserParametersGui=org.apache.jmeter.protocol.http.modifier.gui.RegExUserParametersGui
273 | RemoteListenerWrapper=org.apache.jmeter.samplers.RemoteListenerWrapper
274 | RemoteSampleListenerWrapper=org.apache.jmeter.samplers.RemoteSampleListenerWrapper
275 | RemoteTestListenerWrapper=org.apache.jmeter.samplers.RemoteTestListenerWrapper
276 | RemoteThreadsListenerWrapper=org.apache.jmeter.threads.RemoteThreadsListenerWrapper
277 | ResponseAssertion=org.apache.jmeter.assertions.ResponseAssertion
278 | RespTimeGraphVisualizer=org.apache.jmeter.visualizers.RespTimeGraphVisualizer
279 | ResultAction=org.apache.jmeter.reporters.ResultAction
280 | ResultActionGui=org.apache.jmeter.reporters.gui.ResultActionGui
281 | ResultCollector=org.apache.jmeter.reporters.ResultCollector
282 | ResultSaver=org.apache.jmeter.reporters.ResultSaver
283 | ResultSaverGui=org.apache.jmeter.reporters.gui.ResultSaverGui
284 | RunTime=org.apache.jmeter.control.RunTime
285 | RunTimeGui=org.apache.jmeter.control.gui.RunTimeGui
286 | SampleSaveConfiguration=org.apache.jmeter.samplers.SampleSaveConfiguration
287 | SampleTimeout=org.apache.jmeter.modifiers.SampleTimeout
288 | SampleTimeoutGui=org.apache.jmeter.modifiers.gui.SampleTimeoutGui
289 | SimpleConfigGui=org.apache.jmeter.config.gui.SimpleConfigGui
290 | SimpleDataWriter=org.apache.jmeter.visualizers.SimpleDataWriter
291 | SizeAssertion=org.apache.jmeter.assertions.SizeAssertion
292 | SizeAssertionGui=org.apache.jmeter.assertions.gui.SizeAssertionGui
293 | SMIMEAssertion=org.apache.jmeter.assertions.SMIMEAssertionTestElement
294 | SMIMEAssertionGui=org.apache.jmeter.assertions.gui.SMIMEAssertionGui
295 | SmtpSampler=org.apache.jmeter.protocol.smtp.sampler.SmtpSampler
296 | SmtpSamplerGui=org.apache.jmeter.protocol.smtp.sampler.gui.SmtpSamplerGui
297 |
298 | # removed in 3.2, class was deleted in r
299 | SoapSampler=org.apache.jmeter.protocol.http.sampler.SoapSampler
300 | # removed in 3.2, class was deleted in r
301 | SoapSamplerGui=org.apache.jmeter.protocol.http.control.gui.SoapSamplerGui
302 |
303 | # removed in 3.1, class was deleted in r1763837
304 | SplineVisualizer=org.apache.jmeter.visualizers.SplineVisualizer
305 | # Originally deleted in r397955 as class is obsolete; needed for compat.
306 | SqlConfigGui=org.apache.jmeter.protocol.jdbc.config.gui.SqlConfigGui
307 | StaticHost=org.apache.jmeter.protocol.http.control.StaticHost
308 | StatGraphVisualizer=org.apache.jmeter.visualizers.StatGraphVisualizer
309 | StatVisualizer=org.apache.jmeter.visualizers.StatVisualizer
310 | SubscriberSampler=org.apache.jmeter.protocol.jms.sampler.SubscriberSampler
311 | SubstitutionElement=org.apache.jmeter.assertions.SubstitutionElement
312 | Summariser=org.apache.jmeter.reporters.Summariser
313 | SummariserGui=org.apache.jmeter.reporters.gui.SummariserGui
314 | SummaryReport=org.apache.jmeter.visualizers.SummaryReport
315 | SwitchController=org.apache.jmeter.control.SwitchController
316 | SwitchControllerGui=org.apache.jmeter.control.gui.SwitchControllerGui
317 | SyncTimer=org.apache.jmeter.timers.SyncTimer
318 | SystemSampler=org.apache.jmeter.protocol.system.SystemSampler
319 | SystemSamplerGui=org.apache.jmeter.protocol.system.gui.SystemSamplerGui
320 | TableVisualizer=org.apache.jmeter.visualizers.TableVisualizer
321 | TCPConfigGui=org.apache.jmeter.protocol.tcp.config.gui.TCPConfigGui
322 | TCPSampler=org.apache.jmeter.protocol.tcp.sampler.TCPSampler
323 | TCPSamplerGui=org.apache.jmeter.protocol.tcp.control.gui.TCPSamplerGui
324 | TestAction=org.apache.jmeter.sampler.TestAction
325 | TestActionGui=org.apache.jmeter.sampler.gui.TestActionGui
326 | TestBeanGUI=org.apache.jmeter.testbeans.gui.TestBeanGUI
327 | TestFragmentController=org.apache.jmeter.control.TestFragmentController
328 | TestFragmentControllerGui=org.apache.jmeter.control.gui.TestFragmentControllerGui
329 | TestPlan=org.apache.jmeter.testelement.TestPlan
330 | TestPlanGui=org.apache.jmeter.control.gui.TestPlanGui
331 | ThreadGroup=org.apache.jmeter.threads.ThreadGroup
332 | ThreadGroupGui=org.apache.jmeter.threads.gui.ThreadGroupGui
333 | PostThreadGroup=org.apache.jmeter.threads.PostThreadGroup
334 | PostThreadGroupGui=org.apache.jmeter.threads.gui.PostThreadGroupGui
335 | SetupThreadGroup=org.apache.jmeter.threads.SetupThreadGroup
336 | SetupThreadGroupGui=org.apache.jmeter.threads.gui.SetupThreadGroupGui
337 | ThroughputController=org.apache.jmeter.control.ThroughputController
338 | ThroughputControllerGui=org.apache.jmeter.control.gui.ThroughputControllerGui
339 | TransactionController=org.apache.jmeter.control.TransactionController
340 | TransactionControllerGui=org.apache.jmeter.control.gui.TransactionControllerGui
341 | TransactionSampler=org.apache.jmeter.control.TransactionSampler
342 | UniformRandomTimer=org.apache.jmeter.timers.UniformRandomTimer
343 | UniformRandomTimerGui=org.apache.jmeter.timers.gui.UniformRandomTimerGui
344 | URLRewritingModifier=org.apache.jmeter.protocol.http.modifier.URLRewritingModifier
345 | URLRewritingModifierGui=org.apache.jmeter.protocol.http.modifier.gui.URLRewritingModifierGui
346 | UserParameterModifier=org.apache.jmeter.protocol.http.modifier.UserParameterModifier
347 | UserParameterModifierGui=org.apache.jmeter.protocol.http.modifier.gui.UserParameterModifierGui
348 | UserParameters=org.apache.jmeter.modifiers.UserParameters
349 | UserParametersGui=org.apache.jmeter.modifiers.gui.UserParametersGui
350 | ViewResultsFullVisualizer=org.apache.jmeter.visualizers.ViewResultsFullVisualizer
351 | # removed in 3.0, class was deleted in r1722757
352 | WebServiceSampler=org.apache.jmeter.protocol.http.sampler.WebServiceSampler
353 | # removed in 3.0, class was deleted in r1722757
354 | WebServiceSamplerGui=org.apache.jmeter.protocol.http.control.gui.WebServiceSamplerGui
355 | WhileController=org.apache.jmeter.control.WhileController
356 | WhileControllerGui=org.apache.jmeter.control.gui.WhileControllerGui
357 | WorkBench=org.apache.jmeter.testelement.WorkBench
358 | WorkBenchGui=org.apache.jmeter.control.gui.WorkBenchGui
359 | XMLAssertion=org.apache.jmeter.assertions.XMLAssertion
360 | XMLAssertionGui=org.apache.jmeter.assertions.gui.XMLAssertionGui
361 | XMLSchemaAssertion=org.apache.jmeter.assertions.XMLSchemaAssertion
362 | XMLSchemaAssertionGUI=org.apache.jmeter.assertions.gui.XMLSchemaAssertionGUI
363 | XPathAssertion=org.apache.jmeter.assertions.XPathAssertion
364 | XPathAssertionGui=org.apache.jmeter.assertions.gui.XPathAssertionGui
365 | XPathExtractor=org.apache.jmeter.extractor.XPathExtractor
366 | XPathExtractorGui=org.apache.jmeter.extractor.gui.XPathExtractorGui
367 | #
368 | # Properties - all start with lower case letter and end with Prop
369 | #
370 | boolProp=org.apache.jmeter.testelement.property.BooleanProperty
371 | collectionProp=org.apache.jmeter.testelement.property.CollectionProperty
372 | doubleProp=org.apache.jmeter.testelement.property.DoubleProperty
373 | elementProp=org.apache.jmeter.testelement.property.TestElementProperty
374 | # see above - already defined as FloatProperty
375 | #floatProp=org.apache.jmeter.testelement.property.FloatProperty
376 | intProp=org.apache.jmeter.testelement.property.IntegerProperty
377 | longProp=org.apache.jmeter.testelement.property.LongProperty
378 | mapProp=org.apache.jmeter.testelement.property.MapProperty
379 | objProp=org.apache.jmeter.testelement.property.ObjectProperty
380 | stringProp=org.apache.jmeter.testelement.property.StringProperty
381 | #
382 | # Other - must start with a lower case letter (and not end with Prop)
383 | # (otherwise they could clash with the initial set of aliases)
384 | #
385 | hashTree=org.apache.jorphan.collections.ListedHashTree
386 | jmeterTestPlan=org.apache.jmeter.save.ScriptWrapper
387 | sample=org.apache.jmeter.samplers.SampleResult
388 | httpSample=org.apache.jmeter.protocol.http.sampler.HTTPSampleResult
389 | statSample=org.apache.jmeter.samplers.StatisticalSampleResult
390 | testResults=org.apache.jmeter.save.TestResultWrapper
391 | assertionResult=org.apache.jmeter.assertions.AssertionResult
392 |
393 | # removed in 3.2, class was deleted in r
394 | monitorStats=org.apache.jmeter.visualizers.MonitorStats
395 | sampleEvent=org.apache.jmeter.samplers.SampleEvent
396 | #
397 | # Converters to register. Must start line with '_'
398 | # If the converter is a collection of subitems, set equal to "collection"
399 | # If the converter needs to know the class mappings but is not a collection of
400 | # subitems, set it equal to "mapping"
401 | _org.apache.jmeter.protocol.http.sampler.HTTPSamplerBaseConverter=collection
402 | _org.apache.jmeter.protocol.http.util.HTTPResultConverter=collection
403 | _org.apache.jmeter.save.converters.BooleanPropertyConverter=
404 | _org.apache.jmeter.save.converters.IntegerPropertyConverter=
405 | _org.apache.jmeter.save.converters.LongPropertyConverter=
406 | _org.apache.jmeter.save.converters.MultiPropertyConverter=collection
407 | _org.apache.jmeter.save.converters.SampleEventConverter=
408 | _org.apache.jmeter.save.converters.SampleResultConverter=collection
409 | _org.apache.jmeter.save.converters.SampleSaveConfigurationConverter=collection
410 | _org.apache.jmeter.save.converters.StringPropertyConverter=
411 | _org.apache.jmeter.save.converters.HashTreeConverter=collection
412 | _org.apache.jmeter.save.converters.TestElementConverter=collection
413 | _org.apache.jmeter.save.converters.TestElementPropertyConverter=collection
414 | _org.apache.jmeter.save.converters.TestResultWrapperConverter=collection
415 | _org.apache.jmeter.save.ScriptWrapperConverter=mapping
416 | #
417 | # Remember to update the _version entry
418 | #
419 |
--------------------------------------------------------------------------------
/src/main/resources/jmxFileTemplate.jmx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | false
7 | false
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | continue
16 |
17 | false
18 | 1
19 |
20 | 1
21 | 1
22 | 1486127134000
23 | 1486127134000
24 | false
25 |
26 |
27 |
28 |
29 |
30 | true
31 |
32 |
33 |
34 | false
35 |
36 | =
37 |
38 |
39 |
40 | ""
41 |
42 |
43 |
44 |
45 |
46 |
47 | GET
48 | true
49 | false
50 | true
51 | false
52 | false
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
--------------------------------------------------------------------------------
/src/main/resources/log4j2.properties:
--------------------------------------------------------------------------------
1 | appenders=xyz
2 |
3 | #defining xyz
4 | appender.xyz.type = Console
5 | appender.xyz.name = myOutput
6 | appender.xyz.layout.type = PatternLayout
7 | appender.xyz.layout.pattern = [%d{yy-MMM-dd HH:mm:ss:SSS}] [%p] [%c{1}:%L] - %m%n
8 |
9 | rootLogger.level = info
10 |
11 | #rootLogger.appenderReferences
12 | rootLogger.appenderRefs = abc
13 |
14 | #assigning rootLogger appender to myOutput
15 | rootLogger.appenderRef.abc.ref = myOutput
--------------------------------------------------------------------------------