├── 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 --------------------------------------------------------------------------------