├── README.md
├── app
├── code
│ └── local
│ │ └── Hackathon
│ │ └── MongoOrderTransactions
│ │ ├── Helper
│ │ └── Data.php
│ │ ├── Model
│ │ ├── Mongo.php
│ │ ├── Observer.php
│ │ ├── Queue
│ │ │ └── Processor.php
│ │ └── Sales
│ │ │ └── Order.php
│ │ ├── etc
│ │ └── config.xml
│ │ └── sql
│ │ └── hackathon_ordertransaction_setup
│ │ └── mysql4-install-0.0.1.php
└── etc
│ └── modules
│ └── Hackathon_MongoOrderTransactions.xml
├── behat.yml
├── features
├── bootstrap
│ └── FeatureContext.php
└── checkout.feature
├── modman
└── tools
└── jmeter
├── MagentoStress.jmx
├── bin
├── ApacheJMeter.jar
├── BeanShellAssertion.bshrc
├── BeanShellFunction.bshrc
├── BeanShellListeners.bshrc
├── BeanShellSampler.bshrc
├── examples
│ ├── CSVSample.jmx
│ ├── CSVSample_actions.csv
│ └── CSVSample_user.csv
├── hc.parameters
├── httpclient.parameters
├── jmeter
├── jmeter-n-r.cmd
├── jmeter-n.cmd
├── jmeter-report
├── jmeter-report.bat
├── jmeter-server
├── jmeter-server.bat
├── jmeter-t.cmd
├── jmeter.bat
├── jmeter.properties
├── jmeter.sh
├── jmeterw.cmd
├── log4j.conf
├── logkit.xml
├── mirror-server.cmd
├── mirror-server.sh
├── proxyserver.jks
├── saveservice.properties
├── shutdown.cmd
├── shutdown.sh
├── stoptest.cmd
├── stoptest.sh
├── system.properties
├── upgrade.properties
├── user.properties
├── users.dtd
└── users.xml
├── graphs.py
├── lib
├── activation-1.1.1.jar
├── avalon-framework-4.1.4.jar
├── bsf-2.4.0.jar
├── bsf-api-3.1.jar
├── bsh-2.0b5.jar
├── bshclient.jar
├── commons-codec-1.5.jar
├── commons-collections-3.2.1.jar
├── commons-httpclient-3.1.jar
├── commons-io-2.0.1.jar
├── commons-jexl-1.1.jar
├── commons-lang-2.6.jar
├── commons-logging-1.1.1.jar
├── commons-net-3.0.1.jar
├── excalibur-datasource-1.1.1.jar
├── excalibur-instrument-1.0.jar
├── excalibur-logger-1.1.jar
├── excalibur-pool-1.2.jar
├── ext
│ ├── ApacheJMeter_components.jar
│ ├── ApacheJMeter_core.jar
│ ├── ApacheJMeter_ftp.jar
│ ├── ApacheJMeter_functions.jar
│ ├── ApacheJMeter_http.jar
│ ├── ApacheJMeter_java.jar
│ ├── ApacheJMeter_jdbc.jar
│ ├── ApacheJMeter_jms.jar
│ ├── ApacheJMeter_junit.jar
│ ├── ApacheJMeter_ldap.jar
│ ├── ApacheJMeter_mail.jar
│ ├── ApacheJMeter_monitors.jar
│ ├── ApacheJMeter_report.jar
│ └── ApacheJMeter_tcp.jar
├── geronimo-jms_1.1_spec-1.1.1.jar
├── htmllexer-2.1.jar
├── htmlparser-2.1.jar
├── httpclient-4.1.2.jar
├── httpcore-4.1.3.jar
├── httpmime-4.1.2.jar
├── jCharts-0.7.5.jar
├── jdom-1.1.jar
├── jorphan.jar
├── js-1.6R5.jar
├── jtidy-r938.jar
├── junit-4.9.jar
├── junit
│ └── test.jar
├── logkit-2.0.jar
├── mail-1.4.4.jar
├── oro-2.0.8.jar
├── serializer-2.7.1.jar
├── soap-2.3.1.jar
├── xalan-2.7.1.jar
├── xercesImpl-2.9.1.jar
├── xml-apis-1.3.04.jar
├── xmlgraphics-commons-1.3.1.jar
├── xpp3_min-1.1.4c.jar
└── xstream-1.3.1.jar
├── products.csv
└── run.sh
/README.md:
--------------------------------------------------------------------------------
1 | MongoDB-OrderTransactions
2 | =========================
3 |
4 | Hackathon Team
5 | --------------
6 | Anthony, Andreas, Rouven, Allistair, Vinai, Matthias
7 |
8 | About this project
9 | ------------------
10 | **Important: this code is a proof of concept and in no way meant to be used in production!**
11 |
12 | You can scale Magento in many ways but there is one bottleneck which won't go away: the checkout process.
13 | When an order is placed, Magento does a lot of work in the background. This poses a problem for high volume stores.
14 |
15 | How it works
16 | ------------
17 | This extension (part of the Magento Hackathon Munich in March 2012) uses a MongoDB database to solve the issue.
18 | The basic idea is to not create the orders directly on checkout but to push the order creation task to a queue which is processed by a cron job. The customer gets the confirmation as soon as the data data is written to the queue which should speed up the checkout quite a bit.
19 |
20 | To make this possible, the following aspects have to be considered and implemented:
21 |
22 | - save the quotes information in MongoDB and keep it up-to-date whenever the customer changes his cart.
23 | - check if there are enough articles in stock when a user adds product to the cart.
24 | - after the checkout, transform the quote to an order in MongoDB, create a job to insert the orders into the Magento database
25 | - remove old entries (completed jobs etc.) in the MongoDB database periodically.
26 | - Magento uses the order as a foreign key in several flat tables and the order addresses. Therefore the creation of this entries has to be pushed to the queue as well.
27 |
28 | Requirements
29 | ------------
30 | - **MongoDB**. Obviously. Find out how to install it in the [MongoDB documentation](http://www.mongodb.org/display/DOCS/Quickstart).
31 | - **MongoDB PHP driver**. This is a PECL extension. Check the [installation guide](http://www.php.net/manual/en/mongo.installation.php).
32 |
33 | Todo
34 | ----
35 | - Fix Mage_Checkout_Model_Type_Multishipping::createOrders()
36 | It doesn't use sales/service_quote::submitAll() or sales/service_quote::submitOrder()
37 | - Update MongoDB when user logs in (quote data is not updated correctly when you add products as guest and then log in?)
38 |
--------------------------------------------------------------------------------
/app/code/local/Hackathon/MongoOrderTransactions/Helper/Data.php:
--------------------------------------------------------------------------------
1 | getNode('global/hackathon_ordertransaction/mongo_db');
8 | }
9 |
10 | public function getNewOrderIdFromSequence()
11 | {
12 | /* @var $connection Varien_Db_Adapter_Pdo_Mysql */
13 | $resource = Mage::getSingleton('core/resource');
14 | $connection = $resource->getConnection('default_read');
15 | $table = $resource->getTableName('hackathon_ordertransaction/order_seq');
16 | $connection->query("REPLACE INTO {$table} SET handle=1");
17 | return $connection->lastInsertId($table);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/app/code/local/Hackathon/MongoOrderTransactions/Model/Mongo.php:
--------------------------------------------------------------------------------
1 | _mogodb = $mongo->magentoorder;
28 | // $posts ist eine MongoCollection (vergleichbar mit SQL-Tabelle, wird automatisch angelegt)
29 |
30 | $this->_tblSales = $this->_mogodb->sales;
31 | }
32 |
33 | private function setState($state) {
34 | $this->setData('state', $state);
35 |
36 | return $this;
37 | }
38 |
39 | public function addItem($productId,$qty) {
40 | $items = $this->getItems();
41 | $items[$productId] = $qty;
42 | $this->setItems($items);
43 |
44 | return $this;
45 | }
46 |
47 | public function removeItem($productId) {
48 |
49 | }
50 |
51 | public function setQuoteId($quoteId) {
52 | $this->setData('quote_id',$quoteId);
53 |
54 | return $this;
55 | }
56 |
57 | public function insertQuote() {
58 | $this->setState(self::QUOTE);
59 |
60 | $data = array(
61 | 'state' => $this->getState(),
62 | 'items' => $this->getItems(),
63 | 'quote_id' => $this->getQuoteId(),
64 | );
65 |
66 | $this->_tblSales->insert($data);
67 | }
68 |
69 | public function getId()
70 | {
71 | if(!is_object($this->getData('_id')))
72 | {
73 | return null;
74 | }
75 | return (string) $this->getData('_id');
76 | }
77 |
78 | public function getQuotes() {
79 | $quotes = $this->_tblSales->find();
80 | return $quotes;
81 | }
82 |
83 | public function loadQuote($quoteId) {
84 | $this->setData(array());
85 | $quote = $this->_tblSales->findOne(array('quote_id' => $quoteId));
86 | $this->setData($quote);
87 |
88 | return $this;
89 | }
90 |
91 | public function deleteQuote($quoteId) {
92 | if($this->getId()) {
93 | $this->_tblSales->remove(array('quote_id' => $quoteId, 'justOne' => true));
94 | }
95 | }
96 |
97 | /**
98 | * Saves the quote in MongoDB.
99 | *
100 | * @todo: update insertQuote() to use saveQuote() or refactor code
101 | * to use saveQuote() as save() does automatically choose correctly
102 | * between update and insert.
103 | *
104 | * @return void
105 | */
106 | public function saveQuote()
107 | {
108 | $this->setState(self::QUOTE);
109 |
110 | $data = array(
111 | '_id' => new MongoId($this->getId()),
112 | 'state' => $this->getState(),
113 | 'items' => $this->getItems(),
114 | 'quote_id' => $this->getQuoteId(),
115 | );
116 |
117 | $this->_tblSales->save($data);
118 | }
119 |
120 | public function saveOrder(Mage_Sales_Model_Order $order)
121 | {
122 | $mongoOrder = clone $order;
123 | $quoteId = $mongoOrder->getQuoteId();
124 | $this->loadQuote($quoteId);
125 | if (! $this->getId())
126 | {
127 | Mage::throwException(
128 | Mage::helper('hackathon_ordertransaction')->__('No associated quote with ID %s found in mongoDb', $quoteId)
129 | );
130 | }
131 | $orderId = Mage::helper('hackathon_ordertransaction')->getNewOrderIdFromSequence();
132 | $order->setId($orderId);
133 | $mongoOrder->setId($orderId)
134 | ->unsetData('customer')
135 | ->unsetData('quote');
136 | $this->_tblSales->update(array('_id' => new MongoId($this->getId())), array('$set' => array(
137 | 'order' => $mongoOrder->getData(),
138 | 'state' => self::ORDER
139 | )));
140 | $this->loadQuote($quoteId);
141 |
142 | return $this;
143 | }
144 |
145 | public function loadOrder($id, $field)
146 | {
147 | $this->setData(array());
148 | $this->_tblSales->ensureIndex("order.$field");
149 | $result = $this->_tblSales->findOne(array("order.$field" => $id));
150 | if ($result['_id'])
151 | {
152 | $this->setData($result);
153 | }
154 | return $this;
155 | }
156 |
157 | /**
158 | * Set the state to be deleted when cleanup is run
159 | *
160 | * @return null
161 | **/
162 | public function setToDelete($quoteId)
163 | {
164 | $this->_tblSales->update(
165 | array('quote_id' => $quoteId), array(
166 | '$set' => array(
167 | 'state' => self::DELETE
168 | )
169 | )
170 | );
171 | }
172 |
173 | /**
174 | * Set the state to be order
175 | *
176 | * To be used as a rollback function should the save
177 | * to persistent DB.
178 | *
179 | * @return null
180 | **/
181 | public function revertToOrder($quoteId)
182 | {
183 | $this->_tblSales->update(
184 | array('quote_id' => $quoteId), array(
185 | '$set' => array(
186 | 'state' => 'order'
187 | )
188 | )
189 | );
190 | }
191 |
192 | /**
193 | * Remove all quotes with a state of delete
194 | *
195 | * @return null
196 | **/
197 | public function clean()
198 | {
199 | $this->_tblSales->remove(array('state' => 'delete'));
200 | if($this->getId()) {
201 | $this->setState('deleted')
202 | ->updateQuote();
203 | }
204 | return $this;
205 | }
206 |
207 | public function updateQuote() {
208 | if($this->getId()) {
209 | $data = array(
210 | 'state' => $this->getState(),
211 | 'items' => $this->getItems(),
212 | 'quote_id' => $this->getQuoteId(),
213 | );
214 | $this->_tblSales->update(array('_id' => new MongoId($this->getId())),array('$set' => $data));
215 | } else {
216 | throw new Exception('could not update quote (no id set)');
217 | }
218 | return $this;
219 | }
220 |
221 | public function truncate() {
222 | $this->_tblSales->remove(array(), array("save" => true));
223 | return $this;
224 | }
225 |
226 | }
227 |
--------------------------------------------------------------------------------
/app/code/local/Hackathon/MongoOrderTransactions/Model/Observer.php:
--------------------------------------------------------------------------------
1 | getCart()->getQuote();
15 |
16 | $mongodb = Mage::getModel('hackathon_ordertransaction/mongo');
17 | $mongodb->loadQuote($quote->getId());
18 | $mongodb->setQuoteId($quote->getId());
19 | $mongodb->setItems(array());
20 | foreach($quote->getAllItems() as $item) {
21 | $mongodb->addItem($item->getProductId(), $item->getQty());
22 | }
23 | $mongodb->saveQuote();
24 |
25 | return $this;
26 | }
27 |
28 |
29 |
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/app/code/local/Hackathon/MongoOrderTransactions/Model/Queue/Processor.php:
--------------------------------------------------------------------------------
1 | getQuotes();
17 | foreach ($quotes as $quote) {
18 | try {
19 | $mongo->setToDelete($quote['quote_id']);
20 | $persistentOrder = Mage::getResourceModel('sales/order');
21 | $persistentOrder->setData($quote['order']);
22 | $persistentOrder->save();
23 | unset($persistentOrder);
24 | } catch (Exception $e) {
25 | $mongo->revertToOrder($quote['quote_id']);
26 | Mage::logException($e);
27 | }
28 | }
29 | unset($quotes, $mongo);
30 | }
31 |
32 | /**
33 | * Select all the Mongo DB orders that have been previously
34 | * merged and clean the documents.
35 | *
36 | * @return null
37 | **/
38 | public static function clean()
39 | {
40 | try {
41 | Mage::getModel('hackathon_ordertransaction/mongo')->clean();
42 | } catch (Exception $e) {
43 | Mage::logException($e);
44 | }
45 | }
46 | }
--------------------------------------------------------------------------------
/app/code/local/Hackathon/MongoOrderTransactions/Model/Sales/Order.php:
--------------------------------------------------------------------------------
1 | getId())
8 | {
9 | $this->_getMongo()->saveOrder($this);
10 | }
11 | else
12 | {
13 | return parent::save();
14 | }
15 | }
16 |
17 | public function load($id, $field = null)
18 | {
19 | parent::load($id, $field);
20 | if (! $this->getId())
21 | {
22 | if (is_null($field))
23 | {
24 | $field = $this->getResource()->getIdFieldName();
25 | }
26 | $mongoOrder = $this->_getMongo()->loadOrder($id, $field);
27 | if ($mongoOrder->getId())
28 | {
29 | $this->setData($mongoOrder->getOrder());
30 | }
31 | }
32 | return $this;
33 | }
34 |
35 | /**
36 | * @return Hackathon_MongoOrderTransactions_Model_Mongo
37 | */
38 | protected function _getMongo()
39 | {
40 | return Mage::getSingleton('hackathon_ordertransaction/mongo');
41 | }
42 | }
--------------------------------------------------------------------------------
/app/code/local/Hackathon/MongoOrderTransactions/etc/config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 0.0.1
6 |
7 |
8 |
9 |
10 |
11 | Hackathon_MongoOrderTransactions_Model
12 | hackathon_ordertransaction_resource
13 |
14 |
15 | Hackathon_MongoOrderTransactions_Model_Resource
16 |
17 |
hackathon_ordertransaction_seq
18 |
19 |
20 |
21 |
22 | Hackathon_MongoOrderTransactions_Model_Sales_Order
23 |
24 |
25 |
26 |
27 |
28 | Hackathon_MongoOrderTransactions_Helper
29 |
30 |
31 |
32 |
33 |
34 | Hackathon_MongoOrderTransactions
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 | hackathon_ordertransaction/observer
43 | checkoutCartSaveAfter
44 | singleton
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 | */5 * * * *
54 |
55 | hackathon_ordertransaction/queue_processor::merge
56 |
57 |
58 |
59 | */20 * * * *
60 |
61 | hackathon_ordertransaction/queue_processor::clean
62 |
63 |
64 |
65 |
66 |
67 |
68 | ordertransactions
69 |
70 |
71 |
--------------------------------------------------------------------------------
/app/code/local/Hackathon/MongoOrderTransactions/sql/hackathon_ordertransaction_setup/mysql4-install-0.0.1.php:
--------------------------------------------------------------------------------
1 | startSetup();
7 |
8 | $tableName = $installer->getTable('hackathon_ordertransaction/order_seq');
9 | if ($installer->tableExists($tableName))
10 | {
11 | $installer->getConnection()->dropTable($tableName);
12 | }
13 | $table = $installer->getConnection()->newTable($tableName);
14 | $table->addColumn('id', Varien_Db_Ddl_Table::TYPE_INTEGER, 10, array(
15 | 'primary' => true,
16 | 'unsigned' => true,
17 | 'identity' => true,
18 | ), 'Sequence Column')
19 | ->addColumn('handle', Varien_Db_Ddl_Table::TYPE_INTEGER, 1, array(
20 | 'unsigned' => true,
21 | 'null' => false,
22 | ), 'Key Column')
23 | ->addIndex(
24 | $installer->getConnection()->getIndexName($tableName, array('handle')),
25 | array('handle'), array('type' => Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE)
26 | )
27 | ->setComment('Order ID Sequence Table');
28 | $installer->getConnection()->createTable($table);
29 |
30 |
31 | /* @var $orderResource Mage_Sales_Model_Resource_Order */
32 | $orderResource = Mage::getResourceModel('sales/order');
33 |
34 | $sql = "SELECT MAX({$orderResource->getIdFieldName()}) FROM {$orderResource->getMainTable()}";
35 | $lastId = $installer->getConnection()->fetchOne($sql);
36 | if (! $lastId)
37 | {
38 | $lastId = 1;
39 | }
40 | $installer->run("
41 | ALTER TABLE {$tableName} AUTO_INCREMENT = {$lastId};
42 | INSERT INTO {$tableName} (id, handle) VALUES ($lastId, 1);
43 | ");
44 |
45 | $installer->endSetup();
--------------------------------------------------------------------------------
/app/etc/modules/Hackathon_MongoOrderTransactions.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | true
6 | local
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/behat.yml:
--------------------------------------------------------------------------------
1 | default:
2 | context:
3 | parameters:
4 | base_url: http://magentoce.development.local/
5 | # browser: chrome
6 | javascript_session: webdriver
7 |
--------------------------------------------------------------------------------
/features/bootstrap/FeatureContext.php:
--------------------------------------------------------------------------------
1 | \d+) milliseconds?$/
21 | */
22 | public function iWaitFor($milliseconds)
23 | {
24 | $this->getSession()->wait($milliseconds);
25 | }
26 |
27 | /**
28 | * Mouse click on an element with specified CSS.
29 | *
30 | * @Then /^(?:|I )click the? "(?P[^"]*)" element$/
31 | */
32 | public function clickElement($element)
33 | {
34 | $node = $this->getSession()->getPage()->find('css', $element);
35 |
36 | if (null === $node) {
37 | throw new ElementNotFoundException(
38 | $this->getSession(), 'element', 'css', $element
39 | );
40 | }
41 | $node->click();
42 | }
43 | }
--------------------------------------------------------------------------------
/features/checkout.feature:
--------------------------------------------------------------------------------
1 | Feature: Checkout
2 | In order to maximise site performance
3 | As a website user
4 | I need the product page to be save to a Mongo DB without causing error
5 |
6 | @javascript
7 | Scenario: Anonymous puchase of 1 product
8 | Given I am on "/electronics/cell-phones/nokia-2610-phone.html"
9 | And I press "Add to Cart"
10 | Then the "ul.messages li.success-msg span" element should contain "Nokia 2610 Phone was added to your shopping cart."
11 | # Then the "h1" element should contain "Shopping Cart"
12 | And I press "Proceed to Checkout"
13 | Then the "h1" element should contain "Checkout"
14 | # Guest Checkout
15 | And I check "login:guest"
16 | And I press "onepage-guest-register-button"
17 | # Billing Details
18 | And I fill in "billing:firstname" with "Test"
19 | And I fill in "billing:lastname" with "User"
20 | And I fill in "billing:email" with "testuser@local.com"
21 | And I fill in "billing:street1" with "Address Street 1"
22 | And I fill in "billing:city" with "City"
23 | And I fill in "billing:postcode" with "W1 1DS"
24 | And I select "GB" from "billing:country_id"
25 | And I fill in "billing:telephone" with "555118118"
26 | Then the "billing:use_for_shipping_yes" checkbox should be checked
27 | Then I should see an "div#billing-buttons-container button" element
28 | # And I wait for 5000 milliseconds
29 | And I click the "div#billing-buttons-container button" element
30 | # Shipping Method
31 | Then I should see an "div#shipping-method-buttons-container button" element
32 | And I wait for 5000 milliseconds
33 | And I click the "div#shipping-method-buttons-container button" element
34 | # Payment Method
35 | # And I wait for 5000 milliseconds
36 | Then I should see an "div#payment-buttons-container button" element
37 | And I wait for 5000 milliseconds
38 | And I check "p_method_checkmo"
39 | And I click the "div#payment-buttons-container button" element
40 | # Confirm Order
41 | And I wait for 5000 milliseconds
42 | Then I should see an "div#review-buttons-container button" element
43 | And I click the "div#review-buttons-container button" element
44 | And I wait for 5000 milliseconds
45 | Then the "h2" element should contain "Thank you for your purchase!"
46 | # Continue Shopping
47 | And I press "Continue Shopping"
48 | Then I should be on "/"
--------------------------------------------------------------------------------
/modman:
--------------------------------------------------------------------------------
1 |
2 |
3 | app/code/local/Hackathon/MongoOrderTransactions app/code/local/Hackathon/MongoOrderTransactions
4 | app/etc/modules/Hackathon_MongoOrderTransactions.xml app/etc/modules/Hackathon_MongoOrderTransactions.xml
5 |
6 |
--------------------------------------------------------------------------------
/tools/jmeter/MagentoStress.jmx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | false
6 |
7 |
8 | false
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | host
18 | ${__P(host,magentoce.development.local)}
19 | =
20 |
21 |
22 | meta.name
23 | Magento
24 | =
25 |
26 |
27 | threads
28 | ${__P(threads,1)}
29 | =
30 |
31 |
32 | outputDir
33 | /tmp
34 | =
35 |
36 |
37 | runtime
38 | ${__P(runtime,60)}
39 | =
40 |
41 |
42 | user.name
43 | ${__P(user,test@ibuildings.com)}
44 | =
45 |
46 |
47 | user.pass
48 | ${__P(password,password)}
49 | =
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 | ${host}
59 | 80
60 |
61 |
62 | http
63 |
64 |
65 | true
66 | 4
67 |
68 |
69 |
70 |
71 |
72 | Accept-Language
73 | en-us,en;q=0.5
74 |
75 |
76 | Accept
77 | text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
78 |
79 |
80 | Keep-Alive
81 | 300
82 |
83 |
84 | User-Agent
85 | Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3
86 |
87 |
88 | Accept-Encoding
89 | gzip,deflate
90 |
91 |
92 | Accept-Charset
93 | ISO-8859-1,utf-8;q=0.7,*;q=0.7
94 |
95 |
96 |
97 |
98 |
99 |
100 | MySQL server has gone away
101 | Unable to connect to database server
102 |
103 | false
104 | 6
105 | Assertion.response_data
106 |
107 |
108 |
109 | startnextloop
110 |
111 | false
112 | 1
113 |
114 | ${threads}
115 | 0
116 | 1320412218000
117 | 1320412225000
118 | false
119 | 3600
120 |
121 |
122 |
123 |
124 | ${runtime}
125 |
126 |
127 |
128 | false
129 | false
130 |
131 |
132 |
133 |
134 | true
135 |
136 |
137 |
138 |
139 |
140 |
141 | false
142 | product
143 | 166
144 | =
145 | true
146 |
147 |
148 | false
149 | related_product
150 |
151 | =
152 | true
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 | UTF-8
162 | /checkout/cart/add/
163 | POST
164 | true
165 | false
166 | true
167 | false
168 | false
169 | ^http://${host}/.*
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 | /checkout/onepage/
183 | GET
184 | true
185 | false
186 | true
187 | false
188 | false
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 | true
197 | method
198 | guest
199 | =
200 | true
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 | UTF-8
210 | /checkout/onepage/saveMethod/
211 | POST
212 | true
213 | false
214 | true
215 | false
216 | false
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 | true
225 | billing[address_id]
226 |
227 | =
228 | true
229 |
230 |
231 | true
232 | billing[firstname]
233 | test
234 | =
235 | true
236 |
237 |
238 | true
239 | billing[lastname]
240 | test
241 | =
242 | true
243 |
244 |
245 | true
246 | billing[company]
247 |
248 | =
249 | true
250 |
251 |
252 | true
253 | billing[email]
254 | test@test.com
255 | =
256 | true
257 |
258 |
259 | true
260 | billing[street][]
261 | test
262 | =
263 | true
264 |
265 |
266 | true
267 | billing[street][]
268 |
269 | =
270 | true
271 |
272 |
273 | true
274 | billing[city]
275 | test
276 | =
277 | true
278 |
279 |
280 | true
281 | billing[region_id]
282 |
283 | =
284 | true
285 |
286 |
287 | true
288 | billing[region]
289 |
290 | =
291 | true
292 |
293 |
294 | true
295 | billing[postcode]
296 | test36
297 | =
298 |
299 |
300 | true
301 | billing[country_id]
302 | GB
303 | =
304 |
305 |
306 | true
307 | billing[telephone]
308 | 0909709709709
309 | =
310 |
311 |
312 | true
313 | billing[fax]
314 |
315 | =
316 |
317 |
318 | true
319 | billing[customer_password]
320 |
321 | =
322 |
323 |
324 | true
325 | billing[confirm_password]
326 |
327 | =
328 |
329 |
330 | true
331 | billing[save_in_address_book]
332 | 1
333 | =
334 |
335 |
336 | true
337 | billing[use_for_shipping]
338 | 1
339 | =
340 |
341 |
342 |
343 |
344 |
345 |
346 |
347 |
348 | UTF-8
349 | /checkout/onepage/saveBilling/
350 | POST
351 | true
352 | false
353 | true
354 | false
355 | false
356 |
357 |
358 |
359 |
360 |
361 |
362 |
363 | true
364 | shipping_method
365 | flatrate_flatrate
366 | =
367 | true
368 |
369 |
370 |
371 |
372 |
373 |
374 |
375 |
376 | UTF-8
377 | /checkout/onepage/saveShippingMethod/
378 | POST
379 | true
380 | false
381 | true
382 | false
383 | false
384 |
385 |
386 |
387 |
388 |
389 |
390 |
391 | true
392 | payment[method]
393 | checkmo
394 | =
395 | true
396 |
397 |
398 |
399 |
400 |
401 |
402 |
403 |
404 | UTF-8
405 | /checkout/onepage/savePayment/
406 | POST
407 | true
408 | false
409 | true
410 | false
411 | false
412 |
413 |
414 |
415 |
416 |
417 |
418 |
419 | true
420 | payment[method]
421 | checkmo
422 | =
423 | true
424 |
425 |
426 |
427 |
428 |
429 |
430 |
431 |
432 | UTF-8
433 | /checkout/onepage/saveOrder/
434 | POST
435 | true
436 | false
437 | true
438 | false
439 | false
440 |
441 |
442 |
443 |
444 |
445 |
446 |
447 |
448 |
449 |
450 |
451 |
452 |
453 | /checkout/onepage/success/
454 | GET
455 | true
456 | false
457 | true
458 | false
459 | false
460 |
461 |
462 |
463 |
464 |
465 |
466 | false
467 |
468 | saveConfig
469 |
470 |
471 | true
472 | true
473 | true
474 |
475 | true
476 | true
477 | true
478 | true
479 | false
480 | true
481 | true
482 | false
483 | false
484 | false
485 | false
486 | false
487 | false
488 | false
489 | true
490 | 0
491 |
492 |
493 | ${outputDir}/${meta.name}/${threads}-results-tree.jtl
494 | Results tree log. Logging only errors otherwise the response log grows far too large
495 |
496 |
497 |
498 | false
499 |
500 | saveConfig
501 |
502 |
503 | true
504 | true
505 | true
506 |
507 | true
508 | true
509 | true
510 | true
511 | false
512 | true
513 | true
514 | false
515 | false
516 | false
517 | true
518 | false
519 | false
520 | false
521 | false
522 | 0
523 |
524 |
525 | ${outputDir}/${meta.name}/${threads}-summary-report.csv
526 | true
527 |
528 |
529 |
530 |
531 |
532 |
--------------------------------------------------------------------------------
/tools/jmeter/bin/ApacheJMeter.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/bin/ApacheJMeter.jar
--------------------------------------------------------------------------------
/tools/jmeter/bin/BeanShellAssertion.bshrc:
--------------------------------------------------------------------------------
1 | // Sample BeanShell Assertion initialisation file
2 |
3 | /*
4 | * Licensed to the Apache Software Foundation (ASF) under one or more
5 | * contributor license agreements. See the NOTICE file distributed with
6 | * this work for additional information regarding copyright ownership.
7 | * The ASF licenses this file to You under the Apache License, Version 2.0
8 | * (the "License"); you may not use this file except in compliance with
9 | * the License. You may obtain a copy of the License at
10 | *
11 | * http://www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing, software
14 | * distributed under the License is distributed on an "AS IS" BASIS,
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | * See the License for the specific language governing permissions and
17 | * limitations under the License.
18 | *
19 | */
20 |
21 | //print("Initialisation started");
22 |
23 | import org.apache.jmeter.util.JMeterUtils;
24 |
25 | i = j = k = 0; // for counters
26 |
27 | getprop(p){// get a JMeter property
28 | return JMeterUtils.getPropDefault(p,"");
29 | }
30 |
31 | getprop(p,d){// get a JMeter property with default
32 | return JMeterUtils.getPropDefault(p,d);
33 | }
34 |
35 | setprop(p,v){// set a JMeter property
36 | JMeterUtils.setProperty(p, v);
37 | }
38 |
39 | // Assertions can use the following methods on the Response object:
40 | // SampleResult.setStopThread(true)
41 | // SampleResult.setStopTest(true)
42 |
43 | //print("Initialisation complete");
44 |
--------------------------------------------------------------------------------
/tools/jmeter/bin/BeanShellFunction.bshrc:
--------------------------------------------------------------------------------
1 | // Sample BeanShell Function initialisation file
2 |
3 | /*
4 | * Licensed to the Apache Software Foundation (ASF) under one or more
5 | * contributor license agreements. See the NOTICE file distributed with
6 | * this work for additional information regarding copyright ownership.
7 | * The ASF licenses this file to You under the Apache License, Version 2.0
8 | * (the "License"); you may not use this file except in compliance with
9 | * the License. You may obtain a copy of the License at
10 | *
11 | * http://www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing, software
14 | * distributed under the License is distributed on an "AS IS" BASIS,
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | * See the License for the specific language governing permissions and
17 | * limitations under the License.
18 | *
19 | */
20 |
21 | // N.B. to enable this file to be used, define the JMeter property:
22 | // beanshell.function.init=BeanShellFunction.bshrc
23 |
24 | //print("Initialisation started");
25 |
26 | import org.apache.jmeter.util.JMeterUtils;
27 |
28 | i = j = k = 0; // for counters
29 |
30 | getprop(p){// get a JMeter property
31 | return JMeterUtils.getPropDefault(p,"");
32 | }
33 |
34 | getprop(p,d){// get a JMeter property with default
35 | return JMeterUtils.getPropDefault(p,d);
36 | }
37 |
38 | setprop(p,v){// set a JMeter property
39 | JMeterUtils.setProperty(p, v);
40 | }
41 |
42 | // Define routines to stop the test or the current thread
43 | stopTest(){// Stop the JMeter test
44 | org.apache.jmeter.engine.StandardJMeterEngine.stopEngine();
45 | }
46 |
47 | stopThread(){// Stop current JMeter thread
48 | org.apache.jmeter.engine.StandardJMeterEngine.stopThread(Thread.currentThread().getName());
49 | }
50 |
51 | // Fix ampersands in a string
52 | // e.g. fixAmps("Something containing & ...")
53 | // or fixAmps(vars.get("VARNAME")) - useful if VARNAME may contain "
54 | String fixAmps(s) {
55 | return s.replaceAll("&","&");
56 | }
57 |
58 | // Fix ampersands in a variable
59 | // e.g. fixAmps("VARNAME")
60 | String fixAmpsInVar(String varname) {
61 | return fixAmps(vars.get(varname));
62 | }
63 |
64 | //print("Initialisation complete");
65 |
--------------------------------------------------------------------------------
/tools/jmeter/bin/BeanShellListeners.bshrc:
--------------------------------------------------------------------------------
1 | // Example BeanShell Listener definitions
2 |
3 | /*
4 | * Licensed to the Apache Software Foundation (ASF) under one or more
5 | * contributor license agreements. See the NOTICE file distributed with
6 | * this work for additional information regarding copyright ownership.
7 | * The ASF licenses this file to You under the Apache License, Version 2.0
8 | * (the "License"); you may not use this file except in compliance with
9 | * the License. You may obtain a copy of the License at
10 | *
11 | * http://www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing, software
14 | * distributed under the License is distributed on an "AS IS" BASIS,
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | * See the License for the specific language governing permissions and
17 | * limitations under the License.
18 | *
19 | */
20 |
21 | // ThreadListener methods
22 |
23 | threadStarted(){
24 | print("threadStarted");
25 | }
26 |
27 | threadFinished(){
28 | print("threadFinished");
29 | }
30 |
31 | // TestListener methods
32 |
33 | testStarted(){
34 | print("testStarted");
35 | }
36 |
37 | testEnded(){
38 | print("testEnded");
39 | }
40 |
41 | testStarted(String s){
42 | print("testStarted "+s);
43 | }
44 |
45 | testEnded(String s){
46 | print("testEnded "+s);
47 | }
--------------------------------------------------------------------------------
/tools/jmeter/bin/BeanShellSampler.bshrc:
--------------------------------------------------------------------------------
1 | // Sample BeanShell Sampler initialisation file
2 | // To enable, define the JMeter property:
3 | // beanshell.sampler.init=BeanShellSampler.bshrc
4 |
5 | /*
6 | * Licensed to the Apache Software Foundation (ASF) under one or more
7 | * contributor license agreements. See the NOTICE file distributed with
8 | * this work for additional information regarding copyright ownership.
9 | * The ASF licenses this file to You under the Apache License, Version 2.0
10 | * (the "License"); you may not use this file except in compliance with
11 | * the License. You may obtain a copy of the License at
12 | *
13 | * http://www.apache.org/licenses/LICENSE-2.0
14 | *
15 | * Unless required by applicable law or agreed to in writing, software
16 | * distributed under the License is distributed on an "AS IS" BASIS,
17 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 | * See the License for the specific language governing permissions and
19 | * limitations under the License.
20 | *
21 | */
22 |
23 | //print("Initialisation started");
24 |
25 | import org.apache.jmeter.util.JMeterUtils;
26 |
27 | i = j = k = 0; // for counters
28 |
29 | getprop(p){// get a JMeter property
30 | return JMeterUtils.getPropDefault(p,"");
31 | }
32 |
33 | getprop(p,d){// get a JMeter property with default
34 | return JMeterUtils.getPropDefault(p,d);
35 | }
36 |
37 | setprop(p,v){// set a JMeter property
38 | JMeterUtils.setProperty(p, v);
39 | }
40 |
41 | // Define routines to stop the test or a thread
42 | stopEngine(){// Stop the JMeter test
43 | org.apache.jmeter.engine.StandardJMeterEngine.stopEngine();
44 | }
45 |
46 | stopThread(t){// Stop a JMeter thread
47 | org.apache.jmeter.engine.StandardJMeterEngine.stopThread(t);
48 | }
49 |
50 | String getVariables(){ // Create a listing of the thread variables
51 | StringBuffer sb = new StringBuffer(100);
52 | Iterator i = vars.getIterator();
53 | while(i.hasNext())
54 | {
55 | Map.Entry me = i.next();
56 | if(String.class.equals(me.getValue().getClass())){
57 | sb.append(me.toString()).append("\n");
58 | }
59 | }
60 | return sb.toString();
61 | }
62 |
63 | // Interruptible interface
64 |
65 | interrupt() {
66 | print("Interrupt detected");
67 | }
68 |
69 | //print("Initialisation complete");
70 |
--------------------------------------------------------------------------------
/tools/jmeter/bin/examples/CSVSample.jmx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Example of using CSV DataSet
6 | false
7 | false
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | false
17 | -1
18 |
19 | 1
20 | 1
21 | 1226457982000
22 | 1226457982000
23 | false
24 | continue
25 |
26 |
27 |
28 |
29 |
30 | Top level
31 | ,
32 |
33 | CSVSample_user.csv
34 | false
35 | false
36 | All threads
37 | true
38 | USER,PASS
39 |
40 |
41 |
42 |
43 |
44 |
45 | Sleep_Time
46 | 100
47 | =
48 |
49 |
50 | Sleep_Mask
51 | 0xFF
52 | =
53 |
54 |
55 | Label
56 | Login as ${USER}
57 | =
58 |
59 |
60 | ResponseCode
61 | 200
62 | =
63 |
64 |
65 | ResponseMessage
66 | OK
67 | =
68 |
69 |
70 | Status
71 | OK
72 | =
73 |
74 |
75 | SamplerData
76 | Login as ${USER} with password ${PASS}
77 | =
78 |
79 |
80 | ResultData
81 | Login OK for ${USER}
82 | =
83 |
84 |
85 |
86 | org.apache.jmeter.protocol.java.test.JavaTest
87 |
88 |
89 |
90 |
91 | ACTION
92 |
93 |
94 |
95 | none
96 |
97 |
98 | false
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 | Sleep_Time
107 | 100
108 | =
109 |
110 |
111 | Sleep_Mask
112 | 0xFF
113 | =
114 |
115 |
116 | Label
117 | Action = ${ACTION}
118 | =
119 |
120 |
121 | ResponseCode
122 | 200
123 | =
124 |
125 |
126 | ResponseMessage
127 | OK
128 | =
129 |
130 |
131 | Status
132 | OK
133 | =
134 |
135 |
136 | SamplerData
137 |
138 | =
139 |
140 |
141 | ResultData
142 |
143 | =
144 |
145 |
146 |
147 | org.apache.jmeter.protocol.java.test.JavaTest
148 |
149 |
150 |
151 | ${__jexl("${ACTION}" != "<EOF>")}
152 |
153 |
154 |
155 | CSVSample_actions.csv
156 |
157 | ACTION
158 | ,
159 | true
160 | false
161 | false
162 | All threads
163 |
164 |
165 |
166 | "${ACTION}" != "<EOF>"
167 | false
168 |
169 |
170 |
171 |
172 |
173 |
174 | Sleep_Time
175 | 100
176 | =
177 |
178 |
179 | Sleep_Mask
180 | 0xFF
181 | =
182 |
183 |
184 | Label
185 | Action ${ACTION}
186 | =
187 |
188 |
189 | ResponseCode
190 | 200
191 | =
192 |
193 |
194 | ResponseMessage
195 | OK
196 | =
197 |
198 |
199 | Status
200 | OK
201 | =
202 |
203 |
204 | SamplerData
205 | Perform Action ${ACTION}
206 | =
207 |
208 |
209 | ResultData
210 | Succeeded ${ACTION}
211 | =
212 |
213 |
214 |
215 | org.apache.jmeter.protocol.java.test.JavaTest
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 | Sleep_Time
225 | 100
226 | =
227 |
228 |
229 | Sleep_Mask
230 | 0xFF
231 | =
232 |
233 |
234 | Label
235 |
236 | =
237 |
238 |
239 | ResponseCode
240 | 200
241 | =
242 |
243 |
244 | ResponseMessage
245 | OK
246 | =
247 |
248 |
249 | Status
250 | OK
251 | =
252 |
253 |
254 | SamplerData
255 | Logout ${USER}
256 | =
257 |
258 |
259 | ResultData
260 | Succeeded ${USER}
261 | =
262 |
263 |
264 |
265 | org.apache.jmeter.protocol.java.test.JavaTest
266 |
267 |
268 |
269 |
270 |
271 |
272 | Sleep_Time
273 | 100
274 | =
275 |
276 |
277 | Sleep_Mask
278 | 0xFF
279 | =
280 |
281 |
282 | Label
283 | Action = ${ACTION}
284 | =
285 |
286 |
287 | ResponseCode
288 | 200
289 | =
290 |
291 |
292 | ResponseMessage
293 | OK
294 | =
295 |
296 |
297 | Status
298 | OK
299 | =
300 |
301 |
302 | SamplerData
303 |
304 | =
305 |
306 |
307 | ResultData
308 |
309 | =
310 |
311 |
312 |
313 | org.apache.jmeter.protocol.java.test.JavaTest
314 |
315 |
316 |
317 |
318 | false
319 |
320 | saveConfig
321 |
322 |
323 | true
324 | true
325 | true
326 |
327 | true
328 | true
329 | true
330 | true
331 | false
332 | true
333 | true
334 | false
335 | false
336 | true
337 | false
338 | false
339 | false
340 | false
341 | false
342 | 0
343 | true
344 |
345 |
346 | ~/CSVSample.jtl
347 |
348 |
349 |
350 | false
351 |
352 | saveConfig
353 |
354 |
355 | true
356 | true
357 | true
358 |
359 | true
360 | true
361 | true
362 | true
363 | false
364 | true
365 | true
366 | false
367 | false
368 | true
369 | false
370 | false
371 | false
372 | false
373 | false
374 | 0
375 | true
376 |
377 |
378 |
379 |
380 |
381 |
382 |
383 |
384 |
--------------------------------------------------------------------------------
/tools/jmeter/bin/examples/CSVSample_actions.csv:
--------------------------------------------------------------------------------
1 | a
2 | b
3 | c
4 | d
--------------------------------------------------------------------------------
/tools/jmeter/bin/examples/CSVSample_user.csv:
--------------------------------------------------------------------------------
1 | u1,p1
2 | u2,p2
--------------------------------------------------------------------------------
/tools/jmeter/bin/hc.parameters:
--------------------------------------------------------------------------------
1 | # Licensed to the Apache Software Foundation (ASF) under one or more
2 | # contributor license agreements. See the NOTICE file distributed with
3 | # this work for additional information regarding copyright ownership.
4 | # The ASF licenses this file to You under the Apache License, Version 2.0
5 | # (the "License"); you may not use this file except in compliance with
6 | # the License. You may obtain a copy of the License at
7 | #
8 | # http://www.apache.org/licenses/LICENSE-2.0
9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 |
16 | # Properties file used to define additional default Apache HttpClient parameters
17 | #
18 | #
19 | # This file is enabled by setting the JMeter property: hc.parameters.file
20 | # entries are of the form:
21 | #
22 | # property=value (for strings)
23 | # property$Type=value (for other types)
24 | #
25 | # where Type can be:
26 | # Integer
27 | # Long
28 | # Boolean
29 | # HttpVersion
30 | #
31 | # N.B. Other types are not yet implemented
32 | #
33 |
34 | # Examples:
35 |
36 | #http.protocol.version$HttpVersion=1.0
37 |
38 | #http.protocol.element-charset=ISO-8859-1
39 |
40 | #http.socket.timeout$Integer=10000
41 |
42 | #http.protocol.reject-relative-redirect$Boolean=true
43 |
--------------------------------------------------------------------------------
/tools/jmeter/bin/httpclient.parameters:
--------------------------------------------------------------------------------
1 | # Licensed to the Apache Software Foundation (ASF) under one or more
2 | # contributor license agreements. See the NOTICE file distributed with
3 | # this work for additional information regarding copyright ownership.
4 | # The ASF licenses this file to You under the Apache License, Version 2.0
5 | # (the "License"); you may not use this file except in compliance with
6 | # the License. You may obtain a copy of the License at
7 | #
8 | # http://www.apache.org/licenses/LICENSE-2.0
9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 |
16 | # Properties file used to define additional default Commons HttpClient parameters
17 | #
18 | # See: http://hc.apache.org/httpclient-3.x/preference-api.html
19 | #
20 | # This file is enabled by setting the JMeter property: httpclient.parameters.file
21 | # entries are of the form:
22 | #
23 | # property=value (for strings)
24 | # property$Type=value (for other types)
25 | #
26 | # where Type can be:
27 | # Integer
28 | # Long
29 | # Boolean
30 | # HttpVersion
31 | #
32 | # N.B. Other types are not yet implemented, so not all parameters are supported
33 | #
34 |
35 | # Examples:
36 |
37 | #http.protocol.version$HttpVersion=1.0
38 |
39 | #http.protocol.element-charset=ISO-8859-1
40 |
41 | #http.socket.timeout$Integer=10000
42 |
43 | #http.protocol.reject-relative-redirect$Boolean=true
44 |
45 | #http.authentication.preemptive$Boolean=true
--------------------------------------------------------------------------------
/tools/jmeter/bin/jmeter:
--------------------------------------------------------------------------------
1 | #! /bin/sh
2 |
3 | ## Licensed to the Apache Software Foundation (ASF) under one or more
4 | ## contributor license agreements. See the NOTICE file distributed with
5 | ## this work for additional information regarding copyright ownership.
6 | ## The ASF licenses this file to You under the Apache License, Version 2.0
7 | ## (the "License"); you may not use this file except in compliance with
8 | ## the License. You may obtain a copy of the License at
9 | ##
10 | ## http://www.apache.org/licenses/LICENSE-2.0
11 | ##
12 | ## Unless required by applicable law or agreed to in writing, software
13 | ## distributed under the License is distributed on an "AS IS" BASIS,
14 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | ## See the License for the specific language governing permissions and
16 | ## limitations under the License.
17 |
18 | ## ==============================================
19 | ## Environment variables:
20 | ## JVM_ARGS - optional java args, e.g. -Dprop=val
21 | ##
22 | ## ==============================================
23 |
24 |
25 | # The following should be reasonably good values for most tests running
26 | # on Sun JVMs. Following is the analysis on which it is based. If it's total
27 | # gibberish to you, please study my article at
28 | # http://www.atg.com/portal/myatg/developer?paf_dm=full&paf_gear_id=1100010&detailArticle=true&id=9606
29 | #
30 | # JMeter objects can generally be grouped into three life-length groups:
31 | #
32 | # - Per-sample objects (results, DOMs,...). An awful lot of those.
33 | # Life length of milliseconds to a few seconds.
34 | #
35 | # - Per-run objects (threads, listener data structures,...). Not that many
36 | # of those unless we use the table or tree listeners on heavy runs.
37 | # Life length of minutes to several hours, from creation to start of next run.
38 | #
39 | # - Per-work-session objects (test plans, GUIs,...).
40 | # Life length: for the life of the JVM.
41 |
42 | # This is the base heap size -- you may increase or decrease it to fit your
43 | # system's memory availablity:
44 | HEAP="-Xms512m -Xmx512m"
45 |
46 | # There's an awful lot of per-sample objects allocated during test run, so we
47 | # need a large eden to avoid too frequent scavenges -- you'll need to tune this
48 | # down proportionally if you reduce the HEAP values above:
49 | NEW="-XX:NewSize=128m -XX:MaxNewSize=128m"
50 |
51 | # This ratio and target have been proven OK in tests with a specially high
52 | # amount of per-sample objects (the HtmlParserHTMLParser tests):
53 | # SURVIVOR="-XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=50%"
54 |
55 | # Think about it: trying to keep per-run objects in tenuring definitely
56 | # represents a cost, but where's the benefit? They won't disappear before
57 | # the test is over, and at that point we will no longer care about performance.
58 | #
59 | # So we will have JMeter do an explicit Full GC before starting a test run,
60 | # but then we won't make any effort (or spend any CPU) to keep objects
61 | # in tenuring longer than the life of per-sample objects -- which is hopefully
62 | # shorter than the period between two scavenges):
63 | #
64 | TENURING="-XX:MaxTenuringThreshold=2"
65 |
66 | # This evacuation ratio is OK (see the comments for SURVIVOR) during test
67 | # runs -- not so sure about operations that bring a lot of long-lived information into
68 | # memory in a short period of time, such as loading tests or listener data files.
69 | # Increase it if you experience OutOfMemory problems during those operations
70 | # without having gone through a lot of Full GC-ing just before the OOM:
71 | # EVACUATION="-XX:MaxLiveObjectEvacuationRatio=20%"
72 |
73 | # Avoid the RMI-induced Full GCs to run too frequently -- once every ten minutes
74 | # should be more than enough:
75 | RMIGC="-Dsun.rmi.dgc.client.gcInterval=600000 -Dsun.rmi.dgc.server.gcInterval=600000"
76 |
77 | # PermSize is a scam. Leave it like this:
78 | PERM="-XX:PermSize=64m -XX:MaxPermSize=64m"
79 |
80 | # Finally, some tracing to help in case things go astray:
81 | #DEBUG="-verbose:gc -XX:+PrintTenuringDistribution"
82 |
83 | # Always dump on OOM (does not cost anything unless triggered)
84 | DUMP="-XX:+HeapDumpOnOutOfMemoryError"
85 |
86 | SERVER="-server"
87 |
88 | ARGS="$SERVER $DUMP $HEAP $NEW $SURVIVOR $TENURING $EVACUATION $RMIGC $PERM"
89 |
90 | java $ARGS $JVM_ARGS -jar `dirname $0`/ApacheJMeter.jar "$@"
91 |
--------------------------------------------------------------------------------
/tools/jmeter/bin/jmeter-n-r.cmd:
--------------------------------------------------------------------------------
1 | @echo off
2 |
3 | rem Licensed to the Apache Software Foundation (ASF) under one or more
4 | rem contributor license agreements. See the NOTICE file distributed with
5 | rem this work for additional information regarding copyright ownership.
6 | rem The ASF licenses this file to You under the Apache License, Version 2.0
7 | rem (the "License"); you may not use this file except in compliance with
8 | rem the License. You may obtain a copy of the License at
9 | rem
10 | rem http://www.apache.org/licenses/LICENSE-2.0
11 | rem
12 | rem Unless required by applicable law or agreed to in writing, software
13 | rem distributed under the License is distributed on an "AS IS" BASIS,
14 | rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | rem See the License for the specific language governing permissions and
16 | rem limitations under the License.
17 |
18 | rem ============================================
19 | rem Non-GUI version of JMETER.BAT (WinNT/2K only)
20 | rem
21 | rem Drop a JMX file on this batch script, and it
22 | rem will run it in non-GUI mode, with a log file
23 | rem formed from the input file name but with the
24 | rem extension .jtl
25 | rem
26 | rem Only the first parameter is used.
27 | rem Only works for Win2k.
28 | rem
29 | rem ============================================
30 |
31 | if "%OS%"=="Windows_NT" goto WinNT
32 | echo "Sorry, this command file requires Windows NT/ 2000 / XP"
33 | pause
34 | goto END
35 | :WinNT
36 |
37 | rem Check file is supplied
38 | if a == a%1 goto winNT2
39 |
40 | rem Allow special name LAST
41 | if LAST == %1 goto winNT3
42 |
43 | rem Check it has extension .jmx
44 | if "%~x1" == ".jmx" goto winNT3
45 | :winNT2
46 | echo Please supply a script name with the extension .jmx
47 | pause
48 | goto END
49 | :winNT3
50 |
51 | rem Change to script directory
52 | pushd %~dp1
53 |
54 | rem use same directory to find jmeter script
55 | call "%~dp0"jmeter -n -t "%~nx1" -j "%~n1.log" -l "%~n1.jtl" -r %2 %3 %4 %5 %6 %7 %8 %9
56 |
57 | popd
58 |
59 | :END
--------------------------------------------------------------------------------
/tools/jmeter/bin/jmeter-n.cmd:
--------------------------------------------------------------------------------
1 | @echo off
2 |
3 | rem Licensed to the Apache Software Foundation (ASF) under one or more
4 | rem contributor license agreements. See the NOTICE file distributed with
5 | rem this work for additional information regarding copyright ownership.
6 | rem The ASF licenses this file to You under the Apache License, Version 2.0
7 | rem (the "License"); you may not use this file except in compliance with
8 | rem the License. You may obtain a copy of the License at
9 | rem
10 | rem http://www.apache.org/licenses/LICENSE-2.0
11 | rem
12 | rem Unless required by applicable law or agreed to in writing, software
13 | rem distributed under the License is distributed on an "AS IS" BASIS,
14 | rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | rem See the License for the specific language governing permissions and
16 | rem limitations under the License.
17 |
18 | rem ============================================
19 | rem Non-GUI version of JMETER.BAT (WinNT/2K only)
20 | rem
21 | rem Drop a JMX file on this batch script, and it
22 | rem will run it in non-GUI mode, with a log file
23 | rem formed from the input file name but with the
24 | rem extension .jtl
25 | rem
26 | rem Only the first parameter is used.
27 | rem Only works for Win2k.
28 | rem
29 | rem ============================================
30 |
31 | if "%OS%"=="Windows_NT" goto WinNT
32 | echo "Sorry, this command file requires Windows NT/ 2000 / XP"
33 | pause
34 | goto END
35 | :WinNT
36 |
37 | rem Check file is supplied
38 | if a == a%1 goto winNT2
39 |
40 | rem Allow special name LAST
41 | if LAST == %1 goto winNT3
42 |
43 | rem Check it has extension .jmx
44 | if "%~x1" == ".jmx" goto winNT3
45 | :winNT2
46 | echo Please supply a script name with the extension .jmx
47 | pause
48 | goto END
49 | :winNT3
50 |
51 | rem Change to script directory
52 | pushd %~dp1
53 |
54 | rem use same directory to find jmeter script
55 | call "%~dp0"jmeter -n -t "%~nx1" -j "%~n1.log" -l "%~n1.jtl" %2 %3 %4 %5 %6 %7 %8 %9
56 |
57 | popd
58 |
59 | :END
--------------------------------------------------------------------------------
/tools/jmeter/bin/jmeter-report:
--------------------------------------------------------------------------------
1 | #! /bin/sh
2 |
3 | ## Licensed to the Apache Software Foundation (ASF) under one or more
4 | ## contributor license agreements. See the NOTICE file distributed with
5 | ## this work for additional information regarding copyright ownership.
6 | ## The ASF licenses this file to You under the Apache License, Version 2.0
7 | ## (the "License"); you may not use this file except in compliance with
8 | ## the License. You may obtain a copy of the License at
9 | ##
10 | ## http://www.apache.org/licenses/LICENSE-2.0
11 | ##
12 | ## Unless required by applicable law or agreed to in writing, software
13 | ## distributed under the License is distributed on an "AS IS" BASIS,
14 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | ## See the License for the specific language governing permissions and
16 | ## limitations under the License.
17 |
18 | # The following should be reasonably good values for most tests running
19 | # on Sun JVMs. Following is the analysis on which it is based. If it's total
20 | # gibberish to you, please study my article at
21 | # http://www.atg.com/portal/myatg/developer?paf_dm=full&paf_gear_id=1100010&detailArticle=true&id=9606
22 | #
23 | # JMeter objects can generally be grouped into three life-length groups:
24 | #
25 | # - Per-sample objects (results, DOMs,...). An awful lot of those.
26 | # Life length of milliseconds to a few seconds.
27 | #
28 | # - Per-run objects (threads, listener data structures,...). Not that many
29 | # of those unless we use the table or tree listeners on heavy runs.
30 | # Life length of minutes to several hours, from creation to start of next run.
31 | #
32 | # - Per-work-session objects (test plans, GUIs,...).
33 | # Life length: for the life of the JVM.
34 |
35 | # This is the base heap size -- you may increase or decrease it to fit your
36 | # system's memory availablity:
37 | HEAP="-Xms256m -Xmx256m"
38 |
39 | # There's an awful lot of per-sample objects allocated during test run, so we
40 | # need a large eden to avoid too frequent scavenges -- you'll need to tune this
41 | # down proportionally if you reduce the HEAP values above:
42 | NEW="-XX:NewSize=128m -XX:MaxNewSize=128m"
43 |
44 | # This ratio and target have been proven OK in tests with a specially high
45 | # amount of per-sample objects (the HtmlParserHTMLParser tests):
46 | # SURVIVOR="-XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=50%"
47 |
48 | # Think about it: trying to keep per-run objects in tenuring definitely
49 | # represents a cost, but where's the benefit? They won't disappear before
50 | # the test is over, and at that point we will no longer care about performance.
51 | #
52 | # So we will have JMeter do an explicit Full GC before starting a test run,
53 | # but then we won't make any effort (or spend any CPU) to keep objects
54 | # in tenuring longer than the life of per-sample objects -- which is hopefully
55 | # shorter than the period between two scavenges):
56 | #
57 | TENURING="-XX:MaxTenuringThreshold=2"
58 |
59 | # This evacuation ratio is OK (see the comments for SURVIVOR) during test
60 | # runs -- no so sure about operations that bring a lot of long-lived information into
61 | # memory in a short period of time, such as loading tests or listener data files.
62 | # Increase it if you experience OutOfMemory problems during those operations
63 | # without having gone through a lot of Full GC-ing just before the OOM:
64 | # EVACUATION="-XX:MaxLiveObjectEvacuationRatio=20%"
65 |
66 | # Avoid the RMI-induced Full GCs to run too frequently -- once every ten minutes
67 | # should be more than enough:
68 | RMIGC="-Dsun.rmi.dgc.client.gcInterval=600000 -Dsun.rmi.dgc.server.gcInterval=600000"
69 |
70 | # PermSize is a scam. Leave it like this:
71 | PERM="-XX:PermSize=64m -XX:MaxPermSize=64m"
72 |
73 | # Finally, some tracing to help in case things go astray:
74 | DEBUG="-verbose:gc -XX:+PrintTenuringDistribution"
75 |
76 | SERVER="-server"
77 |
78 | ARGS="$SERVER $HEAP $NEW $SURVIVOR $TENURING $EVACUATION $RMIGC $PERM $DEBUG"
79 |
80 | java -server -jar `dirname $0`/ApacheJMeter.jar report "$@"
81 |
--------------------------------------------------------------------------------
/tools/jmeter/bin/jmeter-report.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 |
3 | rem Licensed to the Apache Software Foundation (ASF) under one or more
4 | rem contributor license agreements. See the NOTICE file distributed with
5 | rem this work for additional information regarding copyright ownership.
6 | rem The ASF licenses this file to You under the Apache License, Version 2.0
7 | rem (the "License"); you may not use this file except in compliance with
8 | rem the License. You may obtain a copy of the License at
9 | rem
10 | rem http://www.apache.org/licenses/LICENSE-2.0
11 | rem
12 | rem Unless required by applicable law or agreed to in writing, software
13 | rem distributed under the License is distributed on an "AS IS" BASIS,
14 | rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | rem See the License for the specific language governing permissions and
16 | rem limitations under the License.
17 |
18 | rem set JAVA_HOME=c:/jdk1.5.0
19 |
20 | if not "%OS%"=="Windows_NT" goto win9xStart
21 | :winNTStart
22 | @setlocal
23 |
24 | rem Need to check if we are using the 4NT shell...
25 | if "%eval[2+2]" == "4" goto setup4NT
26 |
27 | rem On NT/2K grab all arguments at once
28 | set JMETER_CMD_LINE_ARGS=%*
29 | goto doneStart
30 |
31 | :setup4NT
32 | set JMETER_CMD_LINE_ARGS=%$
33 | goto doneStart
34 |
35 | :win9xStart
36 | rem Slurp the command line arguments. This loop allows for an unlimited number of
37 | rem agruments (up to the command line limit, anyway).
38 |
39 | set JMETER_CMD_LINE_ARGS=
40 |
41 | :setupArgs
42 | if %1a==a goto doneStart
43 | set JMETER_CMD_LINE_ARGS=%JMETER_CMD_LINE_ARGS% %1
44 | shift
45 | goto setupArgs
46 |
47 | :doneStart
48 | rem This label provides a place for the argument list loop to break out
49 | rem and for NT handling to skip to.
50 |
51 | rem See the unix startup file for the rationale of the following parameters,
52 | rem including some tuning recommendations
53 | set HEAP=-Xms256m -Xmx256m
54 | set NEW=-XX:NewSize=128m -XX:MaxNewSize=128m
55 | set SURVIVOR=-XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=50%
56 | set TENURING=-XX:MaxTenuringThreshold=2
57 | set RMIGC=-Dsun.rmi.dgc.client.gcInterval=600000 -Dsun.rmi.dgc.server.gcInterval=600000
58 | set PERM=-XX:PermSize=64m -XX:MaxPermSize=64m
59 | set DEBUG=-verbose:gc -XX:+PrintTenuringDistribution
60 | rem set ARGS=%HEAP% %NEW% %SURVIVOR% %TENURING% %RMIGC% %PERM% %DEBUG%
61 | set ARGS=-server -Xms128m -Xmx512m
62 |
63 | %JAVA_HOME%/bin/java %JVM_ARGS% %ARGS% -jar ApacheJMeter.jar report %JMETER_CMD_LINE_ARGS%
64 |
--------------------------------------------------------------------------------
/tools/jmeter/bin/jmeter-server:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | ## Licensed to the Apache Software Foundation (ASF) under one or more
4 | ## contributor license agreements. See the NOTICE file distributed with
5 | ## this work for additional information regarding copyright ownership.
6 | ## The ASF licenses this file to You under the Apache License, Version 2.0
7 | ## (the "License"); you may not use this file except in compliance with
8 | ## the License. You may obtain a copy of the License at
9 | ##
10 | ## http://www.apache.org/licenses/LICENSE-2.0
11 | ##
12 | ## Unless required by applicable law or agreed to in writing, software
13 | ## distributed under the License is distributed on an "AS IS" BASIS,
14 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | ## See the License for the specific language governing permissions and
16 | ## limitations under the License.
17 |
18 | ## To change the RMI/Server port:
19 | ##
20 | ## SERVER_PORT=1234 jmeter-server
21 | ##
22 |
23 | DIRNAME=`dirname $0`
24 |
25 | # If the client fails with:
26 | # ERROR - jmeter.engine.ClientJMeterEngine: java.rmi.ConnectException: Connection refused to host: 127.0.0.1
27 | # then it may be due to the server host returning 127.0.0.1 as its address
28 |
29 | # One way to fix this is to define RMI_HOST_DEF below
30 | #RMI_HOST_DEF=-Djava.rmi.server.hostname=xxx.xxx.xxx.xxx
31 |
32 | ${DIRNAME}/jmeter ${RMI_HOST_DEF} -Dserver_port=${SERVER_PORT:-1099} -s -j jmeter-server.log "$@"
33 |
--------------------------------------------------------------------------------
/tools/jmeter/bin/jmeter-server.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 |
3 | rem Licensed to the Apache Software Foundation (ASF) under one or more
4 | rem contributor license agreements. See the NOTICE file distributed with
5 | rem this work for additional information regarding copyright ownership.
6 | rem The ASF licenses this file to You under the Apache License, Version 2.0
7 | rem (the "License"); you may not use this file except in compliance with
8 | rem the License. You may obtain a copy of the License at
9 | rem
10 | rem http://www.apache.org/licenses/LICENSE-2.0
11 | rem
12 | rem Unless required by applicable law or agreed to in writing, software
13 | rem distributed under the License is distributed on an "AS IS" BASIS,
14 | rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | rem See the License for the specific language governing permissions and
16 | rem limitations under the License.
17 |
18 | rem ===============================================================
19 | rem Enviroment variables
20 | rem SERVER_PORT (optional) - define the rmiregistry and server port
21 | rem
22 | rem JVM_ARGS - Java flags - these are handled by jmeter.bat
23 | rem
24 | rem ===============================================================
25 |
26 |
27 | REM Protect environment against changes if possible:
28 | if "%OS%"=="Windows_NT" setlocal
29 |
30 | rem Need to check if we are using the 4NT shell...
31 | rem [Does that support the ~ constructs?]
32 | if "%eval[2+2]" == "4" goto winNT1
33 | if exist jmeter-server.bat goto winNT1
34 | echo Changing to JMeter home directory
35 | cd /D %~dp0
36 | :winNT1
37 |
38 | if exist %JMETER_HOME%\lib\ext\ApacheJMeter_core.jar goto setCP
39 | echo Could not find ApacheJmeter_core.jar ...
40 | REM Try to work out JMETER_HOME
41 | echo ... Trying JMETER_HOME=..
42 | set JMETER_HOME=..
43 | if exist %JMETER_HOME%\lib\ext\ApacheJMeter_core.jar goto setCP
44 | echo ... trying JMETER_HOME=.
45 | set JMETER_HOME=.
46 | if exist %JMETER_HOME%\lib\ext\ApacheJMeter_core.jar goto setCP
47 | echo Cannot determine JMETER_HOME !
48 | goto exit
49 |
50 | :setCP
51 | echo Found ApacheJMeter_core.jar
52 |
53 | REM No longer need to create the rmiregistry as it is done by the server
54 | REM set CLASSPATH=%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-1.2.jar
55 |
56 | REM START rmiregistry %SERVER_PORT%
57 | REM
58 |
59 | if not "%OS%"=="Windows_NT" goto win9xStart
60 | :winNTStart
61 |
62 | rem Need to check if we are using the 4NT shell...
63 | if "%eval[2+2]" == "4" goto setup4NT
64 |
65 | rem On NT/2K grab all arguments at once
66 | set JMETER_CMD_LINE_ARGS=%*
67 | goto doneStart
68 |
69 | :setup4NT
70 | set JMETER_CMD_LINE_ARGS=%$
71 | goto doneStart
72 |
73 | :win9xStart
74 | rem Slurp the command line arguments. This loop allows for an unlimited number of
75 | rem agruments (up to the command line limit, anyway).
76 |
77 | set JMETER_CMD_LINE_ARGS=
78 |
79 | :setupArgs
80 | if %1a==a goto doneStart
81 | set JMETER_CMD_LINE_ARGS=%JMETER_CMD_LINE_ARGS% %1
82 | shift
83 | goto setupArgs
84 |
85 | :doneStart
86 | rem This label provides a place for the argument list loop to break out
87 | rem and for NT handling to skip to.
88 |
89 | if not "%SERVER_PORT%" == "" goto port
90 |
91 | call jmeter -s -j jmeter-server.log %JMETER_CMD_LINE_ARGS%
92 | goto end
93 |
94 |
95 | :port
96 | call jmeter -Dserver_port=%SERVER_PORT% -s -j jmeter-server.log %JMETER_CMD_LINE_ARGS%
97 |
98 | :end
99 |
100 | rem No longer needed, as server is started in-process
101 | rem taskkill /F /IM rmiregistry.exe
102 |
103 | :exit
--------------------------------------------------------------------------------
/tools/jmeter/bin/jmeter-t.cmd:
--------------------------------------------------------------------------------
1 | @echo off
2 |
3 | rem Licensed to the Apache Software Foundation (ASF) under one or more
4 | rem contributor license agreements. See the NOTICE file distributed with
5 | rem this work for additional information regarding copyright ownership.
6 | rem The ASF licenses this file to You under the Apache License, Version 2.0
7 | rem (the "License"); you may not use this file except in compliance with
8 | rem the License. You may obtain a copy of the License at
9 | rem
10 | rem http://www.apache.org/licenses/LICENSE-2.0
11 | rem
12 | rem Unless required by applicable law or agreed to in writing, software
13 | rem distributed under the License is distributed on an "AS IS" BASIS,
14 | rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | rem See the License for the specific language governing permissions and
16 | rem limitations under the License.
17 |
18 | rem ============================================
19 | rem
20 | rem Drop a JMX file on this batch script, and it
21 | rem will load it in the GUI.
22 | rem
23 | rem Only the first parameter is used.
24 | rem Only works for Win2k.
25 | rem
26 | rem ============================================
27 |
28 |
29 | if "%OS%"=="Windows_NT" goto WinNT
30 | echo "Sorry, this command file requires Windows NT/ 2000 / XP"
31 | pause
32 | goto END
33 | :WinNT
34 |
35 | rem Check file is supplied
36 | if a == a%1 goto winNT2
37 |
38 | rem Allow special name LAST
39 | if LAST == %1 goto winNT3
40 |
41 | rem Check it has extension .jmx
42 | if "%~x1" == ".jmx" goto winNT3
43 | :winNT2
44 | echo Please supply a script name with the extension .jmx
45 | pause
46 | goto END
47 | :winNT3
48 |
49 | rem Start in directory with JMX file
50 | pushd %~dp1
51 |
52 | rem Prepend the directory in which this script resides in case not on path
53 |
54 | call "%~dp0"jmeter -j "%~n1.log" -t "%~nx1" %2 %3 %4 %5 %6 %7 %8 %9
55 |
56 | popd
57 |
58 | :END
--------------------------------------------------------------------------------
/tools/jmeter/bin/jmeter.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 |
3 | rem Licensed to the Apache Software Foundation (ASF) under one or more
4 | rem contributor license agreements. See the NOTICE file distributed with
5 | rem this work for additional information regarding copyright ownership.
6 | rem The ASF licenses this file to You under the Apache License, Version 2.0
7 | rem (the "License"); you may not use this file except in compliance with
8 | rem the License. You may obtain a copy of the License at
9 | rem
10 | rem http://www.apache.org/licenses/LICENSE-2.0
11 | rem
12 | rem Unless required by applicable law or agreed to in writing, software
13 | rem distributed under the License is distributed on an "AS IS" BASIS,
14 | rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | rem See the License for the specific language governing permissions and
16 | rem limitations under the License.
17 |
18 | rem =====================================================
19 | rem Environment variables that can be defined externally:
20 | rem
21 | rem JMETER_BIN - JMeter bin directory (must end in \)
22 | rem JM_LAUNCH - java.exe (default) or javaw.exe
23 | rem JVM_ARGS - additional java options, e.g. -Dprop=val
24 | rem
25 | rem =====================================================
26 |
27 | if .%JM_LAUNCH% == . set JM_LAUNCH=java.exe
28 |
29 | if not "%OS%"=="Windows_NT" goto win9xStart
30 | :winNTStart
31 | @setlocal
32 |
33 | rem Need to check if we are using the 4NT shell...
34 | if "%eval[2+2]" == "4" goto setup4NT
35 |
36 | if exist jmeter.bat goto winNT1
37 | if .%JMETER_BIN% == . set JMETER_BIN=%~dp0
38 |
39 | :winNT1
40 | rem On NT/2K grab all arguments at once
41 | set JMETER_CMD_LINE_ARGS=%*
42 | goto doneStart
43 |
44 | :setup4NT
45 | set JMETER_CMD_LINE_ARGS=%$
46 | goto doneStart
47 |
48 | :win9xStart
49 | rem Slurp the command line arguments. This loop allows for an unlimited number of
50 | rem arguments (up to the command line limit, anyway).
51 |
52 | set JMETER_CMD_LINE_ARGS=
53 |
54 | :setupArgs
55 | if %1a==a goto doneStart
56 | set JMETER_CMD_LINE_ARGS=%JMETER_CMD_LINE_ARGS% %1
57 | shift
58 | goto setupArgs
59 |
60 | :doneStart
61 | rem This label provides a place for the argument list loop to break out
62 | rem and for NT handling to skip to.
63 |
64 | rem The following link describes the -XX options:
65 | rem http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html
66 | rem http://java.sun.com/developer/TechTips/2000/tt1222.html has some more descriptions
67 | rem Unfortunately TechTips no longer seem to be available
68 |
69 | rem See the unix startup file for the rationale of the following parameters,
70 | rem including some tuning recommendations
71 | set HEAP=-Xms512m -Xmx512m
72 | set NEW=-XX:NewSize=128m -XX:MaxNewSize=128m
73 | set SURVIVOR=-XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=50%
74 | set TENURING=-XX:MaxTenuringThreshold=2
75 | set RMIGC=-Dsun.rmi.dgc.client.gcInterval=600000 -Dsun.rmi.dgc.server.gcInterval=600000
76 | set PERM=-XX:PermSize=64m -XX:MaxPermSize=64m
77 | rem set DEBUG=-verbose:gc -XX:+PrintTenuringDistribution
78 |
79 | rem Always dump on OOM (does not cost anything unless triggered)
80 | set DUMP=-XX:+HeapDumpOnOutOfMemoryError
81 |
82 | rem Additional settings that might help improve GUI performance on some platforms
83 | rem See: http://java.sun.com/products/java-media/2D/perf_graphics.html
84 |
85 | set DDRAW=
86 | rem Setting this flag to true turns off DirectDraw usage, which sometimes helps to get rid of a lot of rendering problems on Win32.
87 | rem set DDRAW=%DDRAW% -Dsun.java2d.noddraw=true
88 |
89 | rem Setting this flag to false turns off DirectDraw offscreen surfaces acceleration by forcing all createVolatileImage calls to become createImage calls, and disables hidden acceleration performed on surfaces created with createImage .
90 | rem set DDRAW=%DDRAW% -Dsun.java2d.ddoffscreen=false
91 |
92 | rem Setting this flag to true enables hardware-accelerated scaling.
93 | rem set DDRAW=%DDRAW% -Dsun.java2d.ddscale=true
94 |
95 | rem Server mode
96 | rem Collect the settings defined above
97 | set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %RMIGC% %PERM% %DDRAW%
98 |
99 | %JM_START% %JM_LAUNCH% %ARGS% %JVM_ARGS% -jar "%JMETER_BIN%ApacheJMeter.jar" %JMETER_CMD_LINE_ARGS%
100 |
101 | rem If the errorlevel is not zero, then display it and pause
102 |
103 | if NOT errorlevel 0 goto pause
104 | if errorlevel 1 goto pause
105 |
106 | goto end
107 |
108 | :pause
109 | echo errorlevel=%ERRORLEVEL%
110 | pause
111 |
112 | :end
113 |
--------------------------------------------------------------------------------
/tools/jmeter/bin/jmeter.sh:
--------------------------------------------------------------------------------
1 | #! /bin/sh
2 |
3 | ## Licensed to the Apache Software Foundation (ASF) under one or more
4 | ## contributor license agreements. See the NOTICE file distributed with
5 | ## this work for additional information regarding copyright ownership.
6 | ## The ASF licenses this file to You under the Apache License, Version 2.0
7 | ## (the "License"); you may not use this file except in compliance with
8 | ## the License. You may obtain a copy of the License at
9 | ##
10 | ## http://www.apache.org/licenses/LICENSE-2.0
11 | ##
12 | ## Unless required by applicable law or agreed to in writing, software
13 | ## distributed under the License is distributed on an "AS IS" BASIS,
14 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | ## See the License for the specific language governing permissions and
16 | ## limitations under the License.
17 |
18 | ## Basic JMeter startup script for Un*x systems
19 | ## See the "jmeter" script for details of options that can be used for Sun JVMs
20 |
21 | ## ==============================================
22 | ## Environment variables:
23 | ## JVM_ARGS - optional java args, e.g. -Dprop=val
24 | ##
25 | ## e.g.
26 | ## JVM_ARGS="-Xms512m -Xmx512m" jmeter.sh etc.
27 | ##
28 | ## ==============================================
29 |
30 | # Add Mac-specific property - should be ignored elsewhere (Bug 47064)
31 | java $JVM_ARGS -Dapple.laf.useScreenMenuBar=true -jar `dirname $0`/ApacheJMeter.jar "$@"
32 |
--------------------------------------------------------------------------------
/tools/jmeter/bin/jmeterw.cmd:
--------------------------------------------------------------------------------
1 | @echo off
2 | rem Run JMeter using javaw
3 |
4 | rem Licensed to the Apache Software Foundation (ASF) under one or more
5 | rem contributor license agreements. See the NOTICE file distributed with
6 | rem this work for additional information regarding copyright ownership.
7 | rem The ASF licenses this file to You under the Apache License, Version 2.0
8 | rem (the "License"); you may not use this file except in compliance with
9 | rem the License. You may obtain a copy of the License at
10 | rem
11 | rem http://www.apache.org/licenses/LICENSE-2.0
12 | rem
13 | rem Unless required by applicable law or agreed to in writing, software
14 | rem distributed under the License is distributed on an "AS IS" BASIS,
15 | rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | rem See the License for the specific language governing permissions and
17 | rem limitations under the License.
18 |
19 | set JM_START=start
20 | set JM_LAUNCH=javaw.exe
21 |
22 | rem Only works in Win2K
23 | call jmeter %*
24 |
25 | set JM_START=
26 | set JM_LAUNCH=
--------------------------------------------------------------------------------
/tools/jmeter/bin/log4j.conf:
--------------------------------------------------------------------------------
1 |
2 | ## Licensed to the Apache Software Foundation (ASF) under one or more
3 | ## contributor license agreements. See the NOTICE file distributed with
4 | ## this work for additional information regarding copyright ownership.
5 | ## The ASF licenses this file to You under the Apache License, Version 2.0
6 | ## (the "License"); you may not use this file except in compliance with
7 | ## the License. You may obtain a copy of the License at
8 | ##
9 | ## http://www.apache.org/licenses/LICENSE-2.0
10 | ##
11 | ## Unless required by applicable law or agreed to in writing, software
12 | ## distributed under the License is distributed on an "AS IS" BASIS,
13 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | ## See the License for the specific language governing permissions and
15 | ## limitations under the License.
16 |
17 | # Set appender specific options
18 |
19 | log4j.appender.Root_Appender=org.apache.log4j.RollingFileAppender
20 | log4j.appender.Root_Appender.File=root.log
21 | log4j.appender.Root_Appender.Append=true
22 | log4j.appender.Root_Appender.MaxBackupIndex=0
23 | log4j.appender.Root_Appender.layout=org.apache.log4j.PatternLayout
24 | log4j.appender.Root_Appender.layout.ConversionPattern=%-5p %d{MM/dd, hh:mm:ss} %-20.30c %m%n
25 |
26 | log4j.appender.File_Appender=org.apache.log4j.RollingFileAppender
27 | log4j.appender.File_Appender.File=extra.log
28 | log4j.appender.File_Appender.Append=false
29 | log4j.appender.File_Appender.layout=org.apache.log4j.PatternLayout
30 | log4j.appender.File_Appender.layout.ConversionPattern=%r %d{MM/dd, hh:mm:ss} %-5p %-50.50c %m%n
31 |
32 | log4j.appender.SystemOut_Appender=org.apache.log4j.ConsoleAppender
33 | log4j.appender.SystemOut_Appender.layout=org.apache.log4j.SimpleLayout
34 |
35 |
36 | # Set the appenders for the categories
37 | log4j.rootCategory=INFO,Root_Appender
38 | #log4j.configDebug
--------------------------------------------------------------------------------
/tools/jmeter/bin/logkit.xml:
--------------------------------------------------------------------------------
1 |
17 |
18 |
20 |
25 |
26 |
27 |
29 |
30 |
31 |
32 |
33 |
34 | false
35 | format.log
36 |
37 | AT: %{time:yyyy/MM/dd HH:mm:ss} PRI: %5.5{priority} CAT: %{category} TEXT: %{message} EX: %{throwable}\n
38 |
39 |
40 |
41 |
42 |
43 | false
44 | prefix
45 |
46 | 1000000
47 |
48 |
49 |
50 |
51 |
54 |
55 | false
56 | my_log
57 |
58 | 1000000
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
73 |
74 |
75 |
76 |
77 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
--------------------------------------------------------------------------------
/tools/jmeter/bin/mirror-server.cmd:
--------------------------------------------------------------------------------
1 | @echo off
2 |
3 | rem Licensed to the Apache Software Foundation (ASF) under one or more
4 | rem contributor license agreements. See the NOTICE file distributed with
5 | rem this work for additional information regarding copyright ownership.
6 | rem The ASF licenses this file to You under the Apache License, Version 2.0
7 | rem (the "License"); you may not use this file except in compliance with
8 | rem the License. You may obtain a copy of the License at
9 | rem
10 | rem http://www.apache.org/licenses/LICENSE-2.0
11 | rem
12 | rem Unless required by applicable law or agreed to in writing, software
13 | rem distributed under the License is distributed on an "AS IS" BASIS,
14 | rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | rem See the License for the specific language governing permissions and
16 | rem limitations under the License.
17 |
18 | rem Run the JMeter mirror server in non-GUI mode
19 | rem P1 = port to use (default 8080)
20 |
21 | setlocal
22 |
23 | cd /D %~dp0
24 |
25 | set CP=..\lib\ext\ApacheJMeter_http.jar;..\lib\ext\ApacheJMeter_core.jar;..\lib\jorphan.jar
26 | set CP=%CP%;..\lib\logkit-2.0.jar;..\lib\avalon-framework-4.1.4.jar;..\lib\oro-2.0.8.jar
27 |
28 | java -cp %CP% org.apache.jmeter.protocol.http.control.HttpMirrorServer %1
29 |
30 | pause
31 |
--------------------------------------------------------------------------------
/tools/jmeter/bin/mirror-server.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | ## Licensed to the Apache Software Foundation (ASF) under one or more
4 | ## contributor license agreements. See the NOTICE file distributed with
5 | ## this work for additional information regarding copyright ownership.
6 | ## The ASF licenses this file to You under the Apache License, Version 2.0
7 | ## (the "License"); you may not use this file except in compliance with
8 | ## the License. You may obtain a copy of the License at
9 | ##
10 | ## http://www.apache.org/licenses/LICENSE-2.0
11 | ##
12 | ## Unless required by applicable law or agreed to in writing, software
13 | ## distributed under the License is distributed on an "AS IS" BASIS,
14 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | ## See the License for the specific language governing permissions and
16 | ## limitations under the License.
17 |
18 | # Run the JMeter mirror server in non-GUI mode
19 | # P1 = port to use (default 8080)
20 |
21 | cd `dirname $0`
22 |
23 | CP=../lib/ext/ApacheJMeter_http.jar:../lib/ext/ApacheJMeter_core.jar:../lib/jorphan.jar
24 | CP=${CP}:../lib/logkit-2.0.jar:../lib/avalon-framework-4.1.4.jar:../lib/oro-2.0.8.jar
25 |
26 | java -cp $CP org.apache.jmeter.protocol.http.control.HttpMirrorServer $1
27 |
--------------------------------------------------------------------------------
/tools/jmeter/bin/proxyserver.jks:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/bin/proxyserver.jks
--------------------------------------------------------------------------------
/tools/jmeter/bin/saveservice.properties:
--------------------------------------------------------------------------------
1 | #---------------------------------------------------------
2 | # SAVESERVICE PROPERTIES
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 | # N.B. To ensure backward compatibility, please do not
22 | # change or delete any entries that have been used.
23 | # New entries can be added as necessary.
24 | #
25 | # Note that keys starting with an underscore are special,
26 | # and are not used as aliases.
27 | #
28 | # Please keep the entries in alphabetical order within the sections
29 | # to reduce the likelihood of duplicates
30 | #
31 | # version number of this file (automatically generated by SVN)
32 | _file_version=$Revision: 1050447 $
33 | #
34 | # Conversion version (for JMX output files)
35 | # Must be updated if the file has been changed since the previous release
36 | #
37 | # 1.7 = 2.1.1
38 | # 1.8 = 2.1.2
39 | # (Some version updates were missed here...)
40 | # 2.0 = 2.3.1
41 | # 2.1 = 2.3.2
42 | #
43 | _version=2.1
44 | #
45 | #
46 | # Character set encoding used to read and write JMeter XML files
47 | #
48 | _file_encoding=UTF-8
49 | #
50 | #---------------------------------------------------------
51 | #
52 | # The following properties are used to create aliases
53 | # [Must all start with capital letter]
54 | #
55 | AccessLogSampler=org.apache.jmeter.protocol.http.sampler.AccessLogSampler
56 | AjpSampler=org.apache.jmeter.protocol.http.sampler.AjpSampler
57 | AjpSamplerGui=org.apache.jmeter.protocol.http.control.gui.AjpSamplerGui
58 | AnchorModifier=org.apache.jmeter.protocol.http.modifier.AnchorModifier
59 | AnchorModifierGui=org.apache.jmeter.protocol.http.modifier.gui.AnchorModifierGui
60 | Argument=org.apache.jmeter.config.Argument
61 | Arguments=org.apache.jmeter.config.Arguments
62 | ArgumentsPanel=org.apache.jmeter.config.gui.ArgumentsPanel
63 | AssertionGui=org.apache.jmeter.assertions.gui.AssertionGui
64 | AssertionVisualizer=org.apache.jmeter.visualizers.AssertionVisualizer
65 | AuthManager=org.apache.jmeter.protocol.http.control.AuthManager
66 | Authorization=org.apache.jmeter.protocol.http.control.Authorization
67 | AuthPanel=org.apache.jmeter.protocol.http.gui.AuthPanel
68 | BarChart=org.apache.jmeter.testelement.BarChart
69 | BarChartGui=org.apache.jmeter.report.gui.BarChartGui
70 | BeanShellAssertion=org.apache.jmeter.assertions.BeanShellAssertion
71 | BeanShellAssertionGui=org.apache.jmeter.assertions.gui.BeanShellAssertionGui
72 | BeanShellListener=org.apache.jmeter.visualizers.BeanShellListener
73 | BeanShellPostProcessor=org.apache.jmeter.extractor.BeanShellPostProcessor
74 | BeanShellPreProcessor=org.apache.jmeter.modifiers.BeanShellPreProcessor
75 | BeanShellSampler=org.apache.jmeter.protocol.java.sampler.BeanShellSampler
76 | BeanShellSamplerGui=org.apache.jmeter.protocol.java.control.gui.BeanShellSamplerGui
77 | BeanShellTimer=org.apache.jmeter.timers.BeanShellTimer
78 | BSFAssertion=org.apache.jmeter.assertions.BSFAssertion
79 | BSFListener=org.apache.jmeter.visualizers.BSFListener
80 | BSFPreProcessor=org.apache.jmeter.modifiers.BSFPreProcessor
81 | BSFPostProcessor=org.apache.jmeter.extractor.BSFPostProcessor
82 | BSFSampler=org.apache.jmeter.protocol.java.sampler.BSFSampler
83 | BSFSamplerGui=org.apache.jmeter.protocol.java.control.gui.BSFSamplerGui
84 | BSFTimer=org.apache.jmeter.timers.BSFTimer
85 | CacheManager=org.apache.jmeter.protocol.http.control.CacheManager
86 | CacheManagerGui=org.apache.jmeter.protocol.http.gui.CacheManagerGui
87 | CompareAssertion=org.apache.jmeter.assertions.CompareAssertion
88 | ComparisonVisualizer=org.apache.jmeter.visualizers.ComparisonVisualizer
89 | ConfigTestElement=org.apache.jmeter.config.ConfigTestElement
90 | ConstantThroughputTimer=org.apache.jmeter.timers.ConstantThroughputTimer
91 | ConstantTimer=org.apache.jmeter.timers.ConstantTimer
92 | ConstantTimerGui=org.apache.jmeter.timers.gui.ConstantTimerGui
93 | Cookie=org.apache.jmeter.protocol.http.control.Cookie
94 | CookieManager=org.apache.jmeter.protocol.http.control.CookieManager
95 | CookiePanel=org.apache.jmeter.protocol.http.gui.CookiePanel
96 | CounterConfig=org.apache.jmeter.modifiers.CounterConfig
97 | CounterConfigGui=org.apache.jmeter.modifiers.gui.CounterConfigGui
98 | CSVDataSet=org.apache.jmeter.config.CSVDataSet
99 | DebugPostProcessor=org.apache.jmeter.extractor.DebugPostProcessor
100 | DebugSampler=org.apache.jmeter.sampler.DebugSampler
101 | DistributionGraphVisualizer=org.apache.jmeter.visualizers.DistributionGraphVisualizer
102 | DurationAssertion=org.apache.jmeter.assertions.DurationAssertion
103 | DurationAssertionGui=org.apache.jmeter.assertions.gui.DurationAssertionGui
104 | # Should really have been defined as floatProp to agree with other properties
105 | # No point changing this now
106 | FloatProperty=org.apache.jmeter.testelement.property.FloatProperty
107 | ForeachController=org.apache.jmeter.control.ForeachController
108 | ForeachControlPanel=org.apache.jmeter.control.gui.ForeachControlPanel
109 | FtpConfigGui=org.apache.jmeter.protocol.ftp.config.gui.FtpConfigGui
110 | FTPSampler=org.apache.jmeter.protocol.ftp.sampler.FTPSampler
111 | FtpTestSamplerGui=org.apache.jmeter.protocol.ftp.control.gui.FtpTestSamplerGui
112 | GaussianRandomTimer=org.apache.jmeter.timers.GaussianRandomTimer
113 | GaussianRandomTimerGui=org.apache.jmeter.timers.gui.GaussianRandomTimerGui
114 | GenericController=org.apache.jmeter.control.GenericController
115 | GraphAccumVisualizer=org.apache.jmeter.visualizers.GraphAccumVisualizer
116 | GraphVisualizer=org.apache.jmeter.visualizers.GraphVisualizer
117 | Header=org.apache.jmeter.protocol.http.control.Header
118 | HeaderManager=org.apache.jmeter.protocol.http.control.HeaderManager
119 | HeaderPanel=org.apache.jmeter.protocol.http.gui.HeaderPanel
120 | HTMLAssertion=org.apache.jmeter.assertions.HTMLAssertion
121 | HTMLAssertionGui=org.apache.jmeter.assertions.gui.HTMLAssertionGui
122 | HTMLReportWriter=org.apache.jmeter.report.writers.HTMLReportWriter
123 | HTMLReportWriterGui=org.apache.jmeter.report.writers.gui.HTMLReportWriterGui
124 | HTTPArgument=org.apache.jmeter.protocol.http.util.HTTPArgument
125 | HTTPArgumentsPanel=org.apache.jmeter.protocol.http.gui.HTTPArgumentsPanel
126 | HTTPFileArg=org.apache.jmeter.protocol.http.util.HTTPFileArg
127 | HTTPFileArgs=org.apache.jmeter.protocol.http.util.HTTPFileArgs
128 | HttpDefaultsGui=org.apache.jmeter.protocol.http.config.gui.HttpDefaultsGui
129 | HttpMirrorControl=org.apache.jmeter.protocol.http.control.HttpMirrorControl
130 | HttpMirrorControlGui=org.apache.jmeter.protocol.http.control.gui.HttpMirrorControlGui
131 | # Merge previous 2 HTTP samplers into one
132 | HTTPSampler_=org.apache.jmeter.protocol.http.sampler.HTTPSampler
133 | HTTPSampler2_=org.apache.jmeter.protocol.http.sampler.HTTPSampler2
134 | HTTPSamplerProxy,HTTPSampler,HTTPSampler2=org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy
135 | # Merge GUIs
136 | HttpTestSampleGui,HttpTestSampleGui2=org.apache.jmeter.protocol.http.control.gui.HttpTestSampleGui
137 | #HttpTestSampleGui2=org.apache.jmeter.protocol.http.control.gui.HttpTestSampleGui2
138 | IfController=org.apache.jmeter.control.IfController
139 | IfControllerPanel=org.apache.jmeter.control.gui.IfControllerPanel
140 | IncludeController=org.apache.jmeter.control.IncludeController
141 | IncludeControllerGui=org.apache.jmeter.control.gui.IncludeControllerGui
142 | InterleaveControl=org.apache.jmeter.control.InterleaveControl
143 | InterleaveControlGui=org.apache.jmeter.control.gui.InterleaveControlGui
144 | JavaConfig=org.apache.jmeter.protocol.java.config.JavaConfig
145 | JavaConfigGui=org.apache.jmeter.protocol.java.config.gui.JavaConfigGui
146 | JavaSampler=org.apache.jmeter.protocol.java.sampler.JavaSampler
147 | JavaTest=org.apache.jmeter.protocol.java.test.JavaTest
148 | JavaTestSamplerGui=org.apache.jmeter.protocol.java.control.gui.JavaTestSamplerGui
149 | JDBCDataSource=org.apache.jmeter.protocol.jdbc.config.DataSourceElement
150 | JDBCSampler=org.apache.jmeter.protocol.jdbc.sampler.JDBCSampler
151 | # Renamed to JMSSamplerGui; keep original entry for backwards compatibility
152 | JMSConfigGui=org.apache.jmeter.protocol.jms.control.gui.JMSConfigGui
153 | JMSPublisherGui=org.apache.jmeter.protocol.jms.control.gui.JMSPublisherGui
154 | JMSSampler=org.apache.jmeter.protocol.jms.sampler.JMSSampler
155 | JMSSamplerGui=org.apache.jmeter.protocol.jms.control.gui.JMSSamplerGui
156 | JMSSubscriberGui=org.apache.jmeter.protocol.jms.control.gui.JMSSubscriberGui
157 | JSR223Assertion=org.apache.jmeter.assertions.JSR223Assertion
158 | JSR223Listener=org.apache.jmeter.visualizers.JSR223Listener
159 | JSR223PostProcessor=org.apache.jmeter.extractor.JSR223PostProcessor
160 | JSR223PreProcessor=org.apache.jmeter.modifiers.JSR223PreProcessor
161 | JSR223Sampler=org.apache.jmeter.protocol.java.sampler.JSR223Sampler
162 | JSR223Timer=org.apache.jmeter.timers.JSR223Timer
163 | JUnitSampler=org.apache.jmeter.protocol.java.sampler.JUnitSampler
164 | JUnitTestSamplerGui=org.apache.jmeter.protocol.java.control.gui.JUnitTestSamplerGui
165 | LDAPArgument=org.apache.jmeter.protocol.ldap.config.gui.LDAPArgument
166 | LDAPArguments=org.apache.jmeter.protocol.ldap.config.gui.LDAPArguments
167 | LDAPArgumentsPanel=org.apache.jmeter.protocol.ldap.config.gui.LDAPArgumentsPanel
168 | LdapConfigGui=org.apache.jmeter.protocol.ldap.config.gui.LdapConfigGui
169 | LdapExtConfigGui=org.apache.jmeter.protocol.ldap.config.gui.LdapExtConfigGui
170 | LDAPExtSampler=org.apache.jmeter.protocol.ldap.sampler.LDAPExtSampler
171 | LdapExtTestSamplerGui=org.apache.jmeter.protocol.ldap.control.gui.LdapExtTestSamplerGui
172 | LDAPSampler=org.apache.jmeter.protocol.ldap.sampler.LDAPSampler
173 | LdapTestSamplerGui=org.apache.jmeter.protocol.ldap.control.gui.LdapTestSamplerGui
174 | LineChart=org.apache.jmeter.testelement.LineChart
175 | LineGraphGui=org.apache.jmeter.report.gui.LineGraphGui
176 | LogicControllerGui=org.apache.jmeter.control.gui.LogicControllerGui
177 | LoginConfig=org.apache.jmeter.config.LoginConfig
178 | LoginConfigGui=org.apache.jmeter.config.gui.LoginConfigGui
179 | LoopController=org.apache.jmeter.control.LoopController
180 | LoopControlPanel=org.apache.jmeter.control.gui.LoopControlPanel
181 | MailerModel=org.apache.jmeter.reporters.MailerModel
182 | MailerResultCollector=org.apache.jmeter.reporters.MailerResultCollector
183 | MailerVisualizer=org.apache.jmeter.visualizers.MailerVisualizer
184 | MailReaderSampler=org.apache.jmeter.protocol.mail.sampler.MailReaderSampler
185 | MailReaderSamplerGui=org.apache.jmeter.protocol.mail.sampler.gui.MailReaderSamplerGui
186 | MD5HexAssertion=org.apache.jmeter.assertions.MD5HexAssertion
187 | MD5HexAssertionGUI=org.apache.jmeter.assertions.gui.MD5HexAssertionGUI
188 | ModuleController=org.apache.jmeter.control.ModuleController
189 | ModuleControllerGui=org.apache.jmeter.control.gui.ModuleControllerGui
190 | MonitorHealthVisualizer=org.apache.jmeter.visualizers.MonitorHealthVisualizer
191 | NamePanel=org.apache.jmeter.gui.NamePanel
192 | ObsoleteGui=org.apache.jmeter.config.gui.ObsoleteGui
193 | OnceOnlyController=org.apache.jmeter.control.OnceOnlyController
194 | OnceOnlyControllerGui=org.apache.jmeter.control.gui.OnceOnlyControllerGui
195 | ParamMask=org.apache.jmeter.protocol.http.modifier.ParamMask
196 | ParamModifier=org.apache.jmeter.protocol.http.modifier.ParamModifier
197 | ParamModifierGui=org.apache.jmeter.protocol.http.modifier.gui.ParamModifierGui
198 | PropertyControlGui=org.apache.jmeter.visualizers.PropertyControlGui
199 | ProxyControl=org.apache.jmeter.protocol.http.proxy.ProxyControl
200 | ProxyControlGui=org.apache.jmeter.protocol.http.proxy.gui.ProxyControlGui
201 | PublisherSampler=org.apache.jmeter.protocol.jms.sampler.PublisherSampler
202 | RandomControlGui=org.apache.jmeter.control.gui.RandomControlGui
203 | RandomController=org.apache.jmeter.control.RandomController
204 | RandomOrderController=org.apache.jmeter.control.RandomOrderController
205 | RandomOrderControllerGui=org.apache.jmeter.control.gui.RandomOrderControllerGui
206 | RandomVariableConfig=org.apache.jmeter.config.RandomVariableConfig
207 | RecordController=org.apache.jmeter.protocol.http.control.gui.RecordController
208 | RecordingController=org.apache.jmeter.protocol.http.control.RecordingController
209 | RegexExtractor=org.apache.jmeter.extractor.RegexExtractor
210 | RegexExtractorGui=org.apache.jmeter.extractor.gui.RegexExtractorGui
211 | RemoteListenerWrapper=org.apache.jmeter.samplers.RemoteListenerWrapper
212 | RemoteSampleListenerWrapper=org.apache.jmeter.samplers.RemoteSampleListenerWrapper
213 | RemoteTestListenerWrapper=org.apache.jmeter.samplers.RemoteTestListenerWrapper
214 | ReportGui=org.apache.jmeter.control.gui.ReportGui
215 | ReportPage=org.apache.jmeter.testelement.ReportPage
216 | ReportPageGui=org.apache.jmeter.report.gui.ReportPageGui
217 | ReportPlan=org.apache.jmeter.testelement.ReportPlan
218 | ResponseAssertion=org.apache.jmeter.assertions.ResponseAssertion
219 | ResultAction=org.apache.jmeter.reporters.ResultAction
220 | ResultActionGui=org.apache.jmeter.reporters.gui.ResultActionGui
221 | ResultCollector=org.apache.jmeter.reporters.ResultCollector
222 | ResultSaver=org.apache.jmeter.reporters.ResultSaver
223 | ResultSaverGui=org.apache.jmeter.reporters.gui.ResultSaverGui
224 | RunTime=org.apache.jmeter.control.RunTime
225 | RunTimeGui=org.apache.jmeter.control.gui.RunTimeGui
226 | SampleSaveConfiguration=org.apache.jmeter.samplers.SampleSaveConfiguration
227 | SimpleConfigGui=org.apache.jmeter.config.gui.SimpleConfigGui
228 | SimpleDataWriter=org.apache.jmeter.visualizers.SimpleDataWriter
229 | SizeAssertion=org.apache.jmeter.assertions.SizeAssertion
230 | SizeAssertionGui=org.apache.jmeter.assertions.gui.SizeAssertionGui
231 | SMIMEAssertion=org.apache.jmeter.assertions.SMIMEAssertionTestElement
232 | SMIMEAssertionGui=org.apache.jmeter.assertions.gui.SMIMEAssertionGui
233 | SmtpSampler=org.apache.jmeter.protocol.smtp.sampler.SmtpSampler
234 | SmtpSamplerGui=org.apache.jmeter.protocol.smtp.sampler.gui.SmtpSamplerGui
235 | SoapSampler=org.apache.jmeter.protocol.http.sampler.SoapSampler
236 | SoapSamplerGui=org.apache.jmeter.protocol.http.control.gui.SoapSamplerGui
237 | SplineVisualizer=org.apache.jmeter.visualizers.SplineVisualizer
238 | StatGraphVisualizer=org.apache.jmeter.visualizers.StatGraphVisualizer
239 | StatVisualizer=org.apache.jmeter.visualizers.StatVisualizer
240 | SubscriberSampler=org.apache.jmeter.protocol.jms.sampler.SubscriberSampler
241 | SubstitutionElement=org.apache.jmeter.assertions.SubstitutionElement
242 | Summariser=org.apache.jmeter.reporters.Summariser
243 | SummariserGui=org.apache.jmeter.reporters.gui.SummariserGui
244 | SummaryReport=org.apache.jmeter.visualizers.SummaryReport
245 | SwitchController=org.apache.jmeter.control.SwitchController
246 | SwitchControllerGui=org.apache.jmeter.control.gui.SwitchControllerGui
247 | SyncTimer=org.apache.jmeter.timers.SyncTimer
248 | Table=org.apache.jmeter.testelement.Table
249 | TableGui=org.apache.jmeter.report.gui.TableGui
250 | TableVisualizer=org.apache.jmeter.visualizers.TableVisualizer
251 | TCPConfigGui=org.apache.jmeter.protocol.tcp.config.gui.TCPConfigGui
252 | TCPSampler=org.apache.jmeter.protocol.tcp.sampler.TCPSampler
253 | TCPSamplerGui=org.apache.jmeter.protocol.tcp.control.gui.TCPSamplerGui
254 | TestAction=org.apache.jmeter.sampler.TestAction
255 | TestActionGui=org.apache.jmeter.sampler.gui.TestActionGui
256 | TestBeanGUI=org.apache.jmeter.testbeans.gui.TestBeanGUI
257 | TestFragmentController=org.apache.jmeter.control.TestFragmentController
258 | TestFragmentControllerGui=org.apache.jmeter.control.gui.TestFragmentControllerGui
259 | TestPlan=org.apache.jmeter.testelement.TestPlan
260 | TestPlanGui=org.apache.jmeter.control.gui.TestPlanGui
261 | ThreadGroup=org.apache.jmeter.threads.ThreadGroup
262 | ThreadGroupGui=org.apache.jmeter.threads.gui.ThreadGroupGui
263 | PostThreadGroup=org.apache.jmeter.threads.PostThreadGroup
264 | PostThreadGroupGui=org.apache.jmeter.threads.gui.PostThreadGroupGui
265 | SetupThreadGroup=org.apache.jmeter.threads.SetupThreadGroup
266 | SetupThreadGroupGui=org.apache.jmeter.threads.gui.SetupThreadGroupGui
267 | ThroughputController=org.apache.jmeter.control.ThroughputController
268 | ThroughputControllerGui=org.apache.jmeter.control.gui.ThroughputControllerGui
269 | TransactionController=org.apache.jmeter.control.TransactionController
270 | TransactionControllerGui=org.apache.jmeter.control.gui.TransactionControllerGui
271 | TransactionSampler=org.apache.jmeter.control.TransactionSampler
272 | UniformRandomTimer=org.apache.jmeter.timers.UniformRandomTimer
273 | UniformRandomTimerGui=org.apache.jmeter.timers.gui.UniformRandomTimerGui
274 | URLRewritingModifier=org.apache.jmeter.protocol.http.modifier.URLRewritingModifier
275 | URLRewritingModifierGui=org.apache.jmeter.protocol.http.modifier.gui.URLRewritingModifierGui
276 | UserParameterModifier=org.apache.jmeter.protocol.http.modifier.UserParameterModifier
277 | UserParameterModifierGui=org.apache.jmeter.protocol.http.modifier.gui.UserParameterModifierGui
278 | UserParameters=org.apache.jmeter.modifiers.UserParameters
279 | UserParametersGui=org.apache.jmeter.modifiers.gui.UserParametersGui
280 | ViewResultsFullVisualizer=org.apache.jmeter.visualizers.ViewResultsFullVisualizer
281 | WebServiceSampler=org.apache.jmeter.protocol.http.sampler.WebServiceSampler
282 | WebServiceSamplerGui=org.apache.jmeter.protocol.http.control.gui.WebServiceSamplerGui
283 | WhileController=org.apache.jmeter.control.WhileController
284 | WhileControllerGui=org.apache.jmeter.control.gui.WhileControllerGui
285 | WorkBench=org.apache.jmeter.testelement.WorkBench
286 | WorkBenchGui=org.apache.jmeter.control.gui.WorkBenchGui
287 | XMLAssertion=org.apache.jmeter.assertions.XMLAssertion
288 | XMLAssertionGui=org.apache.jmeter.assertions.gui.XMLAssertionGui
289 | XMLSchemaAssertion=org.apache.jmeter.assertions.XMLSchemaAssertion
290 | XMLSchemaAssertionGUI=org.apache.jmeter.assertions.gui.XMLSchemaAssertionGUI
291 | XPathAssertion=org.apache.jmeter.assertions.XPathAssertion
292 | XPathAssertionGui=org.apache.jmeter.assertions.gui.XPathAssertionGui
293 | XPathExtractor=org.apache.jmeter.extractor.XPathExtractor
294 | XPathExtractorGui=org.apache.jmeter.extractor.gui.XPathExtractorGui
295 | #
296 | # Properties - all start with lower case letter and end with Prop
297 | #
298 | boolProp=org.apache.jmeter.testelement.property.BooleanProperty
299 | collectionProp=org.apache.jmeter.testelement.property.CollectionProperty
300 | doubleProp=org.apache.jmeter.testelement.property.DoubleProperty
301 | elementProp=org.apache.jmeter.testelement.property.TestElementProperty
302 | # see above - already defined as FloatProperty
303 | #floatProp=org.apache.jmeter.testelement.property.FloatProperty
304 | intProp=org.apache.jmeter.testelement.property.IntegerProperty
305 | longProp=org.apache.jmeter.testelement.property.LongProperty
306 | mapProp=org.apache.jmeter.testelement.property.MapProperty
307 | objProp=org.apache.jmeter.testelement.property.ObjectProperty
308 | stringProp=org.apache.jmeter.testelement.property.StringProperty
309 | #
310 | # Other - must start with a lower case letter (and not end with Prop)
311 | # (otherwise they could clash with the initial set of aliases)
312 | #
313 | hashTree=org.apache.jorphan.collections.ListedHashTree
314 | jmeterTestPlan=org.apache.jmeter.save.ScriptWrapper
315 | sample=org.apache.jmeter.samplers.SampleResult
316 | httpSample=org.apache.jmeter.protocol.http.sampler.HTTPSampleResult
317 | testResults=org.apache.jmeter.save.TestResultWrapper
318 | assertionResult=org.apache.jmeter.assertions.AssertionResult
319 | monitorStats=org.apache.jmeter.visualizers.MonitorStats
320 | sampleEvent=org.apache.jmeter.samplers.SampleEvent
321 | #
322 | # Converters to register. Must start line with '_'
323 | # If the converter is a collection of subitems, set equal to "collection"
324 | # If the converter needs to know the class mappings but is not a collection of
325 | # subitems, set it equal to "mapping"
326 | _org.apache.jmeter.protocol.http.sampler.HTTPSamplerBaseConverter=collection
327 | _org.apache.jmeter.protocol.http.util.HTTPResultConverter=collection
328 | _org.apache.jmeter.save.converters.BooleanPropertyConverter=
329 | _org.apache.jmeter.save.converters.IntegerPropertyConverter=
330 | _org.apache.jmeter.save.converters.LongPropertyConverter=
331 | _org.apache.jmeter.save.converters.MultiPropertyConverter=collection
332 | _org.apache.jmeter.save.converters.SampleEventConverter=
333 | _org.apache.jmeter.save.converters.SampleResultConverter=collection
334 | _org.apache.jmeter.save.converters.SampleSaveConfigurationConverter=collection
335 | _org.apache.jmeter.save.converters.StringPropertyConverter=
336 | _org.apache.jmeter.save.converters.HashTreeConverter=collection
337 | _org.apache.jmeter.save.converters.TestElementConverter=collection
338 | _org.apache.jmeter.save.converters.TestElementPropertyConverter=collection
339 | _org.apache.jmeter.save.converters.TestResultWrapperConverter=collection
340 | _org.apache.jmeter.save.ScriptWrapperConverter=mapping
341 | #
342 | # Remember to update the _version entry
343 | #
344 |
--------------------------------------------------------------------------------
/tools/jmeter/bin/shutdown.cmd:
--------------------------------------------------------------------------------
1 | @echo off
2 |
3 | rem Licensed to the Apache Software Foundation (ASF) under one or more
4 | rem contributor license agreements. See the NOTICE file distributed with
5 | rem this work for additional information regarding copyright ownership.
6 | rem The ASF licenses this file to You under the Apache License, Version 2.0
7 | rem (the "License"); you may not use this file except in compliance with
8 | rem the License. You may obtain a copy of the License at
9 | rem
10 | rem http://www.apache.org/licenses/LICENSE-2.0
11 | rem
12 | rem Unless required by applicable law or agreed to in writing, software
13 | rem distributed under the License is distributed on an "AS IS" BASIS,
14 | rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | rem See the License for the specific language governing permissions and
16 | rem limitations under the License.
17 |
18 | rem Run the Shutdown client to stop a non-GUI instance gracefully
19 |
20 | rem P1 = command port for JMeter instance (defaults to 4445)
21 |
22 | java -cp %~dp0ApacheJMeter.jar org.apache.jmeter.util.ShutdownClient Shutdown %*
23 | pause
--------------------------------------------------------------------------------
/tools/jmeter/bin/shutdown.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | ## Licensed to the Apache Software Foundation (ASF) under one or more
4 | ## contributor license agreements. See the NOTICE file distributed with
5 | ## this work for additional information regarding copyright ownership.
6 | ## The ASF licenses this file to You under the Apache License, Version 2.0
7 | ## (the "License"); you may not use this file except in compliance with
8 | ## the License. You may obtain a copy of the License at
9 | ##
10 | ## http://www.apache.org/licenses/LICENSE-2.0
11 | ##
12 | ## Unless required by applicable law or agreed to in writing, software
13 | ## distributed under the License is distributed on an "AS IS" BASIS,
14 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | ## See the License for the specific language governing permissions and
16 | ## limitations under the License.
17 |
18 | # Run the Shutdown client to stop a non-GUI instance gracefully
19 |
20 | # P1 = command port for JMeter instance (defaults to 4445)
21 |
22 | DIRNAME=`dirname $0`
23 |
24 | java -cp ${DIRNAME}/ApacheJMeter.jar org.apache.jmeter.util.ShutdownClient Shutdown "$@"
25 |
--------------------------------------------------------------------------------
/tools/jmeter/bin/stoptest.cmd:
--------------------------------------------------------------------------------
1 | @echo off
2 |
3 | rem Licensed to the Apache Software Foundation (ASF) under one or more
4 | rem contributor license agreements. See the NOTICE file distributed with
5 | rem this work for additional information regarding copyright ownership.
6 | rem The ASF licenses this file to You under the Apache License, Version 2.0
7 | rem (the "License"); you may not use this file except in compliance with
8 | rem the License. You may obtain a copy of the License at
9 | rem
10 | rem http://www.apache.org/licenses/LICENSE-2.0
11 | rem
12 | rem Unless required by applicable law or agreed to in writing, software
13 | rem distributed under the License is distributed on an "AS IS" BASIS,
14 | rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | rem See the License for the specific language governing permissions and
16 | rem limitations under the License.
17 |
18 | rem Run the Shutdown client to stop a non-GUI instance abruptly
19 |
20 | rem P1 = command port for JMeter instance (defaults to 4445)
21 |
22 | java -cp %~dp0ApacheJMeter.jar org.apache.jmeter.util.ShutdownClient StopTestNow %*
23 | pause
--------------------------------------------------------------------------------
/tools/jmeter/bin/stoptest.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | ## Licensed to the Apache Software Foundation (ASF) under one or more
4 | ## contributor license agreements. See the NOTICE file distributed with
5 | ## this work for additional information regarding copyright ownership.
6 | ## The ASF licenses this file to You under the Apache License, Version 2.0
7 | ## (the "License"); you may not use this file except in compliance with
8 | ## the License. You may obtain a copy of the License at
9 | ##
10 | ## http://www.apache.org/licenses/LICENSE-2.0
11 | ##
12 | ## Unless required by applicable law or agreed to in writing, software
13 | ## distributed under the License is distributed on an "AS IS" BASIS,
14 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | ## See the License for the specific language governing permissions and
16 | ## limitations under the License.
17 |
18 | # Run the Shutdown client to stop a non-GUI instance abruptly
19 |
20 | # P1 = command port for JMeter instance (defaults to 4445)
21 |
22 | DIRNAME=`dirname $0`
23 |
24 | java -cp ${DIRNAME}/ApacheJMeter.jar org.apache.jmeter.util.ShutdownClient StopTestNow "$@"
25 |
--------------------------------------------------------------------------------
/tools/jmeter/bin/system.properties:
--------------------------------------------------------------------------------
1 | # Sample system.properties file
2 | #
3 | ## Licensed to the Apache Software Foundation (ASF) under one or more
4 | ## contributor license agreements. See the NOTICE file distributed with
5 | ## this work for additional information regarding copyright ownership.
6 | ## The ASF licenses this file to You under the Apache License, Version 2.0
7 | ## (the "License"); you may not use this file except in compliance with
8 | ## the License. You may obtain a copy of the License at
9 | ##
10 | ## http://www.apache.org/licenses/LICENSE-2.0
11 | ##
12 | ## Unless required by applicable law or agreed to in writing, software
13 | ## distributed under the License is distributed on an "AS IS" BASIS,
14 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | ## See the License for the specific language governing permissions and
16 | ## limitations under the License.
17 | #
18 | # For details of Oracle Java network properties, see for example:
19 | # http://download.oracle.com/javase/1.5.0/docs/guide/net/properties.html
20 | #
21 | # Sample properties:
22 | #
23 | #java.net.preferIPv4Stack=false
24 | #java.net.preferIPv6Addresses=false
25 | #networkaddress.cache.ttl=-1
26 | #networkaddress.cache.negative.ttl=10
27 | #
28 | #
29 | # SSL properties (moved from jmeter.properties)
30 |
31 | # Location of the truststore (trusted certificates)
32 | #javax.net.ssl.trustStore=/path/to/cacerts
33 |
34 | # Location of the keystore
35 | #javax.net.ssl.keyStore=.keystore
36 | #
37 | #The password to your keystore
38 | #javax.net.ssl.keyStorePassword=changeit
39 |
40 | # SSL debugging:
41 | # See http://download.oracle.com/javase/1.5.0/docs/guide/security/jsse/JSSERefGuide.html#Debug
42 | #
43 | # javax.net.debug=help - generates the list below:
44 | #all turn on all debugging
45 | #ssl turn on ssl debugging
46 | #
47 | #The following can be used with ssl:
48 | # record enable per-record tracing
49 | # handshake print each handshake message
50 | # keygen print key generation data
51 | # session print session activity
52 | # defaultctx print default SSL initialization
53 | # sslctx print SSLContext tracing
54 | # sessioncache print session cache tracing
55 | # keymanager print key manager tracing
56 | # trustmanager print trust manager tracing
57 | #
58 | # handshake debugging can be widened with:
59 | # data hex dump of each handshake message
60 | # verbose verbose handshake message printing
61 | #
62 | # record debugging can be widened with:
63 | # plaintext hex dump of record plaintext
64 | #
65 | # Examples:
66 | #javax.net.debug=ssl
67 | #javax.net.debug=sslctx,session,sessioncache
68 | #
69 | #
70 | # We enable the following property to allow headers such as "Host" to be passed through.
71 | # See http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6996110
72 | sun.net.http.allowRestrictedHeaders=true
--------------------------------------------------------------------------------
/tools/jmeter/bin/upgrade.properties:
--------------------------------------------------------------------------------
1 | # Class, property and value upgrade equivalences.
2 |
3 | ## Licensed to the Apache Software Foundation (ASF) under one or more
4 | ## contributor license agreements. See the NOTICE file distributed with
5 | ## this work for additional information regarding copyright ownership.
6 | ## The ASF licenses this file to You under the Apache License, Version 2.0
7 | ## (the "License"); you may not use this file except in compliance with
8 | ## the License. You may obtain a copy of the License at
9 | ##
10 | ## http://www.apache.org/licenses/LICENSE-2.0
11 | ##
12 | ## Unless required by applicable law or agreed to in writing, software
13 | ## distributed under the License is distributed on an "AS IS" BASIS,
14 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | ## See the License for the specific language governing permissions and
16 | ## limitations under the License.
17 |
18 | #
19 | # Format is as follows --
20 | # for renamed test element & GUI classes:
21 | # old.class.Name=new.class.Name
22 | # old.class.Name|guiClassName=new.class.Name
23 | # (e.g. for ConfigTestElement)
24 | #
25 | # for renamed / deleted properties:
26 | # class.Name/Old.propertyName=newPropertyName
27 | # if newPropertyName is omitted, then property is deleted
28 | #
29 | # for renamed values:
30 | # old.class.Name.old.propertyName/oldValue=newValue
31 | #
32 |
33 | org.apache.jmeter.protocol.http.config.gui.UrlConfigGui=org.apache.jmeter.protocol.http.config.gui.HttpDefaultsGui
34 | org.apache.jmeter.assertions.Assertion=org.apache.jmeter.assertions.ResponseAssertion
35 | org.apache.jmeter.protocol.http.sampler.HTTPSamplerFull=org.apache.jmeter.protocol.http.sampler.HTTPSampler
36 | org.apache.jmeter.control.gui.RecordController=org.apache.jmeter.protocol.http.control.gui.RecordController
37 |
38 | org.apache.jmeter.timers.gui.ConstantThroughputTimerGui=org.apache.jmeter.testbeans.gui.TestBeanGUI
39 | org.apache.jmeter.timers.ConstantThroughputTimer/ConstantThroughputTimer.throughput=throughput
40 |
41 | org.apache.jmeter.protocol.jdbc.control.gui.JdbcTestSampleGui=org.apache.jmeter.testbeans.gui.TestBeanGUI
42 | org.apache.jmeter.protocol.jdbc.sampler.JDBCSampler/JDBCSampler.query=query
43 | #org.apache.jmeter.protocol.jdbc.sampler.JDBCSampler.JDBCSampler.dataSource/NULL=
44 |
45 | # Convert DBconfig
46 | org.apache.jmeter.protocol.jdbc.config.gui.DbConfigGui=org.apache.jmeter.testbeans.gui.TestBeanGUI
47 | org.apache.jmeter.config.ConfigTestElement|org.apache.jmeter.protocol.jdbc.config.gui.DbConfigGui=org.apache.jmeter.protocol.jdbc.config.DataSourceElement
48 | org.apache.jmeter.protocol.jdbc.config.DataSourceElement/JDBCSampler.url=dbUrl
49 | org.apache.jmeter.protocol.jdbc.config.DataSourceElement/JDBCSampler.driver=driver
50 | org.apache.jmeter.protocol.jdbc.config.DataSourceElement/JDBCSampler.query=query
51 | org.apache.jmeter.protocol.jdbc.config.DataSourceElement/ConfigTestElement.username=username
52 | org.apache.jmeter.protocol.jdbc.config.DataSourceElement/ConfigTestElement.password=password
53 |
54 | # Convert PoolConfig
55 | org.apache.jmeter.protocol.jdbc.config.gui.PoolConfigGui=org.apache.jmeter.testbeans.gui.TestBeanGUI
56 | org.apache.jmeter.config.ConfigTestElement|org.apache.jmeter.protocol.jdbc.config.gui.PoolConfigGui=org.apache.jmeter.protocol.jdbc.config.DataSourceElement
57 | org.apache.jmeter.protocol.jdbc.config.DataSourceElement/JDBCSampler.connections=
58 | org.apache.jmeter.protocol.jdbc.config.DataSourceElement/JDBCSampler.connPoolClass=
59 | org.apache.jmeter.protocol.jdbc.config.DataSourceElement/JDBCSampler.maxuse=poolMax
60 |
61 | # SQL Config
62 | org.apache.jmeter.config.ConfigTestElement/JDBCSampler.query=query
63 | org.apache.jmeter.protocol.http.control.Header/TestElement.name=Header.name
64 |
65 | # Upgrade AccessLogSampler
66 | org.apache.jmeter.protocol.http.control.gui.AccessLogSamplerGui=org.apache.jmeter.testbeans.gui.TestBeanGUI
67 | org.apache.jmeter.protocol.http.sampler.AccessLogSampler/AccessLogSampler.log_file=logFile
68 | org.apache.jmeter.protocol.http.sampler.AccessLogSampler/HTTPSampler.port=portString
69 | #Is the following used now?
70 | #org.apache.jmeter.protocol.http.sampler.AccessLogSampler/AccessLogSampler.generator_class_name=
71 | #Looks to be a new field
72 | #filterClassName
73 | org.apache.jmeter.protocol.http.sampler.AccessLogSampler/HTTPSampler.domain=domain
74 | org.apache.jmeter.protocol.http.sampler.AccessLogSampler/AccessLogSampler.parser_class_name=parserClassName
75 | org.apache.jmeter.protocol.http.sampler.AccessLogSampler/HTTPSampler.image_parser=imageParsing
76 |
77 | # Renamed class
78 | org.apache.jmeter.protocol.jms.control.gui.JMSConfigGui=org.apache.jmeter.protocol.jms.control.gui.JMSSamplerGui
79 |
80 | # This class has been deleted
81 | org.apache.jmeter.protocol.jdbc.config.gui.SqlConfigGui=org.apache.jmeter.config.gui.ObsoleteGui
--------------------------------------------------------------------------------
/tools/jmeter/bin/user.properties:
--------------------------------------------------------------------------------
1 | # Sample user.properties file
2 | #
3 | ## Licensed to the Apache Software Foundation (ASF) under one or more
4 | ## contributor license agreements. See the NOTICE file distributed with
5 | ## this work for additional information regarding copyright ownership.
6 | ## The ASF licenses this file to You under the Apache License, Version 2.0
7 | ## (the "License"); you may not use this file except in compliance with
8 | ## the License. You may obtain a copy of the License at
9 | ##
10 | ## http://www.apache.org/licenses/LICENSE-2.0
11 | ##
12 | ## Unless required by applicable law or agreed to in writing, software
13 | ## distributed under the License is distributed on an "AS IS" BASIS,
14 | ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | ## See the License for the specific language governing permissions and
16 | ## limitations under the License.
17 |
18 | #---------------------------------------------------------------------------
19 | # Classpath configuration
20 | #---------------------------------------------------------------------------
21 | #
22 | # List of paths (separated by ;) to search for additional JMeter extension classes
23 | # - for example new GUI elements and samplers
24 | # These are in addition to lib/ext. Do not use this for utility jars.
25 | #search_paths=/app1/lib;/app2/lib
26 |
27 | # Users can define additional classpath items by setting the property below
28 | # - for example, utility jars or JUnit test cases
29 | #
30 | # Use the default separator for the host version of Java
31 | # Paths with spaces may cause problems for the JVM
32 | #user.classpath=../classes;../jars/jar1.jar
33 |
34 | #---------------------------------------------------------------------------
35 | # Logging configuration
36 | #---------------------------------------------------------------------------
37 | #log_level.jorphan.reflect=DEBUG
38 | # Warning: enabling the next debug line causes javax.net.ssl.SSLException: Received fatal alert: unexpected_message
39 | # for certain sites when used with the default HTTP Sampler
40 | #log_level.jmeter.util.HttpSSLProtocolSocketFactory=DEBUG
41 | #log_level.jmeter.util.JsseSSLManager=DEBUG
42 |
43 | # Enable Proxy request debug
44 | #log_level.jmeter.protocol.http.proxy.HttpRequestHdr=DEBUG
45 |
--------------------------------------------------------------------------------
/tools/jmeter/bin/users.dtd:
--------------------------------------------------------------------------------
1 |
2 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/tools/jmeter/bin/users.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 | username
28 | dduck
29 |
30 |
31 | password
32 | quack
33 |
34 |
35 |
36 |
37 | username
38 | mmouse
39 |
40 |
41 | password
42 | squeak
43 |
44 |
45 |
46 |
47 | username
48 | bbunney
49 |
50 |
51 | password
52 | carrot
53 |
54 |
55 | manager
56 | yes
57 |
58 |
59 |
60 |
61 |
62 |
63 |
--------------------------------------------------------------------------------
/tools/jmeter/graphs.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/python
2 |
3 | # Compatible with the default python install on OS X
4 | #
5 | # Install the dependencies matplotlib for python
6 | # easy_install matplotlib
7 |
8 | from pylab import *
9 | import numpy as na
10 | import matplotlib.font_manager
11 | import os
12 | import glob
13 | import csv
14 | import sys
15 |
16 | usage = """
17 | Usage: ./graph.py {path_to_csv_files}
18 |
19 | Example ./graph.py /tmp/Magento
20 | """
21 |
22 | elapsed = {}
23 | timestamps = {}
24 | starttimes = {}
25 | errors = {}
26 |
27 | # Parse the CSV files
28 | try:
29 | path = sys.argv[1]
30 | pass
31 | except Exception, e:
32 | print usage
33 | sys.exit()
34 |
35 | for infile in glob.glob( os.path.join(path, '*summary-report.csv') ):
36 | file_parts = infile.split('-')[0]
37 | thread_parts = file_parts.split('/')
38 | threads = int(thread_parts.pop())
39 | for row in csv.DictReader(open(infile)):
40 | if (int(row['elapsed']) < 1):
41 | row['elapsed'] = 1
42 | if (not row['label'] in elapsed):
43 | elapsed[row['label']] = {}
44 | timestamps[row['label']] = {}
45 | starttimes[row['label']] = {}
46 | errors[row['label']] = {}
47 | if (not threads in elapsed[row['label']]):
48 | elapsed[row['label']][threads] = []
49 | timestamps[row['label']][threads] = []
50 | starttimes[row['label']][threads] = []
51 | errors[row['label']][threads] = []
52 | elapsed[row['label']][threads].append(int(row['elapsed']))
53 | timestamps[row['label']][threads].append(int(row['timeStamp']))
54 | starttimes[row['label']][threads].append(int(row['timeStamp']) - int(row['elapsed']))
55 | if (row['success'] != 'true'):
56 | errors[row['label']][threads].append(int(row['elapsed']))
57 |
58 |
59 | # Draw a separate figure for each label found in the results.
60 | for label in elapsed:
61 | # Transform the lists for plotting
62 | plot_data = []
63 | throughput_data = [None]
64 | error_x = []
65 | error_y = []
66 | plot_labels = []
67 | column = 1
68 | keys = elapsed[label].keys()
69 | for thread_count in sort(keys):
70 | plot_data.append(elapsed[label][thread_count])
71 | plot_labels.append(thread_count)
72 | test_start = min(starttimes[label][thread_count])
73 | test_end = max(timestamps[label][thread_count])
74 | test_length = (test_end - test_start) / 1000
75 | num_requests = len(timestamps[label][thread_count]) - len(errors[label][thread_count])
76 | if (test_length > 0):
77 | throughput_data.append(num_requests / float(test_length))
78 | else:
79 | throughput_data.append(0)
80 | for error in errors[label][thread_count]:
81 | error_x.append(column)
82 | error_y.append(error)
83 | column += 1
84 |
85 |
86 | # Start a new figure
87 | fig = figure(figsize=(9, 6))
88 |
89 | # Pick some colors
90 | palegreen = matplotlib.colors.colorConverter.to_rgb('#8CFF6F')
91 | paleblue = matplotlib.colors.colorConverter.to_rgb('#708DFF')
92 |
93 | # Plot response time
94 | ax1 = fig.add_subplot(111)
95 | ax1.set_yscale('log')
96 | bp = boxplot(plot_data, notch=0, sym='+', vert=1, whis=1.5)
97 |
98 | # Tweak colors on the boxplot
99 | plt.setp(bp['boxes'], color='g')
100 | plt.setp(bp['whiskers'], color='g')
101 | plt.setp(bp['medians'], color='black')
102 | plt.setp(bp['fliers'], color=palegreen, marker='+')
103 |
104 | # Now fill the boxes with desired colors
105 | numBoxes = len(plot_data)
106 | medians = range(numBoxes)
107 | for i in range(numBoxes):
108 | box = bp['boxes'][i]
109 | boxX = []
110 | boxY = []
111 | for j in range(5):
112 | boxX.append(box.get_xdata()[j])
113 | boxY.append(box.get_ydata()[j])
114 | boxCoords = zip(boxX,boxY)
115 | boxPolygon = Polygon(boxCoords, facecolor=palegreen)
116 | ax1.add_patch(boxPolygon)
117 |
118 | # Plot the errors
119 | if (len(error_x) > 0):
120 | ax1.scatter(error_x, error_y, color='r', marker='x', zorder=3)
121 |
122 | # Plot throughput
123 | ax2 = ax1.twinx()
124 | ax2.plot(throughput_data, 'o-', color=paleblue, linewidth=2, markersize=8)
125 |
126 | # Label the axis
127 | ax1.set_title(label)
128 | ax1.set_xlabel('Number of concurrent requests')
129 | ax2.set_ylabel('Requests per second')
130 | ax1.set_ylabel('Milliseconds')
131 | ax1.set_xticks(range(1, len(plot_labels) + 1, 2))
132 | ax1.set_xticklabels(plot_labels[0::2])
133 | fig.subplots_adjust(top=0.9, bottom=0.15, right=0.85, left=0.15)
134 |
135 | # Turn off scientific notation for Y axis
136 | ax1.yaxis.set_major_formatter(ScalarFormatter(False))
137 |
138 | # Set the lower y limit to the match the first column
139 | ax1.set_ylim(ymin=bp['boxes'][0].get_ydata()[0])
140 |
141 | # Draw some tick lines
142 | ax1.yaxis.grid(True, linestyle='-', which='major', color='grey')
143 | ax1.yaxis.grid(True, linestyle='-', which='minor', color='lightgrey')
144 | # Hide these grid behind plot objects
145 | ax1.set_axisbelow(True)
146 |
147 | # Add a legend
148 | line1 = Line2D([], [], marker='s', color=palegreen, markersize=10, linewidth=0)
149 | line2 = Line2D([], [], marker='o', color=paleblue, markersize=8, linewidth=2)
150 | line3 = Line2D([], [], marker='x', color='r', linewidth=0, markeredgewidth=2)
151 | prop = matplotlib.font_manager.FontProperties(size='small')
152 | figlegend((line1, line2, line3), ('Response Time', 'Throughput', 'Failures (50x)'),
153 | 'lower center', prop=prop, ncol=3)
154 |
155 | # Write the PNG file
156 | savefig(label)
--------------------------------------------------------------------------------
/tools/jmeter/lib/activation-1.1.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/activation-1.1.1.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/avalon-framework-4.1.4.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/avalon-framework-4.1.4.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/bsf-2.4.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/bsf-2.4.0.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/bsf-api-3.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/bsf-api-3.1.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/bsh-2.0b5.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/bsh-2.0b5.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/bshclient.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/bshclient.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/commons-codec-1.5.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/commons-codec-1.5.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/commons-collections-3.2.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/commons-collections-3.2.1.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/commons-httpclient-3.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/commons-httpclient-3.1.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/commons-io-2.0.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/commons-io-2.0.1.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/commons-jexl-1.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/commons-jexl-1.1.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/commons-lang-2.6.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/commons-lang-2.6.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/commons-logging-1.1.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/commons-logging-1.1.1.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/commons-net-3.0.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/commons-net-3.0.1.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/excalibur-datasource-1.1.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/excalibur-datasource-1.1.1.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/excalibur-instrument-1.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/excalibur-instrument-1.0.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/excalibur-logger-1.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/excalibur-logger-1.1.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/excalibur-pool-1.2.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/excalibur-pool-1.2.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/ext/ApacheJMeter_components.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/ext/ApacheJMeter_components.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/ext/ApacheJMeter_core.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/ext/ApacheJMeter_core.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/ext/ApacheJMeter_ftp.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/ext/ApacheJMeter_ftp.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/ext/ApacheJMeter_functions.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/ext/ApacheJMeter_functions.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/ext/ApacheJMeter_http.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/ext/ApacheJMeter_http.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/ext/ApacheJMeter_java.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/ext/ApacheJMeter_java.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/ext/ApacheJMeter_jdbc.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/ext/ApacheJMeter_jdbc.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/ext/ApacheJMeter_jms.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/ext/ApacheJMeter_jms.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/ext/ApacheJMeter_junit.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/ext/ApacheJMeter_junit.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/ext/ApacheJMeter_ldap.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/ext/ApacheJMeter_ldap.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/ext/ApacheJMeter_mail.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/ext/ApacheJMeter_mail.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/ext/ApacheJMeter_monitors.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/ext/ApacheJMeter_monitors.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/ext/ApacheJMeter_report.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/ext/ApacheJMeter_report.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/ext/ApacheJMeter_tcp.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/ext/ApacheJMeter_tcp.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/geronimo-jms_1.1_spec-1.1.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/geronimo-jms_1.1_spec-1.1.1.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/htmllexer-2.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/htmllexer-2.1.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/htmlparser-2.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/htmlparser-2.1.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/httpclient-4.1.2.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/httpclient-4.1.2.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/httpcore-4.1.3.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/httpcore-4.1.3.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/httpmime-4.1.2.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/httpmime-4.1.2.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/jCharts-0.7.5.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/jCharts-0.7.5.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/jdom-1.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/jdom-1.1.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/jorphan.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/jorphan.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/js-1.6R5.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/js-1.6R5.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/jtidy-r938.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/jtidy-r938.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/junit-4.9.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/junit-4.9.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/junit/test.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/junit/test.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/logkit-2.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/logkit-2.0.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/mail-1.4.4.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/mail-1.4.4.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/oro-2.0.8.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/oro-2.0.8.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/serializer-2.7.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/serializer-2.7.1.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/soap-2.3.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/soap-2.3.1.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/xalan-2.7.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/xalan-2.7.1.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/xercesImpl-2.9.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/xercesImpl-2.9.1.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/xml-apis-1.3.04.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/xml-apis-1.3.04.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/xmlgraphics-commons-1.3.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/xmlgraphics-commons-1.3.1.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/xpp3_min-1.1.4c.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/xpp3_min-1.1.4c.jar
--------------------------------------------------------------------------------
/tools/jmeter/lib/xstream-1.3.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/magento-hackathon/MongoDB-OrderTransactions/c89b0fe2981c0233601e7f59011579c5772da979/tools/jmeter/lib/xstream-1.3.1.jar
--------------------------------------------------------------------------------
/tools/jmeter/products.csv:
--------------------------------------------------------------------------------
1 | 100-pima-cotton-vest-539.html
2 | long-sleeved-cropped-cardigan-2369.html
3 | plain-t-shirt-2400.html
4 | lacquer-look-jean-2532.html
5 | bow-detail-sweater-3005.html
6 | pima-t-shirt-3012.html
7 | suede-tie-front-mini-dress-3793.html
8 | garden-floral-scarf.html
9 | disc-tassel-earrings.html
10 | military-detail-cardigan-5568.html
11 | lace-back-detail-cardigan-5569.html
12 | corsage-detail-cardigan-5570.html
13 | lace-insert-short-sleeve-top-5573.html
14 | pull-col-chale-a-noeud-gros-grain.html
15 | lurex-short-sleeve-knit-5575.html
16 | lurex-short-sleeve-cardigan-5576.html
17 | ruffle-panel-sweater-5577.html
18 | lace-insert-sweater-5578.html
19 | contrast-stripe-sweater-5579.html
20 | block-colour-stripe-sweater-5580.html
21 | pleated-button-trim-blouse-5581.html
22 | contrast-strap-draped-tank-5585.html
23 | cut-out-detail-dress-5586.html
24 | chiffon-style-maxi-dress-5587.html
25 | paisley-print-maxi-dress-5590.html
26 | folk-print-skirt-5594.html
27 | utility-skirt-5597.html
28 | classic-belted-trench-coat-5599.html
29 | robe-chemise-en-cuir.html
30 | polkadot-print-scarf-5603.html
31 | spot-print-scarf-5604.html
32 | floral-detail-scarf-5605.html
33 | leather-weave-clutch-bag-5606.html
34 | leather-wrap-belt-5607.html
35 | stud-embellished-leather-belt-5608.html
36 | metal-detail-bracelet-set.html
37 | long-pearl-drop-necklace.html
38 | bead-longline-necklace-6088.html
39 | chunky-rib-lurex-cardigan-6090.html
40 | sequined-cardigan.html
41 | long-gilet-raye.html
42 | pull-ample-a-poils.html
43 | lurex-batwing-sweater-6094.html
44 | elbow-patch-merino-sweater-6096.html
45 | sequined-sweater-6097.html
46 | cotton-tartan-checked-shirt-6099.html
47 | shirred-hem-blouse-6101.html
48 | greeting-slogan-tee-6103.html
49 | robe-en-crepe-ceinturee.html
50 | silk-panel-jumper-dress-6105.html
51 | lurex-knitted-jumper-dress-6107.html
52 | robe-bi-matiere-crepe-et-coton.html
53 | paperbag-waist-cupro-trousers-6110.html
54 | wide-legged-button-trim-pant-6111.html
55 | ribbon-trim-cropped-trouser-6112.html
56 | ribbon-trim-tailored-trouser-6113.html
57 | jean-coupe-droite.html
58 | jean-coupe-boot-cut.html
59 | paperbag-waist-belted-skirt-6118.html
60 | collarless-military-coat-6120.html
61 | brocade-coat-6121.html
62 | hooded-cape-detail-coat-6122.html
63 | indian-floral-print-scarf-6123.html
64 | heart-print-scarf-6124.html
65 | slim-fit-leather-pant-6161.html
66 | long-chain-and-bead-necklace.html
67 | slouch-knit-jacket-7970.html
68 | equestrian-button-front-cape-7972.html
69 | hooded-knit-cape-7973.html
70 | shoulder-zip-detail-cardigan-7974.html
71 | drape-neck-cardigan-7975.html
72 | heart-print-cardigan-7976.html
73 | patch-longline-cardigan-7978.html
74 | contrast-patch-cardigan-7979.html
75 | knotted-shoulder-cardigan-7980.html
76 | gilet-bicolore-ceinture.html
77 | sequinned-cardigan-7984.html
78 | multi-pattern-long-cardigan-7985.html
79 | gilet-a-rayures-decalees.html
80 | shawl-collar-cardigan-7989.html
81 | ikat-jacquard-shawl-cardigan-7990.html
82 | lurex-shoulder-knit-top-7992.html
83 | bow-back-detail-sweater-7994.html
84 | mohair-striped-sweater-7995.html
85 | pull-grosse-maille-inca.html
86 | pull-manches-courtes-motifs-geometriques.html
87 | furry-effect-lurex-sweater-7998.html
88 | ladder-stitch-sweater-7999.html
89 | alpine-knit-striped-sweater-8000.html
90 | stud-detail-slouch-sweater-8001.html
91 | pull-fines-rayures-v-devant-et-dos.html
92 | pull-paon.html
93 | bow-detail-top-8004.html
94 | pull-imprime-coeur.html
95 | pull-marin-col-benitier.html
96 | contrast-patch-sweater-8009.html
97 | pull-manches-longues-motifs-geometriques.html
98 | cablestitch-lurex-sweater-8012.html
99 | chunky-cablestitch-sweater-8013.html
100 | poloneck-mohair-sweater-8015.html
101 | popper-slouch-sweater-8018.html
102 | lurex-sparkly-tunic-top-8020.html
103 | pull-imprime-irregulier.html
104 | cablestitch-slouch-sweater-8024.html
105 | pull-en-laine-boutonnee.html
106 | embroidered-lace-blouse-8027.html
107 | multi-spot-print-blouse-8029.html
108 | chain-embroidery-sheer-blouse-8030.html
109 | pinstriped-tailored-shirt-8032.html
110 | cotton-crepe-shirt-8033.html
111 | ruffled-silk-blouse-1.html
112 | checked-wrap-waist-blouse-8035.html
113 | sheer-snakeskin-blouse-8036.html
114 | top-zippe-en-dentelle.html
115 | leather-button-blazer-8038.html
116 | collarless-bicolour-jacket-8039.html
117 | veste-courte-a-paillettes.html
118 | ribbon-trim-tailored-blazer-8042.html
119 | tweed-belted-jacket-8044.html
120 | wool-flannel-tailored-blazer-8045.html
121 | velvet-tailored-blazer-8046.html
122 | top-manches-3-4-uni.html
123 | bead-front-tank-8051.html
124 | tab-shoulder-lurex-top-8053.html
125 | heart-detail-tee-8054.html
126 | swallow-print-tee-8056.html
127 | zebra-print-linen-tee-8058.html
128 | shirred-waist-chiffon-maxi-dress-8060.html
129 | double-strap-knit-dress-8061.html
130 | two-in-one-dress-8062.html
131 | lace-insert-fitted-dress-8063.html
132 | robe-sans-manches-coton.html
133 | ruffle-front-shift-dress-8065.html
134 | bead-detail-shift-dress-8067.html
135 | wool-flannel-tailored-dress-8070.html
136 | milano-knit-zip-detail-dress-8074.html
137 | chiffon-style-peasant-dress-8075.html
138 | dentelle-lace-dress-8077.html
139 | all-over-lace-dress-8078.html
140 | devore-velvet-dress-8079.html
141 | robe-paillettes.html
142 | contrast-trim-tunic-dress-8083.html
143 | alpine-knit-jumper-dress-8084.html
144 | dress-code-jumper-dress-8086.html
145 | striped-jumper-dress-8087.html
146 | chunky-knit-sweater-dress-8088.html
147 | jacquard-crop-trousers-8090.html
148 | tailored-cotton-jodpur-8091.html
149 | satin-waist-trim-ankle-crop-trouser-8092.html
150 | pantalon-7-8-en-draperie-compacte.html
151 | button-trim-loose-fit-jean-8094.html
152 | cupro-belted-jumpsuit-8095.html
153 | wrap-front-skirt-8099.html
154 | tailored-pocket-detail-skirt-8102.html
155 | devore-velvet-skirt-8104.html
156 | button-detail-cupro-skirt-8105.html
157 | dentelle-lace-skirt-8107.html
158 | jupe-evasee-en-draperie-epaisse.html
159 | tailored-wool-mini-skirt-8109.html
160 | wrapover-flannel-skirt-8110.html
161 | tweed-pleat-front-skirt-8111.html
162 | lurex-tweed-coat-8112.html
163 | double-breasted-military-coat-8113.html
164 | lurex-jersey-gloves-8116.html
165 | fringed-edged-gloves-8117.html
166 | lurex-jersey-beanie-hat-8119.html
167 | fisherman-s-knit-snood-8120.html
168 | lurex-jersey-scarf-8122.html
169 | feathered-tassel-bracelet-8126.html
170 | multi-chain-bracelet-8127.html
171 | precious-stone-tassel-necklace-8128.html
172 | leather-obi-belt-8130.html
173 | skinny-patent-belt-8133.html
174 | embroidered-leather-belt-8134.html
175 | simple-polo-neck-sweater-9229.html
176 | cowl-neck-sweater-9233.html
177 | tonal-panel-lurex-sweater-9242.html
178 | knotted-shoulder-sweater-9245.html
179 | flannel-wide-legged-trouser-9248.html
180 | flannel-ankle-crop-trim-9249.html
181 | sequined-striped-tee-9250.html
182 | lurex-trim-long-sleeved-top-9251.html
183 | cropped-mohair-cardigan-9252.html
184 | 2-in1-mohair-sweater-9253.html
185 | 2-in-1-button-detail-top-9254.html
186 | leather-panel-knitted-jacket-9255.html
187 | cowl-neck-jacquard-sweater-9263.html
188 | satin-twill-wide-leg-trouser-9266.html
189 | elbow-patch-cotton-sweater-9291.html
190 | stripe-detail-2-in-1-sweater-9304.html
191 | sailor-stripe-mohair-sweater-9307.html
192 | leather-pencil-skirt-9308.html
193 | tonal-stripe-knitted-top-9311.html
194 | pinstriped-blazer-9318.html
195 | wool-panelled-pocket-skirt-9322.html
196 | wool-tailored-trouser-9323.html
197 | piping-detail-cropped-pant-9333.html
198 | suede-trench-coat-9340.html
199 | 2-in-1-leather-detail-dress-11589.html
200 | abstract-striped-sweater.html
201 | abstract-striped-cardigan-11598.html
202 | metallic-knit-sweater-dress-11599.html
203 | multi-striped-sweater-11601.html
204 | tweed-tailored-blazer-11602.html
205 | 2-in-1-lace-insert-tee-11607.html
206 | sheer-sleeve-top-11608.html
207 | shimmer-band-pencil-skirt-11610.html
208 | shoulder-patch-panelled-dress-11611.html
209 | lacquer-denim-skirt-11614.html
210 | textured-wool-belted-coat-11616.html
211 | brocade-tailored-jacket-11620.html
212 | collarless-ribbon-trim-coat-11631.html
213 | navajo-print-longline-sweater-12709.html
214 | navajo-print-sweater-12710.html
215 | cowl-neck-mohair-sweater-12711.html
216 | lurex-trim-2-in-1-sweater-12712.html
217 | angora-batwing-sweater-12714.html
218 | bow-and-stripe-2-in-1-sweater-12819.html
219 | alpaca-blend-deep-v-sweater-13539.html
220 | contrast-piping-peacoat-13540.html
221 | precious-stone-tassel-keyring-13541.html
222 | lace-panel-sweater-13566.html
223 | v-neck-cardigan-14162.html
224 | cablestitch-longline-sweater-14163.html
225 | star-print-silk-blouse-14164.html
226 | v-neck-panelled-dress-14165.html
227 | waist-panel-belted-dress-14168.html
228 | funnel-neck-peacoat-14323.html
229 | double-layer-parka-14324.html
230 | woven-swing-coat-14325.html
231 |
--------------------------------------------------------------------------------
/tools/jmeter/run.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # The host under test.
4 | HOST=www.kookai.co.uk
5 |
6 | # A Customer username.
7 | USER='test@ibuildings.com'
8 |
9 | # Customer's password
10 | PASS='password'
11 |
12 | RUNTIME=60
13 | SLEEPTIME=0
14 |
15 | # Ramp up the threadcount
16 | for thread_count in 12 16 24 32 48 64 96 128 192 256 384 512 758 1024 1516 2048 3032
17 | do
18 | echo "***************************************************************************"
19 | echo "Starting to melt your CPU with" $thread_count "users for" $RUNTIME "Seconds"
20 | echo "***************************************************************************"
21 | JVM_ARGS="-Xms512m -Xmx1024m" ./bin/jmeter.sh -n -t MagentoStress.jmx -Jhost=$HOST -Juser=$USER -Jpassword=$PASS -Jthreads=$thread_count -Jruntime=$RUNTIME
22 | echo "Your CPU made it through. Phew!" $HOST "should still be available?"
23 | echo "***************************************************************************"
24 | echo "Sleeping for" $SLEEPTIME "seconds, to let it cool down"
25 | echo "***************************************************************************"
26 | sleep $SLEEPTIME
27 | done
--------------------------------------------------------------------------------