http://git-wip-us.apache.org/repos/asf/usergrid/blob/29bf682e/tests/performance/LICENSE
----------------------------------------------------------------------
diff --git a/tests/performance/LICENSE b/tests/performance/LICENSE
new file mode 100644
index 0000000..a4b9abe
--- /dev/null
+++ b/tests/performance/LICENSE
@@ -0,0 +1,327 @@
+
+Apache Usergrid itself is licensed under the terms of the Apache License:
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+------------------------------------------------------------------------------
+
+USERGRID SUBCOMPONENTS
+
+The Usergrid software includes a number of subcomponents with separate
+copyrights and license terms. Your use of the source code for these 
+subcomponents is subject to the terms and conditions of the following 
+licenses. 
+
+IOS SDK
+-------
+For the SBJson component:
+ 
+ Copyright (c) Stig Brautaset. All rights reserved.
+ 
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+ 
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ 
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ 
+ * Neither the name of the author nor the names of its contributors may be used
+   to endorse or promote products derived from this software without specific
+   prior written permission.
+ 
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+For the SSKeychain component:
+-----------------------------
+
+ Copyright (c) Sam Soffes, http://soff.es
+
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Other components:
+-----------------
+
+This product bundles angular.js
+Copyright(c) Google, Inc. Released under the MIT license.
+
+This product bundles angular-scenario.js, part of jQuery JavaScript Library
+which Includes Sizzle.js Copyright (c) jQuery Foundation, Inc. and others.
+Released under the MIT license.
+
+This product bundles Bootstrap Copyright (c) Twitter, Inc
+Licensed under the MIT license.
+
+The product bundles Intro.js (MIT licensed)
+Copyright (c) usabli.ca - A weekend project by Afshin Mehrabani (@afshinmeh)
+
+This product bundles jQuery
+Licensed under MIT license.
+
+This product bundles jQuery-UI
+Licensed under MIT license.
+
+This product bundles jQuery Sparklines (New BSD License)
+Copyright (c) Splunk Inc.
+
+This product bundles Mocha. 
+All rights reserved. Licensed under MIT.
+Copyright (c) TJ Holowaychuk <t...@vision-media.ca>
+
+This product bundles NewtonSoft.Json under MIT license 
+
+This product bundles NPM MD5 (BSD-3 licensed)
+Copyright (c) Paul Vorbach and Copyright (C), Jeff Mott.
+
+This product bundles NSubsttute under BSD license 
+
+This product bundles SBJson, which is available under a "3-clause BSD" license.
+For details, see sdks/ios/UGAPI/SBJson/ .
+
+This product bundles Sphinx under BSD license 
+
+This product bundles SSKeychain, which is available under a "MIT/X11" license.
+For details, see sdks/ios/UGAPI/SSKeychain/.
+
+This product bundles SSToolkit.
+Copyright (c) Sam Soffes. All rights reserved.
+These files can be located within the /sdks/ios package.
+
+This product bundles Entypo, CC by SA license
+
+This product bundles date.min.js, MIT license
+
+This product bundles jquery.ui.timepicker.min.js, MIT license
+
+This product bundles blanket_mocha.min.js, MIT license
+
+This product bundles FontAwesome, SIL Open Font License 
+

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29bf682e/tests/performance/README.md
----------------------------------------------------------------------
diff --git a/tests/performance/README.md b/tests/performance/README.md
new file mode 100644
index 0000000..9dc24e9
--- /dev/null
+++ b/tests/performance/README.md
@@ -0,0 +1,207 @@
+#Gatling Load Tests
+The Usergrid loadtests directory (/stack/loadtests) contains a framework for 
performance testing [Apache Usergrid](http://usergrid.apache.org/). These tests 
currently use version 2.1.7 of [Gatling](http://gatling.io), an open-source 
load-testing tool. This version of Gatling, as well as the tests, use Java 7.
+
+The test code is written in [Scala](http://www.scala-lang.org/), which is 
Gatling's test language.
+
+##Usergrid Gatling test scripts
+The test scripts are found in the top level loadtests directory. Look inside 
the scripts to see the details for running the tests.
+
+###testConfig.sh
+Contains defaults that are used for all the other test scripts.
+
+###runAuditDeleteEntities.sh
+For a specified organization and given CSV file, delete all entities, writing 
those that fail to delete to another CSV file.
+
+###runAuditGetAllAppCollectionEntities.sh
+For a specified organization, finds all apps, and for each app, finds all 
collections and writes a CSV file line containing collection name, UUID, entity 
name, and modified timestamp for each entity in each collection.
+
+###runAuditGetCollectionEntities.sh
+For a specified organization and application, finds all collections and writes 
a CSV file line containing collection name, UUID, entity name, and modified 
timestamp for each entity in each collection.
+
+###runAuditVerifyCollectionEntities.sh
+For a specified organization and given CSV file, verify that all entities are 
retrievable via query, writing those that fail to another CSV file, optionally 
deleting verified entities.
+
+###runCollectionQueryTest.sh
+For a given collection, retrieve all entities using a cursor and a query.
+
+###runCustomInjectRandomEntityByUuidTest.sh
+Gets random entity by UUIDs read from a CSV file. Includes custom injection 
steps.
+
+###runDeleteEntities.sh
+Deletes entities in order via name (prefix + entity number).
+
+###runGetEntitiesByNameSequential.sh
+Retrieves entities one by one via name (prefix + entity number).
+
+###runGetEntitiesByUuidTest.sh
+Retrieves entities via UUID from a CSV file. Control the CSV feed pattern 
(circular=sequential, random) using the csvFeedPattern configuration
+
+###runLoadEntities.sh
+Creates entities in order via name (prefix + entity number).
+
+###runLoadLargeMultiFieldEntities.sh
+Creates large multi-field entities in order via name (prefix + entity number).
+
+###runLoadNoNameEntities.sh
+Creates entities in order without names.
+
+###runLoadSortableEntities.sh
+Creates sortable entities in order via name (prefix + entity number).
+
+###runOrgAppSetup.sh
+Runs the organization and app setup without doing a test.
+
+###runRandomEntityByNameQueryTest.sh
+Retrieves random entities via name (prefix + entity number) using queries.
+
+###runRandomEntityByNameTest.sh
+Retrieves random entities via name (prefix + entity number).
+
+###runUpdateEntities.sh
+Updates entities in order via name (prefix + entity number).
+
+##Gatling configuration items
+Understanding how configuration items work together can best be accomplished 
by reading the Usergrid Gatling test scripts. Some configuration items are 
dependent on others, and some are ignored by specific tests. Configuration 
items and their defaults can be found in the ConfigProperties.scala enumeration 
in the enums directory. The spelling of each item below is used in Maven calls 
via -D{configName}={value} (for example, -Dorg=gatlingtest).
+
+Defaults listed are those that are specified by the Usergrid Gatling code, not 
necessarily defaults in the test scripts. Defaults are **bold**.
+
+* org (no default) - organization name
+* app (no default) - application name
+* collection (**"customentities"**) - collection name
+* sandboxCollection (**false**) - set permissions to allow all users 
read/write of collection (for anonymous access)
+* adminUser (no default) - username for administrative user (to get management 
tokens)
+* adminPassword (no default) - password for administrative user
+* appUser (no default) - username for application (non-management) user
+* appUserPassword (no default) - password for application user
+* baseUrl (no default) - base Usergrid URL (for example, 
https://api.usergrid.com); trailing slash is optional
+* authType (**"anonymous"**, "token", "basic") - type of authorization for 
test (does not affect setup operations)
+* tokenType ("none", **"user"**, "management") - type of token to use if 
authType = token
+* skipSetup (**false**) - skip entire setup section (can include creation of 
org and/or app, loading entities, and/or setting a collection to have world 
read-write permissions)
+* createOrg (**false**) - create the organization specified by the org 
configuration item (will continue if the org already exists)
+* createApp (**false**) - create the application specified by the app 
configuration item (will continue if the app already exists)
+* loadEntities (**false**) - load entities as part of setup, instead of as 
part of the test
+* scenarioType (**"nameRandomInfinite"**, "uuidInfinite", 
"getByNameSequential", "getAllByCursor", "loadEntities", "updateEntities", 
"deleteEntities", "auditGetCollectionEntities", 
"auditVerifyCollectionEntities") - type of scenario to run, more details in 
test scripts section
+* rampUsers (**0**) - number of users to inject during the ramp up time
+* rampTime (**0**) - duration in seconds of the ramp up time
+* constantUsersPerSec (**0**) - number of users per second to inject during 
the constant injection time (decimal ok)
+* constantUsersDuration (**10**) - duration in seconds of the constant 
injection time
+* numEntities (**5000**) - number of entities for the test
+* userSeed (**1**) - initial user seed; for example, if userSeed=5001 and 
numEntities=5000, entities 5001-10000 will be created
+* entityPrefix (**"entity"**) - prefix for entity name (example of entity name 
including prefix and entity number: "entity1")
+* entityType ("trivial", "trivialSortable", **"basic"**, "largeMultiField") - 
type of entity to create (trivial = 1 field, trivialSortable = trivial + 
sortableField containing random integer, basic = several fields with random 
values, largeMultiField = large entities with *multiPropertyCount* fields, each 
containing a string *multiPropertySizeInK* * 1000 characters long
+* multiPropertyPrefix (**"prop"**) - prefix for the largeMultiField entity's 
properties
+* multiPropertyCount (**1**) - number of properties for each entity
+* multiPropertySizeInK (**1**) - each property contains a string that is this 
number of kilobytes long
+* entityNumberProperty (no default) - property name that should contain the 
entity number (can be used for querying)
+* searchQuery (**""**) - query to be used for searching during test
+* searchLimit (**0**) - limit to be returned on searches
+* endConditionType (**"minutesElapsed"**, requestCount, unlimited) - end 
condition for the test (minutes elapsed, number of requests made, or never end)
+* endMinutes (**10**) - number of minutes to run test (if endConditionType = 
minutesElapsed)
+* endRequestCount (**1000**) - number of requests before test is ended (if 
conditionType = requestCount)
+* orgCreationUsername (no default) - username of admin account for org created 
during setup
+* orgCreationName (no default) - name of admin for org created during setup
+* orgCreationEmail (no default) - email address of admin for org created 
during setup
+* orgCreationPassword (**"test"**) - password for admin account for org 
created during setup
+* updateProperty (**"updateProp"**) - property name to be updated for update 
test
+* updateValue (**{current date}**) - value property should be given for update 
test
+* entityWorkerCount (**0**) - number of Gatling instances to be run at a time
+* entityWorkerNum (**0**) - worker number for this Gatling instance
+* uuidFilename (no default) - UUID filename for non-audit tests
+* auditUuidFilename (no default) - UUID filename for audit tests
+* failedUuidFilename (no default) - UUID filename for failed entries while 
auditing
+* retryCount (**0**) - number of retries of operation before giving up
+* purgeUsers (**100**) - number of entities to create at a time during 
loadEntities (send this many requests, then wait for the responses)
+* laterThanTimestamp (**0**) - if specified for an audit, will only match 
entities modified >= this timestamp; can be used for incremental audits
+* entityProgressCount (**10000**) - print to console every time this many 
requests has been sent (if entityProgressCount = 10000, will print on the 
1000th, 2000th, 3000th... request)
+* injectionList (**"rampUsers(10,60)"**) - custom injection pattern for 
CustomInjectionSimulation (discussed below)
+* printFailedRequests (**true**) - prints the request and response on the 
console for failed requests (those that fail more than *retryCount* times)
+* getViaQuery (**false**) - retrieve entities via query instead of via name or 
uuid
+* queryParams (**""**) - additional query parameters (currently used for get 
by entity or by name)
+* csvFeedPattern (**"random"**) - pattern to use when feeding from a CSV 
("random" is random, "circular" goes through CSV sequentially and restarts from 
beginning when it reaches the end)
+* unlimitedFeed (**false**) - continue loading with no limit on number of 
entities (forces interleavedWorkerFeed=true); hit CTRL-c to abort
+* flushCsv (**0**) - if > 0, flush CSV file when that number of CSV entries 
has been received
+* interleavedWorkerFeed (**false**) - for multiple gatling servers, shard the 
entities via interleaving rather than splitting into separate chunks; for 
example, for 10 workers over 1M entities, interleaving would cause one worker 
to have 1, 11, 21, 31, etc. instead of 1-100000 
+* newCsvOnFlush (**false**) - when the output CSV file is flushed, create a 
new CSV file
+* deleteAfterSuccessfulAudit (**false**) - delete a record that is 
successfully verified via query
+* usergridRegion (**""**) - send specified region in the UsergridRegion header 
for all requests -- this allows Edge proxy to call different regions for testing
+* saveInvalidResponse (**false**) - on audit, do not retry but immediately 
save failure to output CSV file
+
+The following settings are currently not used (were used by deprecated tests, 
but may be valid in the future):
+
+* numDevices (**4000**) - number of devices for a push notification test
+* pushNotifier (**"loadNotifier"**) - push notifier
+* pushProvider (**"noop"**) - push provider
+* throttle (**50**) - maximum number of users at a time
+* holdDuration (**300**) - duration for test in seconds
+
+##User injection for tests
+The models for injection are based upon the simulation type chosen.
+
+###ConfigurableSimulation
+The configurable simulation currently has a single ramp up period (*rampUsers* 
are injected evenly over *rampTime* seconds) followed by a constant injection 
period (*constantUsersPerSec* are injected per second over 
*constantUsersDuration* number of seconds). This is a fairly simple injection 
pattern -- use CustomInjectionSimulation for more control.
+
+###CustomInjectionSimulation
+*injectionList* allows a custom injection pattern for user creation by passing 
in a single string containing [injection 
steps](http://gatling.io/docs/2.1.7/general/simulation_setup.html#injection) 
separated by semicolons.
+
+* atOnceUsers(nbUsers) - injects a given number of users at once (Gatling 
injection example: atOnceusers(10) )
+* constantUsersPerSec(rate,duration) - injects users at a constant rate, 
defined as users per second, during a given duration (Gatling injection 
example: constantUsersPerSec(20) during(15 seconds) )
+* constantUsersPerSecRandomized(rate,duration) - injects users at a constant 
rated, defined in users per second, during a given duration; users will be 
injected at randomized intervals (Gatling injection example: 
constantUsersPerSec(20) during(15 seconds) randomized)
+* heavisideUsers(nbUsers,duration) - injects a given number of users following 
a smooth approximation of the heaviside step function stretched to a given 
duration (Gatling injection example: heavisideUsers(1000) over(20 seconds) )
+* nothingFor(duration) - pause for a given duration (Gatling injection 
example: nothingFor(4 seconds) )
+* rampUsers(nbUsers,duration) - injects a given number of users with a linear 
ramp over a given duration in seconds (Gatling injection example: rampUsers(10) 
over 5 seconds)
+* rampUsersPerSec(rate1,rate2,duration) - injects users from starting rate to 
target rate, defined in users per second, during a given duration; users will 
be injected at regular intervals (Gatling injection example: 
rampUsersPerSec(rate1) to (rate2) during(duration) )
+* rampUsersPerSecRandomized(rate1,rate2,duration) - injects users from 
starting rate to target rate, defined in users per second, during a given 
duration; users will be injected at randomized intervals (Gatling injection 
example: rampUsersPerSec(rate1) to (rate2) during(duration) randomized)
+
+Example injectionList string: 
"rampUsers(100,300);nothingFor(60);constantUsersPerSecRandomized(10,120)"
+
+###AuditSimulation
+Audit simulation has only a single ramp up period (specified by *rampUsers* 
and *rampTime*).
+
+##loadtest structure
+Feel free to skip this section -- it contains information to help you 
understand the code
+
+* /stack/loadtests - Top level directory
+       * pom.xml - Gatling's Maven POM file
+       * testConfig.sh - contains defaults for configuration items (listed 
above)
+       * run*.sh - scripts that simplify running Usergrid Gatling test scripts 
(listed above)
+
+* /stack/loadtests/src - Code for Usergrid tests
+
+* /stack/loadtests/target - Contains code and resources when tests are 
compiled and run
+
+* /stack/loadtests/src/main/scala/org/apache/usergrid/datagenerators - 
Contains code to generate [Gatling 
feeders](http://gatling.io/docs/2.1.7/session/feeder.html) and build entities 
to be stored in Usergrid collections during tests
+
+* /stack/loadtests/src/main/scala/org/apache/usergrid/enums - Contains 
enumerations for test configuration items
+
+* /stack/loadtests/src/main/scala/org/apache/usergrid/helpers - Contains 
helper functionality
+       * Extractors.scala - extracts information from payloads and injects 
information into the [Gatling 
session](http://gatling.io/docs/2.1.7/session/session_api.html)
+       * Headers.scala - common headers to be added into generated requests
+       * Setup.scala - contains functions to set up a test (for example, 
creation of an organization or application) and get OAuth tokens
+       * Utils.scala - utilities to create random elements and URLs
+
+* /stack/loadtests/src/main/scala/org/apache/usergrid/scenarios - Contains 
[Gatling scenarios](http://gatling.io/docs/2.1.7/general/scenario.html) used in 
the Gatling simulations; most of the current tests use the scenarios in 
EntityCollectionScenarios.scala and AuditScenarios.scala
+
+* /stack/loadtests/src/main/scala/org/apache/usergrid/settings - Contains code 
to handle test settings and generate CSV files for use in testing
+
+* /stack/loadtests/src/main/scala/org/apache/usergrid/simulations - Contains 
[Gatling 
simulations](http://gatling.io/docs/2.1.7/general/simulation_structure.html) 
for running the tests
+       * AuditSimulation.scala - Tests for a) finding all entities in an 
organization and writing the names and UUIDs to a CSV file, and b) validating 
the existence of the entities in the CSV file; audit tests can be used to test 
that a copy/migration of an organization is complete
+       * ConfigurableSimulation.scala - contains many different types of tests 
that can be configured via Gatling test shell script or Maven Gatling call
+       * CustomInjectionSimulation.scala - tests that allow full configuration 
of [Gatling user injection] via Gatling test shell script or Maven Gatling call
+
+##Running tests using Maven
+Gatling uses [Apache Maven](https://maven.apache.org/) to handle dependencies 
and run the tests. The test scripts run Gatling via Maven, and have good 
examples of the Maven calls.
+
+###Example Maven (run from loadtests directory)
+
+    > mvn gatling:execute \
+       -Dorg=myorg
+       -Dapp=myapp
+       -DbaseUrl=http://api.usergrid.com
+       ...
+       -DscenarioType=loadEntities
+       
-Dgatling.simulationClass=org.apache.usergrid.simulations.ConfigurableSimulation
+
+
+
+
+

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29bf682e/tests/performance/pom.xml
----------------------------------------------------------------------
diff --git a/tests/performance/pom.xml b/tests/performance/pom.xml
new file mode 100644
index 0000000..b94dfdd
--- /dev/null
+++ b/tests/performance/pom.xml
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+       Licensed to the Apache Software Foundation (ASF) under one or more
+       contributor license agreements.  See the NOTICE file distributed with
+       this work for additional information regarding copyright ownership.
+       The ASF licenses this file to You under the Apache License, Version 2.0
+       (the "License"); you may not use this file except in compliance with
+       the License.  You may obtain a copy of the License at
+
+               http://www.apache.org/licenses/LICENSE-2.0
+
+       Unless required by applicable law or agreed to in writing, software
+       distributed under the License is distributed on an "AS IS" BASIS,
+       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+               See the License for the specific language governing permissions 
and
+               limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+       <modelVersion>4.0.0</modelVersion>
+       <groupId>org.apache.usergrid</groupId>
+       <artifactId>loadtests</artifactId>
+       <version>1.0-SNAPSHOT</version>
+
+       <repositories>
+               <repository>
+                       <id>sonatype</id>
+                       <name>Sonatype OSS</name>
+                       
<url>https://oss.sonatype.org/content/groups/public</url>
+                       <releases>
+                               <updatePolicy>never</updatePolicy>
+                       </releases>
+                       <snapshots>
+                               <enabled>true</enabled>
+                       </snapshots>
+               </repository>
+       </repositories>
+       <pluginRepositories>
+               <pluginRepository>
+                       <id>sonatype</id>
+                       <name>Sonatype OSS</name>
+                       
<url>https://oss.sonatype.org/content/groups/public</url>
+                       <snapshots>
+                               <enabled>true</enabled>
+                       </snapshots>
+               </pluginRepository>
+       </pluginRepositories>
+
+       <properties>
+               <maven.compiler.source>1.7</maven.compiler.source>
+               <maven.compiler.target>1.7</maven.compiler.target>
+               <scala.version>2.11.7</scala.version>
+               <encoding>UTF-8</encoding>
+               
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+
+               <gatling.version>2.1.7</gatling.version>
+        <gatling.plugin.version>2.1.7</gatling.plugin.version>
+               <gatling-highcharts.version>2.1.7</gatling-highcharts.version>
+
+               <scala-maven-plugin.version>3.2.2</scala-maven-plugin.version>
+       </properties>
+
+       <dependencyManagement>
+               <dependencies>
+                       <dependency>
+                               <groupId>io.gatling</groupId>
+                               <artifactId>gatling-app</artifactId>
+                               <version>${gatling.version}</version>
+                       </dependency>
+                       <dependency>
+                               <groupId>io.gatling</groupId>
+                               <artifactId>gatling-recorder</artifactId>
+                               <version>${gatling.version}</version>
+                       </dependency>
+                       <dependency>
+                               <groupId>io.gatling.highcharts</groupId>
+                               
<artifactId>gatling-charts-highcharts</artifactId>
+                               <version>${gatling-highcharts.version}</version>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.scala-lang</groupId>
+                               <artifactId>scala-library</artifactId>
+                               <version>${scala.version}</version>
+                       </dependency>
+               </dependencies>
+       </dependencyManagement>
+
+       <dependencies>
+               <dependency>
+                       <groupId>io.gatling.highcharts</groupId>
+                       <artifactId>gatling-charts-highcharts</artifactId>
+               </dependency>
+               <dependency>
+                       <groupId>io.gatling</groupId>
+                       <artifactId>gatling-app</artifactId>
+               </dependency>
+               <dependency>
+                       <groupId>io.gatling</groupId>
+                       <artifactId>gatling-recorder</artifactId>
+               </dependency>
+               <dependency>
+                       <groupId>org.scala-lang</groupId>
+                       <artifactId>scala-library</artifactId>
+               </dependency>
+       </dependencies>
+
+       <build>
+               <sourceDirectory>src/main/scala</sourceDirectory>
+               <testSourceDirectory>src/test/scala</testSourceDirectory>
+               <pluginManagement>
+                       <plugins>
+                               <plugin>
+                                       <groupId>net.alchim31.maven</groupId>
+                                       
<artifactId>scala-maven-plugin</artifactId>
+                                       
<version>${scala-maven-plugin.version}</version>
+                               </plugin>
+                               <plugin>
+                                       <groupId>io.gatling</groupId>
+                                       
<artifactId>gatling-maven-plugin</artifactId>
+                                       
<version>${gatling.plugin.version}</version>
+                               </plugin>
+                       </plugins>
+               </pluginManagement>
+               <plugins>
+                       <plugin>
+                               <groupId>net.alchim31.maven</groupId>
+                               <artifactId>scala-maven-plugin</artifactId>
+                               <executions>
+                                       <execution>
+                                               <goals>
+                                                       <goal>compile</goal>
+                                                       <goal>testCompile</goal>
+                                               </goals>
+                                               <configuration>
+                                                       <args>
+                                                               
<arg>-target:jvm-1.6</arg>
+                                                               
<arg>-deprecation</arg>
+                                                               
<arg>-feature</arg>
+                                                               
<arg>-unchecked</arg>
+                                                               
<arg>-language:implicitConversions</arg>
+                                                               
<arg>-language:postfixOps</arg>
+                                                       </args>
+                                               </configuration>
+                                       </execution>
+                               </executions>
+                       </plugin>
+               </plugins>
+       </build>
+</project>

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29bf682e/tests/performance/runAuditDeleteEntities.sh
----------------------------------------------------------------------
diff --git a/tests/performance/runAuditDeleteEntities.sh 
b/tests/performance/runAuditDeleteEntities.sh
new file mode 100755
index 0000000..ff92940
--- /dev/null
+++ b/tests/performance/runAuditDeleteEntities.sh
@@ -0,0 +1,65 @@
+#!/bin/bash
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#               http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+DIR="${BASH_SOURCE%/*}"
+if [[ ! -d "$DIR" ]]; then DIR="$PWD"; fi
+. "$DIR/testConfig.sh"
+
+# from testConfig.sh
+#URL=
+#ADMIN_USER=
+#ADMIN_PASSWORD=
+#ORG=
+#APP=
+#AUTH_TYPE=
+#TOKEN_TYPE=
+#RETRY_COUNT=
+
+die() { echo "$@" 1>&2 ; exit 1; }
+
+[ "$#" -ge 3 ] || die "At least 3 arguments required, $# provided.  Example is 
$0 RAMP_USERS RAMP_TIME(seconds) AUDIT_UUID_FILENAME [FAILED_UUID_FILENAME 
[USERGRID_REGION]]"
+
+RAMP_USERS="$1"
+RAMP_TIME="$2"
+AUDIT_UUID_FILENAME="$3"
+FAILED_UUID_FILENAME="$4"
+[ "$#" -ge 5 ] && USERGRID_REGION="$5"
+
+shift $#
+
+SCENARIO_TYPE=auditDeleteEntities
+
+#Compile everything
+mvn compile
+
+#Execute the test
+mvn gatling:execute \
+-DbaseUrl=${URL} \
+-DadminUser=${ADMIN_USER}  \
+-DadminPassword=${ADMIN_PASSWORD}  \
+-Dorg=${ORG} \
+-Dapp=${APP} \
+-DauthType=${AUTH_TYPE} \
+-DtokenType=${TOKEN_TYPE} \
+-DretryCount=${RETRY_COUNT} \
+-DscenarioType=${SCENARIO_TYPE} \
+-DrampUsers=${RAMP_USERS}  \
+-DrampTime=${RAMP_TIME}  \
+-DauditUuidFilename=${AUDIT_UUID_FILENAME} \
+-DfailedUuidFilename=${FAILED_UUID_FILENAME} \
+-DprintFailedRequests=${PRINT_FAILED_REQUESTS} \
+-DusergridRegion=${USERGRID_REGION} \
+-Dgatling.simulationClass=org.apache.usergrid.simulations.AuditSimulation
+

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29bf682e/tests/performance/runAuditGetAllAppCollectionEntities.sh
----------------------------------------------------------------------
diff --git a/tests/performance/runAuditGetAllAppCollectionEntities.sh 
b/tests/performance/runAuditGetAllAppCollectionEntities.sh
new file mode 100755
index 0000000..f1304c0
--- /dev/null
+++ b/tests/performance/runAuditGetAllAppCollectionEntities.sh
@@ -0,0 +1,68 @@
+#!/bin/bash
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#               http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+DIR="${BASH_SOURCE%/*}"
+if [[ ! -d "$DIR" ]]; then DIR="$PWD"; fi
+. "$DIR/testConfig.sh"
+
+# from testConfig.sh
+#URL=
+#ADMIN_USER=
+#ADMIN_PASSWORD=
+#ORG=
+#AUTH_TYPE=
+#TOKEN_TYPE=
+#SEARCH_QUERY=
+#SEARCH_LIMIT=
+#LATER_THAN_TIMESTAMP=  #may be overridden on command line
+#ENTITY_PROGRESS_COUNT=
+
+die() { echo "$@" 1>&2 ; exit 1; }
+
+[ "$#" -ge 3 ] || die "At least 3 arguments required, $# provided.  Example is 
$0 RAMP_USERS RAMP_TIME(seconds) UUID_FILENAME [LATER_THAN_TIMESTAMP(ms)]"
+RAMP_USERS="$1"
+RAMP_TIME="$2"
+UUID_FILENAME="$3"
+[ "$#" -ge 4 ] && LATER_THAN_TIMESTAMP="$4"
+
+shift 3
+
+SCENARIO_TYPE=auditGetCollectionEntities
+APP="*"
+
+#Compile everything
+mvn compile
+
+#Execute the test
+mvn gatling:execute \
+-DbaseUrl=${URL} \
+-DadminUser=${ADMIN_USER}  \
+-DadminPassword=${ADMIN_PASSWORD}  \
+-Dorg=${ORG} \
+-Dapp=${APP} \
+-DauthType=${AUTH_TYPE} \
+-DtokenType=${TOKEN_TYPE} \
+-DsearchQuery=${SEARCH_QUERY} \
+-DsearchLimit=${SEARCH_LIMIT} \
+-DlaterThanTimestamp=${LATER_THAN_TIMESTAMP} \
+-DentityProgressCount=${ENTITY_PROGRESS_COUNT} \
+-DscenarioType=${SCENARIO_TYPE} \
+-DrampUsers=${RAMP_USERS}  \
+-DrampTime=${RAMP_TIME}  \
+-DuuidFilename=${UUID_FILENAME} \
+-DprintFailedRequests=${PRINT_FAILED_REQUESTS} \
+-Dgatling.simulationClass=org.apache.usergrid.simulations.AuditSimulation
+
+

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29bf682e/tests/performance/runAuditGetCollectionEntities.sh
----------------------------------------------------------------------
diff --git a/tests/performance/runAuditGetCollectionEntities.sh 
b/tests/performance/runAuditGetCollectionEntities.sh
new file mode 100755
index 0000000..7c87e25
--- /dev/null
+++ b/tests/performance/runAuditGetCollectionEntities.sh
@@ -0,0 +1,68 @@
+#!/bin/bash
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#               http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+DIR="${BASH_SOURCE%/*}"
+if [[ ! -d "$DIR" ]]; then DIR="$PWD"; fi
+. "$DIR/testConfig.sh"
+
+# from testConfig.sh
+#URL=
+#ADMIN_USER=
+#ADMIN_PASSWORD=
+#ORG=
+#APP=
+#AUTH_TYPE=
+#TOKEN_TYPE=
+#SEARCH_QUERY=
+#SEARCH_LIMIT=
+#LATER_THAN_TIMESTAMP=  #may be overridden on command line
+#ENTITY_PROGRESS_COUNT=
+
+die() { echo "$@" 1>&2 ; exit 1; }
+
+[ "$#" -ge 3 ] || die "At least 3 arguments required, $# provided.  Example is 
$0 RAMP_USERS RAMP_TIME(seconds) UUID_FILENAME [LATER_THAN_TIMESTAMP(ms)]"
+RAMP_USERS="$1"
+RAMP_TIME="$2"
+UUID_FILENAME="$3"
+[ "$#" -ge 4 ] && LATER_THAN_TIMESTAMP="$4"
+
+shift 3
+
+SCENARIO_TYPE=auditGetCollectionEntities
+
+#Compile everything
+mvn compile
+
+#Execute the test
+mvn gatling:execute \
+-DbaseUrl=${URL} \
+-DadminUser=${ADMIN_USER}  \
+-DadminPassword=${ADMIN_PASSWORD}  \
+-Dorg=${ORG} \
+-Dapp=${APP} \
+-DauthType=${AUTH_TYPE} \
+-DtokenType=${TOKEN_TYPE} \
+-DsearchQuery=${SEARCH_QUERY} \
+-DsearchLimit=${SEARCH_LIMIT} \
+-DlaterThanTimestamp=${LATER_THAN_TIMESTAMP} \
+-DentityProgressCount=${ENTITY_PROGRESS_COUNT} \
+-DscenarioType=${SCENARIO_TYPE} \
+-DrampUsers=${RAMP_USERS}  \
+-DrampTime=${RAMP_TIME}  \
+-DuuidFilename=${UUID_FILENAME} \
+-DprintFailedRequests=${PRINT_FAILED_REQUESTS} \
+-Dgatling.simulationClass=org.apache.usergrid.simulations.AuditSimulation
+
+

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29bf682e/tests/performance/runAuditVerifyCollectionEntities.sh
----------------------------------------------------------------------
diff --git a/tests/performance/runAuditVerifyCollectionEntities.sh 
b/tests/performance/runAuditVerifyCollectionEntities.sh
new file mode 100755
index 0000000..be50189
--- /dev/null
+++ b/tests/performance/runAuditVerifyCollectionEntities.sh
@@ -0,0 +1,69 @@
+#!/bin/bash
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#               http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+DIR="${BASH_SOURCE%/*}"
+if [[ ! -d "$DIR" ]]; then DIR="$PWD"; fi
+. "$DIR/testConfig.sh"
+
+# from testConfig.sh
+#URL=
+#ADMIN_USER=
+#ADMIN_PASSWORD=
+#ORG=
+#APP=
+#AUTH_TYPE=
+#TOKEN_TYPE=
+#RETRY_COUNT=
+
+DELETE_AFTER_SUCCESSFUL_AUDIT=false
+
+die() { echo "$@" 1>&2 ; exit 1; }
+
+[ "$#" -ge 3 ] || die "At least 3 arguments required, $# provided.  Example is 
$0 RAMP_USERS RAMP_TIME(seconds) AUDIT_UUID_FILENAME [FAILED_UUID_FILENAME 
[DELETE_AFTER_SUCCESSFUL_AUDIT(true/false) [USERGRID_REGION]]]"
+
+RAMP_USERS="$1"
+RAMP_TIME="$2"
+AUDIT_UUID_FILENAME="$3"
+FAILED_UUID_FILENAME="$4"
+[ "$#" -ge 5 ] && DELETE_AFTER_SUCCESSFUL_AUDIT="$5"
+[ "$#" -ge 6 ] && USERGRID_REGION="$6"
+
+shift $#
+
+SCENARIO_TYPE=auditVerifyCollectionEntities
+
+#Compile everything
+mvn compile
+
+#Execute the test
+mvn gatling:execute \
+-DbaseUrl=${URL} \
+-DadminUser=${ADMIN_USER}  \
+-DadminPassword=${ADMIN_PASSWORD}  \
+-Dorg=${ORG} \
+-Dapp=${APP} \
+-DauthType=${AUTH_TYPE} \
+-DtokenType=${TOKEN_TYPE} \
+-DretryCount=${RETRY_COUNT} \
+-DscenarioType=${SCENARIO_TYPE} \
+-DrampUsers=${RAMP_USERS}  \
+-DrampTime=${RAMP_TIME}  \
+-DauditUuidFilename=${AUDIT_UUID_FILENAME} \
+-DfailedUuidFilename=${FAILED_UUID_FILENAME} \
+-DprintFailedRequests=${PRINT_FAILED_REQUESTS} \
+-DdeleteAfterSuccessfulAudit=${DELETE_AFTER_SUCCESSFUL_AUDIT} \
+-DusergridRegion=${USERGRID_REGION} \
+-Dgatling.simulationClass=org.apache.usergrid.simulations.AuditSimulation
+

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29bf682e/tests/performance/runCollectionQueryTest.sh
----------------------------------------------------------------------
diff --git a/tests/performance/runCollectionQueryTest.sh 
b/tests/performance/runCollectionQueryTest.sh
new file mode 100755
index 0000000..714b817
--- /dev/null
+++ b/tests/performance/runCollectionQueryTest.sh
@@ -0,0 +1,88 @@
+#!/bin/bash
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#               http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+DIR="${BASH_SOURCE%/*}"
+if [[ ! -d "$DIR" ]]; then DIR="$PWD"; fi
+. "$DIR/testConfig.sh"
+
+# from testConfig.sh
+#URL=
+#ADMIN_USER=
+#ADMIN_PASSWORD=
+#ORG=
+#APP=
+#AUTH_TYPE=
+#TOKEN_TYPE=
+#CREATE_ORG=
+#CREATE_APP=
+#LOAD_ENTITIES=
+#SANDBOX_COLLECTION=
+#NUM_ENTITIES=
+#SKIP_SETUP=
+#COLLECTION=
+#ENTITY_SEED=
+#SEARCH_QUERY=
+#SEARCH_LIMIT=  #may be overridden on command line
+#END_CONDITION_TYPE=
+#END_MINUTES=
+#END_REQUEST_COUNT=
+#CONSTANT_USERS_PER_SEC=
+#CONSTANT_USERS_DURATION=
+
+die() { echo "$@" 1>&2 ; exit 1; }
+
+[ "$#" -ge 2 ] || die "At least 2 arguments required, $# provided.  Example is 
$0 RAMP_USERS RAMP_TIME(seconds) [SEARCH_LIMIT]"
+
+RAMP_USERS="$1"
+RAMP_TIME="$2"
+[ "$#" -ge 3 ] && SEARCH_LIMIT="$3"
+
+shift $#
+
+SCENARIO_TYPE=getAllByCursor
+
+#Compile everything
+mvn compile
+
+#Execute the test
+mvn gatling:execute \
+-DbaseUrl=${URL} \
+-DadminUser=${ADMIN_USER}  \
+-DadminPassword=${ADMIN_PASSWORD}  \
+-Dorg=${ORG} \
+-Dapp=${APP} \
+-DauthType=${AUTH_TYPE} \
+-DtokenType=${TOKEN_TYPE} \
+-DcreateOrg=${CREATE_ORG} \
+-DcreateApp=${CREATE_APP} \
+-DloadEntities=${LOAD_ENTITIES} \
+-DsandboxCollection=${SANDBOX_COLLECTION} \
+-DnumEntities=${NUM_ENTITIES} \
+-DskipSetup=${SKIP_SETUP} \
+-Dcollection=${COLLECTION} \
+-DentitySeed=${ENTITY_SEED} \
+-DsearchQuery=${SEARCH_QUERY} \
+-DsearchLimit=${SEARCH_LIMIT} \
+-DendConditionType=${END_CONDITION_TYPE} \
+-DendMinutes=${END_MINUTES} \
+-DendRequestCount=${END_REQUEST_COUNT} \
+-DconstantUsersPerSec=${CONSTANT_USERS_PER_SEC}    \
+-DconstantUsersDuration=${CONSTANT_USERS_DURATION}    \
+-DscenarioType=${SCENARIO_TYPE} \
+-DrampUsers=${RAMP_USERS}  \
+-DrampTime=${RAMP_TIME}  \
+-DprintFailedRequests=${PRINT_FAILED_REQUESTS} \
+-Dgatling.simulationClass=org.apache.usergrid.simulations.ConfigurableSimulation
+

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29bf682e/tests/performance/runCustomInjectRandomEntityByUuidTest.sh
----------------------------------------------------------------------
diff --git a/tests/performance/runCustomInjectRandomEntityByUuidTest.sh 
b/tests/performance/runCustomInjectRandomEntityByUuidTest.sh
new file mode 100755
index 0000000..8c240e9
--- /dev/null
+++ b/tests/performance/runCustomInjectRandomEntityByUuidTest.sh
@@ -0,0 +1,108 @@
+#!/bin/bash
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#               http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+#
+# Injection list:
+# type(arg1,arg2,...);type(arg1,...)
+#
+# types:
+# rampUsers(int numUsers, int overSeconds)
+# constantUsersPerSec(double numUsersPerSec, int duringSeconds)
+# constantUsersPerSecRandomized(double numUsersPerSec, int duringSeconds)
+# atOnceUsers(int numUsers)
+# rampUsersPerSec(double numUsersPerSec, int totalUsers, int duringSeconds)
+# rampUsersPerSecRandomized(double numUsersPerSec, int totalUsers, int 
duringSeconds)
+# heavisideUsers(int numUsers, int overSeconds)
+# nothingFor(int seconds)
+#
+# Example: rampUsers(30,120);nothingFor(120);atOnceUsers(20)
+
+DIR="${BASH_SOURCE%/*}"
+if [[ ! -d "$DIR" ]]; then DIR="$PWD"; fi
+. "$DIR/testConfig.sh"
+
+# from testConfig.sh
+#URL=
+#ADMIN_USER=
+#ADMIN_PASSWORD=
+#ORG=
+#APP=
+#AUTH_TYPE=
+#TOKEN_TYPE=
+#CREATE_ORG=
+#CREATE_APP=
+#LOAD_ENTITIES=
+#SANDBOX_COLLECTION=
+#NUM_ENTITIES=
+#SKIP_SETUP=
+#COLLECTION=
+#RETRY_COUNT=
+#END_CONDITION_TYPE=
+#END_MINUTES=
+#END_REQUEST_COUNT=
+#INJECTION_LIST=
+
+helpMsg() {
+    echo "At least 2 arguments required, $# provided.  Example is $0 
INJECTION_LIST UUID_FILENAME" 1>&2
+    echo "Injection types:" 1>&2
+    echo "  rampUsers(int numUsers, int overSeconds)" 1>&2
+    echo "  constantUsersPerSec(double numUsersPerSec, int duringSeconds)" 1>&2
+    echo "  constantUsersPerSecRandomized(double numUsersPerSec, int 
duringSeconds)" 1>&2
+    echo "  atOnceUsers(int numUsers)" 1>&2
+    echo "  rampUsersPerSec(double numUsersPerSec, int totalUsers, int 
duringSeconds)" 1>&2
+    echo "  rampUsersPerSecRandomized(double numUsersPerSec, int totalUsers, 
int duringSeconds)" 1>&2
+    echo "  heavisideUsers(int numUsers, int overSeconds)" 1>&2
+    echo "  nothingFor(int seconds)" 1>&2
+    exit 1
+}
+
+[ "$#" -ge 2 ] || helpMsg
+
+INJECTION_LIST="$1"
+UUID_FILENAME="$2"
+
+shift 2
+
+SCENARIO_TYPE=uuidRandomInfinite
+
+#Compile everything
+mvn compile
+
+#Execute the test
+mvn gatling:execute \
+-DbaseUrl=${URL} \
+-DadminUser=${ADMIN_USER}  \
+-DadminPassword=${ADMIN_PASSWORD}  \
+-Dorg=${ORG} \
+-Dapp=${APP} \
+-DauthType=${AUTH_TYPE} \
+-DtokenType=${TOKEN_TYPE} \
+-DcreateOrg=${CREATE_ORG} \
+-DcreateApp=${CREATE_APP} \
+-DloadEntities=${LOAD_ENTITIES} \
+-DsandboxCollection=${SANDBOX_COLLECTION} \
+-DnumEntities=${NUM_ENTITIES} \
+-DskipSetup=${SKIP_SETUP} \
+-Dcollection=${COLLECTION} \
+-DretryCount=${RETRY_COUNT} \
+-DendConditionType=${END_CONDITION_TYPE} \
+-DendMinutes=${END_MINUTES} \
+-DendRequestCount=${END_REQUEST_COUNT} \
+-DscenarioType=${SCENARIO_TYPE} \
+-DuuidFilename=${UUID_FILENAME} \
+-DinjectionList=${INJECTION_LIST} \
+-DprintFailedRequests=${PRINT_FAILED_REQUESTS} \
+-Dgatling.simulationClass=org.apache.usergrid.simulations.CustomInjectionSimulation
+

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29bf682e/tests/performance/runDeleteEntities.sh
----------------------------------------------------------------------
diff --git a/tests/performance/runDeleteEntities.sh 
b/tests/performance/runDeleteEntities.sh
new file mode 100755
index 0000000..d0da19b
--- /dev/null
+++ b/tests/performance/runDeleteEntities.sh
@@ -0,0 +1,92 @@
+#!/bin/bash
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#               http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+DIR="${BASH_SOURCE%/*}"
+if [[ ! -d "$DIR" ]]; then DIR="$PWD"; fi
+. "$DIR/testConfig.sh"
+
+# from testConfig.sh
+#URL=
+#ADMIN_USER=
+#ADMIN_PASSWORD=
+#ENTITY_WORKER_NUM=  #may be overridden on command line
+#ENTITY_WORKER_COUNT=  #may be overridden on command line
+#ORG=
+#APP=
+#AUTH_TYPE=
+#TOKEN_TYPE=
+#CREATE_ORG=
+#CREATE_APP=
+#LOAD_ENTITIES=
+#SANDBOX_COLLECTION=
+#NUM_ENTITIES=  #may be overridden on command line
+#SKIP_SETUP=
+#COLLECTION=
+#ENTITY_PREFIX=
+#ENTITY_SEED=  #may be overridden on command line
+#RETRY_COUNT=
+#CONSTANT_USERS_PER_SEC=
+#CONSTANT_USERS_DURATION=
+
+die() { echo "$@" 1>&2 ; exit 1; }
+
+[ "$#" -ge 3 ] || die "At least 3 arguments required, $# provided.  Example is 
$0 RAMP_USERS RAMP_TIME(seconds) ENTITY_PREFIX [NUM_ENTITIES [ENTITY_SEED 
[ENTITY_WORKER_NUM [ENTITY_WORKER_COUNT]]]]"
+
+RAMP_USERS="$1"
+RAMP_TIME="$2"
+ENTITY_PREFIX="$3"
+[ "$#" -ge 4 ] && NUM_ENTITIES="$4"
+[ "$#" -ge 5 ] && ENTITY_SEED="$5"
+[ "$#" -ge 6 ] && ENTITY_WORKER_NUM="$6"
+[ "$#" -ge 7 ] && ENTITY_WORKER_COUNT="$7"
+
+shift $#
+
+SCENARIO_TYPE=deleteEntities
+INTERLEAVED_WORKER_FEED=true
+
+#Compile everything
+mvn compile
+
+#Execute the test
+mvn gatling:execute \
+-DinterleavedWorkerFeed=${INTERLEAVED_WORKER_FEED} \
+-DbaseUrl=${URL} \
+-DadminUser=${ADMIN_USER}  \
+-DadminPassword=${ADMIN_PASSWORD}  \
+-DentityWorkerNum=${ENTITY_WORKER_NUM} \
+-DentityWorkerCount=${ENTITY_WORKER_COUNT} \
+-Dorg=${ORG} \
+-Dapp=${APP} \
+-DauthType=${AUTH_TYPE} \
+-DtokenType=${TOKEN_TYPE} \
+-DcreateOrg=${CREATE_ORG} \
+-DcreateApp=${CREATE_APP} \
+-DloadEntities=${LOAD_ENTITIES} \
+-DsandboxCollection=${SANDBOX_COLLECTION} \
+-DnumEntities=${NUM_ENTITIES} \
+-DskipSetup=${SKIP_SETUP} \
+-Dcollection=${COLLECTION} \
+-DentityPrefix=${ENTITY_PREFIX} \
+-DentitySeed=${ENTITY_SEED} \
+-DretryCount=${RETRY_COUNT}  \
+-DconstantUsersPerSec=${CONSTANT_USERS_PER_SEC}    \
+-DconstantUsersDuration=${CONSTANT_USERS_DURATION}    \
+-DscenarioType=${SCENARIO_TYPE} \
+-DrampUsers=${RAMP_USERS}  \
+-DrampTime=${RAMP_TIME}  \
+-DprintFailedRequests=${PRINT_FAILED_REQUESTS} \
+-Dgatling.simulationClass=org.apache.usergrid.simulations.ConfigurableSimulation
+

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29bf682e/tests/performance/runGetEntitiesByNameSequential.sh
----------------------------------------------------------------------
diff --git a/tests/performance/runGetEntitiesByNameSequential.sh 
b/tests/performance/runGetEntitiesByNameSequential.sh
new file mode 100755
index 0000000..4003853
--- /dev/null
+++ b/tests/performance/runGetEntitiesByNameSequential.sh
@@ -0,0 +1,101 @@
+#!/bin/bash
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#               http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+DIR="${BASH_SOURCE%/*}"
+if [[ ! -d "$DIR" ]]; then DIR="$PWD"; fi
+. "$DIR/testConfig.sh"
+
+# from testConfig.sh
+#URL=
+#ADMIN_USER=
+#ADMIN_PASSWORD=
+#ENTITY_WORKER_NUM=  #may be overridden on command line
+#ENTITY_WORKER_COUNT=  #may be overridden on command line
+#ORG=
+#APP=
+#AUTH_TYPE=
+#TOKEN_TYPE=
+#CREATE_ORG=
+#CREATE_APP=
+#LOAD_ENTITIES=
+#SANDBOX_COLLECTION=
+#NUM_ENTITIES=  #may be overridden on command line
+#SKIP_SETUP=
+#COLLECTION=
+#ENTITY_PREFIX=
+#ENTITY_SEED=
+#RETRY_COUNT=
+#CONSTANT_USERS_PER_SEC=
+#CONSTANT_USERS_DURATION=
+
+
+die() { echo "$@" 1>&2 ; exit 1; }
+
+[ "$#" -ge 2 ] || die "At least 2 arguments required, $# provided.  Example is 
$0 RAMP_USERS RAMP_TIME(seconds) [NUM_ENTITIES [UUID_FILENAME 
[ENTITY_WORKER_NUM [ENTITY_WORKER_COUNT]]]]"
+
+RAMP_USERS="$1"
+RAMP_TIME="$2"
+[ "$#" -ge 3 ] && NUM_ENTITIES="$3"
+[ "$#" -ge 4 ] && UUID_FILENAME="$4"
+[ "$#" -ge 5 ] && ENTITY_WORKER_NUM="$5"
+[ "$#" -ge 6 ] && ENTITY_WORKER_COUNT="$6"
+
+shift $#
+
+SCENARIO_TYPE=getByNameSequential
+
+#Compile everything
+mvn compile
+
+#Execute the test
+mvn gatling:execute \
+-DbaseUrl=${URL} \
+-DadminUser=${ADMIN_USER}  \
+-DadminPassword=${ADMIN_PASSWORD}  \
+-DentityWorkerNum=${ENTITY_WORKER_NUM} \
+-DentityWorkerCount=${ENTITY_WORKER_COUNT} \
+-Dorg=${ORG} \
+-Dapp=${APP} \
+-DauthType=${AUTH_TYPE} \
+-DtokenType=${TOKEN_TYPE} \
+-DcreateOrg=${CREATE_ORG} \
+-DcreateApp=${CREATE_APP} \
+-DloadEntities=${LOAD_ENTITIES} \
+-DsandboxCollection=${SANDBOX_COLLECTION} \
+-DnumEntities=${NUM_ENTITIES} \
+-DskipSetup=${SKIP_SETUP} \
+-Dcollection=${COLLECTION} \
+-DentityPrefix=${ENTITY_PREFIX} \
+-DentitySeed=${ENTITY_SEED} \
+-DretryCount=${RETRY_COUNT} \
+-DconstantUsersPerSec=${CONSTANT_USERS_PER_SEC}    \
+-DconstantUsersDuration=${CONSTANT_USERS_DURATION}    \
+-DscenarioType=${SCENARIO_TYPE} \
+-DrampUsers=${RAMP_USERS}  \
+-DrampTime=${RAMP_TIME}  \
+-DuuidFilename=${UUID_FILENAME} \
+-DprintFailedRequests=${PRINT_FAILED_REQUESTS} \
+-Dgatling.simulationClass=org.apache.usergrid.simulations.ConfigurableSimulation
+
+
+
+#Now move all the reports
+#AGGREGATE_DIR="target/aggregate-$(date +%s)"
+
+#mkdir -p ${AGGREGATE_DIR}
+
+#copy to the format of target/aggregate(date)/(simnulationame)-simulation.log
+#find target -name "simulation.log" -exec cp {} ${AGGREGATE_DIR}/$(basename 
$(dirname {} ))-simulation.log  \;
+

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29bf682e/tests/performance/runGetEntitiesByUuid.sh
----------------------------------------------------------------------
diff --git a/tests/performance/runGetEntitiesByUuid.sh 
b/tests/performance/runGetEntitiesByUuid.sh
new file mode 100755
index 0000000..545ab0d
--- /dev/null
+++ b/tests/performance/runGetEntitiesByUuid.sh
@@ -0,0 +1,92 @@
+#!/bin/bash
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#               http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+DIR="${BASH_SOURCE%/*}"
+if [[ ! -d "$DIR" ]]; then DIR="$PWD"; fi
+. "$DIR/testConfig.sh"
+
+# from testConfig.sh
+#URL=
+#ADMIN_USER=
+#ADMIN_PASSWORD=
+#ORG=
+#APP=
+#AUTH_TYPE=
+#TOKEN_TYPE=
+#CREATE_ORG=
+#CREATE_APP=
+#LOAD_ENTITIES=
+#SANDBOX_COLLECTION=
+#NUM_ENTITIES=
+#SKIP_SETUP=
+#COLLECTION=
+#RETRY_COUNT=
+#END_CONDITION_TYPE=
+#END_MINUTES=
+#END_REQUEST_COUNT=
+#CONSTANT_USERS_PER_SEC=
+#CONSTANT_USERS_DURATION=
+
+#CSV_FEED_PATTERN=circular
+CSV_FEED_PATTERN=random
+
+die() { echo "$@" 1>&2 ; exit 1; }
+
+[ "$#" -ge 3 ] || die "At least 3 arguments required, $# provided.  Example is 
$0 RAMP_USERS RAMP_TIME(seconds) UUID_FILENAME [[CSV_FEED_PATTERN] 
QUERY_PARAMS]"
+
+RAMP_USERS="$1"
+RAMP_TIME="$2"
+UUID_FILENAME="$3"
+[ "$#" -ge 4 ] && CSV_FEED_PATTERN="$4"
+[ "$#" -ge 5 ] && QUERY_PARAMS="$5"
+
+shift $#
+
+SCENARIO_TYPE=uuidRandomInfinite
+
+#Compile everything
+mvn compile
+
+#Execute the test
+mvn gatling:execute \
+-DbaseUrl=${URL} \
+-DadminUser=${ADMIN_USER}  \
+-DadminPassword=${ADMIN_PASSWORD}  \
+-Dorg=${ORG} \
+-Dapp=${APP} \
+-DauthType=${AUTH_TYPE} \
+-DtokenType=${TOKEN_TYPE} \
+-DcreateOrg=${CREATE_ORG} \
+-DcreateApp=${CREATE_APP} \
+-DloadEntities=${LOAD_ENTITIES} \
+-DsandboxCollection=${SANDBOX_COLLECTION} \
+-DnumEntities=${NUM_ENTITIES} \
+-DskipSetup=${SKIP_SETUP} \
+-Dcollection=${COLLECTION} \
+-DretryCount=${RETRY_COUNT} \
+-DendConditionType=${END_CONDITION_TYPE} \
+-DendMinutes=${END_MINUTES} \
+-DendRequestCount=${END_REQUEST_COUNT} \
+-DconstantUsersPerSec=${CONSTANT_USERS_PER_SEC}    \
+-DconstantUsersDuration=${CONSTANT_USERS_DURATION}    \
+-DscenarioType=${SCENARIO_TYPE} \
+-DrampUsers=${RAMP_USERS}  \
+-DrampTime=${RAMP_TIME}  \
+-DuuidFilename=${UUID_FILENAME} \
+-DprintFailedRequests=${PRINT_FAILED_REQUESTS} \
+-DqueryParams=${QUERY_PARAMS} \
+-DcsvFeedPattern=${CSV_FEED_PATTERN} \
+-Dgatling.simulationClass=org.apache.usergrid.simulations.ConfigurableSimulation
+

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29bf682e/tests/performance/runLoadEntities.sh
----------------------------------------------------------------------
diff --git a/tests/performance/runLoadEntities.sh 
b/tests/performance/runLoadEntities.sh
new file mode 100755
index 0000000..52ee000
--- /dev/null
+++ b/tests/performance/runLoadEntities.sh
@@ -0,0 +1,98 @@
+#!/bin/bash
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#               http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+DIR="${BASH_SOURCE%/*}"
+if [[ ! -d "$DIR" ]]; then DIR="$PWD"; fi
+. "$DIR/testConfig.sh"
+
+# from testConfig.sh
+#URL=
+#ADMIN_USER=
+#ADMIN_PASSWORD=
+#ENTITY_WORKER_NUM=  #may be overridden on command line
+#ENTITY_WORKER_COUNT=  #may be overridden on command line
+#ORG=
+#APP=
+#AUTH_TYPE=
+#TOKEN_TYPE=
+#CREATE_ORG=
+#CREATE_APP=
+#SANDBOX_COLLECTION=
+#NUM_ENTITIES=  #may be overridden on command line
+#SKIP_SETUP=
+#COLLECTION=
+#ENTITY_TYPE=
+#ENTITY_PREFIX=
+#ENTITY_SEED=  #may be overridden on command line
+#RETRY_COUNT=
+#ENTITY_PROGRESS_COUNT=
+#CONSTANT_USERS_PER_SEC=
+#CONSTANT_USERS_DURATION=
+#FLUSH_CSV=
+
+die() { echo "$@" 1>&2 ; exit 1; }
+
+[ "$#" -ge 2 ] || die "At least 2 arguments required, $# provided.  Example is 
$0 RAMP_USERS RAMP_TIME(seconds) [UUID_FILENAME [NUM_ENTITIES [ENTITY_SEED 
[ENTITY_WORKER_NUM [ENTITY_WORKER_COUNT]]]]]"
+
+RAMP_USERS="$1"
+RAMP_TIME="$2"
+[ "$#" -ge 3 ] && UUID_FILENAME="$3"
+[ "$#" -ge 4 ] && NUM_ENTITIES="$4"
+[ "$#" -ge 5 ] && ENTITY_SEED="$5"
+[ "$#" -ge 6 ] && ENTITY_WORKER_NUM="$6"
+[ "$#" -ge 7 ] && ENTITY_WORKER_COUNT="$7"
+
+shift $#
+
+SCENARIO_TYPE=loadEntities
+
+# don't load entities as part of setup (loading entities is the point of the 
test)
+LOAD_ENTITIES=false
+
+#Compile everything
+mvn compile
+
+#Execute the test
+mvn gatling:execute \
+-DbaseUrl=${URL} \
+-DadminUser=${ADMIN_USER}  \
+-DadminPassword=${ADMIN_PASSWORD}  \
+-DentityWorkerNum=${ENTITY_WORKER_NUM} \
+-DentityWorkerCount=${ENTITY_WORKER_COUNT} \
+-Dorg=${ORG} \
+-Dapp=${APP} \
+-DauthType=${AUTH_TYPE} \
+-DtokenType=${TOKEN_TYPE} \
+-DcreateOrg=${CREATE_ORG} \
+-DcreateApp=${CREATE_APP} \
+-DsandboxCollection=${SANDBOX_COLLECTION} \
+-DnumEntities=${NUM_ENTITIES} \
+-DskipSetup=${SKIP_SETUP} \
+-Dcollection=${COLLECTION} \
+-DentityType=${ENTITY_TYPE} \
+-DentityPrefix=${ENTITY_PREFIX} \
+-DentitySeed=${ENTITY_SEED} \
+-DretryCount=${RETRY_COUNT} \
+-DentityProgressCount=${ENTITY_PROGRESS_COUNT} \
+-DconstantUsersPerSec=${CONSTANT_USERS_PER_SEC}    \
+-DconstantUsersDuration=${CONSTANT_USERS_DURATION}    \
+-DscenarioType=${SCENARIO_TYPE} \
+-DloadEntities=${LOAD_ENTITIES} \
+-DrampUsers=${RAMP_USERS}  \
+-DrampTime=${RAMP_TIME}  \
+-DuuidFilename=${UUID_FILENAME} \
+-DprintFailedRequests=${PRINT_FAILED_REQUESTS} \
+-Dgatling.simulationClass=org.apache.usergrid.simulations.ConfigurableSimulation
+

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29bf682e/tests/performance/runLoadEntitiesUnlimited.sh
----------------------------------------------------------------------
diff --git a/tests/performance/runLoadEntitiesUnlimited.sh 
b/tests/performance/runLoadEntitiesUnlimited.sh
new file mode 100755
index 0000000..10e8a31
--- /dev/null
+++ b/tests/performance/runLoadEntitiesUnlimited.sh
@@ -0,0 +1,103 @@
+#!/bin/bash
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#               http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+DIR="${BASH_SOURCE%/*}"
+if [[ ! -d "$DIR" ]]; then DIR="$PWD"; fi
+. "$DIR/testConfig.sh"
+
+# from testConfig.sh
+#URL=
+#ADMIN_USER=
+#ADMIN_PASSWORD=
+#ENTITY_WORKER_NUM=  #may be overridden on command line
+#ENTITY_WORKER_COUNT=  #may be overridden on command line
+#ORG=
+#APP=
+#AUTH_TYPE=
+#TOKEN_TYPE=
+#CREATE_ORG=
+#CREATE_APP=
+#SANDBOX_COLLECTION=
+#NUM_ENTITIES= #ignored
+#SKIP_SETUP=
+#COLLECTION=
+#ENTITY_TYPE=
+#ENTITY_PREFIX=
+#ENTITY_SEED=  #may be overridden on command line
+#RETRY_COUNT=
+#ENTITY_PROGRESS_COUNT=
+#CONSTANT_USERS_PER_SEC=
+#CONSTANT_USERS_DURATION=
+#NEW_CSV_ON_FLUSH=
+#FLUSH_CSV=
+
+die() { echo "$@" 1>&2 ; exit 1; }
+
+[ "$#" -ge 2 ] || die "At least 2 arguments required, $# provided.  Example is 
$0 RAMP_USERS RAMP_TIME(seconds) [UUID_FILENAME [ENTITY_SEED [ENTITY_WORKER_NUM 
[ENTITY_WORKER_COUNT [USERGRID_REGION]]]]]"
+
+RAMP_USERS="$1"
+RAMP_TIME="$2"
+[ "$#" -ge 3 ] && UUID_FILENAME="$3"
+[ "$#" -ge 4 ] && ENTITY_SEED="$4"
+[ "$#" -ge 5 ] && ENTITY_WORKER_NUM="$5"
+[ "$#" -ge 6 ] && ENTITY_WORKER_COUNT="$6"
+[ "$#" -ge 7 ] && USERGRID_REGION="$6"
+
+shift $#
+
+SCENARIO_TYPE=loadEntities
+
+# don't load entities as part of setup (loading entities is the point of the 
test)
+LOAD_ENTITIES=false
+
+#Compile everything
+mvn compile
+
+#Execute the test
+mvn gatling:execute \
+-DflushCsv=${FLUSH_CSV} \
+-DunlimitedFeed=true \
+-DnewCsvOnFlush=${NEW_CSV_ON_FLUSH} \
+-DbaseUrl=${URL} \
+-DadminUser=${ADMIN_USER}  \
+-DadminPassword=${ADMIN_PASSWORD}  \
+-DentityWorkerNum=${ENTITY_WORKER_NUM} \
+-DentityWorkerCount=${ENTITY_WORKER_COUNT} \
+-Dorg=${ORG} \
+-Dapp=${APP} \
+-DauthType=${AUTH_TYPE} \
+-DtokenType=${TOKEN_TYPE} \
+-DcreateOrg=${CREATE_ORG} \
+-DcreateApp=${CREATE_APP} \
+-DsandboxCollection=${SANDBOX_COLLECTION} \
+-DskipSetup=${SKIP_SETUP} \
+-Dcollection=${COLLECTION} \
+-DentityType=${ENTITY_TYPE} \
+-DentityPrefix=${ENTITY_PREFIX} \
+-DentitySeed=${ENTITY_SEED} \
+-DretryCount=${RETRY_COUNT} \
+-DentityProgressCount=${ENTITY_PROGRESS_COUNT} \
+-DconstantUsersPerSec=${CONSTANT_USERS_PER_SEC}    \
+-DconstantUsersDuration=${CONSTANT_USERS_DURATION}    \
+-DscenarioType=${SCENARIO_TYPE} \
+-DloadEntities=${LOAD_ENTITIES} \
+-DrampUsers=${RAMP_USERS}  \
+-DrampTime=${RAMP_TIME}  \
+-DuuidFilename=${UUID_FILENAME} \
+-DprintFailedRequests=${PRINT_FAILED_REQUESTS} \
+-DusergridRegion=${USERGRID_REGION} \
+-DsaveInvalidResponse=true \
+-Dgatling.simulationClass=org.apache.usergrid.simulations.ConfigurableSimulation
+

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29bf682e/tests/performance/runLoadLargeMultiFieldEntities.sh
----------------------------------------------------------------------
diff --git a/tests/performance/runLoadLargeMultiFieldEntities.sh 
b/tests/performance/runLoadLargeMultiFieldEntities.sh
new file mode 100755
index 0000000..a2af54c
--- /dev/null
+++ b/tests/performance/runLoadLargeMultiFieldEntities.sh
@@ -0,0 +1,107 @@
+#!/bin/bash
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#               http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+DIR="${BASH_SOURCE%/*}"
+if [[ ! -d "$DIR" ]]; then DIR="$PWD"; fi
+. "$DIR/testConfig.sh"
+
+# from testConfig.sh
+#URL=
+#ADMIN_USER=
+#ADMIN_PASSWORD=
+#ENTITY_WORKER_NUM=  #may be overridden on command line
+#ENTITY_WORKER_COUNT=  #may be overridden on command line
+#ORG=
+#APP=
+#AUTH_TYPE=
+#TOKEN_TYPE=
+#CREATE_ORG=
+#CREATE_APP=
+#SANDBOX_COLLECTION=
+#NUM_ENTITIES=  #may be overridden on command line
+#SKIP_SETUP=
+#COLLECTION=
+#ENTITY_SEED=  #may be overridden on command line
+#RETRY_COUNT=
+#ENTITY_PROGRESS_COUNT=
+#CONSTANT_USERS_PER_SEC=
+#CONSTANT_USERS_DURATION=
+
+
+die() { echo "$@" 1>&2 ; exit 1; }
+
+[ "$#" -ge 2 ] || die "At least 2 arguments required, $# provided.  Example is 
$0 RAMP_USERS RAMP_TIME(seconds) [UUID_FILENAME [NUM_ENTITIES [ENTITY_SEED 
[ENTITY_WORKER_NUM [ENTITY_WORKER_COUNT]]]]]"
+
+RAMP_USERS="$1"
+RAMP_TIME="$2"
+[ "$#" -ge 3 ] && UUID_FILENAME="$3"
+[ "$#" -ge 4 ] && NUM_ENTITIES="$4"
+[ "$#" -ge 5 ] && ENTITY_SEED="$5"
+[ "$#" -ge 6 ] && ENTITY_WORKER_NUM="$6"
+[ "$#" -ge 7 ] && ENTITY_WORKER_COUNT="$7"
+
+shift $#
+
+SCENARIO_TYPE=loadEntities
+ENTITY_TYPE=largeMultiField
+ENTITY_PREFIX=multi
+
+MULTI_PROPERTY_PREFIX=prop
+MULTI_PROPERTY_COUNT=10
+MULTI_PROPERTY_SIZE_IN_K=1
+ENTITY_NUMBER_PROPERTY=entityNum
+
+# don't load entities as part of setup (loading entities is the point of the 
test)
+LOAD_ENTITIES=false
+
+#Compile everything
+mvn compile
+
+#Execute the test
+mvn gatling:execute \
+-DbaseUrl=${URL} \
+-DadminUser=${ADMIN_USER}  \
+-DadminPassword=${ADMIN_PASSWORD}  \
+-DentityWorkerNum=${ENTITY_WORKER_NUM} \
+-DentityWorkerCount=${ENTITY_WORKER_COUNT} \
+-Dorg=${ORG} \
+-Dapp=${APP} \
+-DauthType=${AUTH_TYPE} \
+-DtokenType=${TOKEN_TYPE} \
+-DcreateOrg=${CREATE_ORG} \
+-DcreateApp=${CREATE_APP} \
+-DsandboxCollection=${SANDBOX_COLLECTION} \
+-DnumEntities=${NUM_ENTITIES} \
+-DskipSetup=${SKIP_SETUP} \
+-Dcollection=${COLLECTION} \
+-DentitySeed=${ENTITY_SEED} \
+-DretryCount=${RETRY_COUNT} \
+-DentityProgressCount=${ENTITY_PROGRESS_COUNT} \
+-DconstantUsersPerSec=${CONSTANT_USERS_PER_SEC}    \
+-DconstantUsersDuration=${CONSTANT_USERS_DURATION}    \
+-DscenarioType=${SCENARIO_TYPE} \
+-DentityType=${ENTITY_TYPE} \
+-DentityPrefix=${ENTITY_PREFIX} \
+-DloadEntities=${LOAD_ENTITIES} \
+-DrampUsers=${RAMP_USERS}  \
+-DrampTime=${RAMP_TIME}  \
+-DuuidFilename=${UUID_FILENAME} \
+-DprintFailedRequests=${PRINT_FAILED_REQUESTS} \
+-DmultiPropertyPrefix=${MULTI_PROPERTY_PREFIX} \
+-DmultiPropertyCount=${MULTI_PROPERTY_COUNT} \
+-DmultiPropertySizeInK=${MULTI_PROPERTY_SIZE_IN_K} \
+-DentityNumberProperty=${ENTITY_NUMBER_PROPERTY} \
+-Dgatling.simulationClass=org.apache.usergrid.simulations.ConfigurableSimulation
+

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29bf682e/tests/performance/runLoadNoNameEntities.sh
----------------------------------------------------------------------
diff --git a/tests/performance/runLoadNoNameEntities.sh 
b/tests/performance/runLoadNoNameEntities.sh
new file mode 100755
index 0000000..8e08221
--- /dev/null
+++ b/tests/performance/runLoadNoNameEntities.sh
@@ -0,0 +1,98 @@
+#!/bin/bash
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#               http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+DIR="${BASH_SOURCE%/*}"
+if [[ ! -d "$DIR" ]]; then DIR="$PWD"; fi
+. "$DIR/testConfig.sh"
+
+# from testConfig.sh
+#URL=
+#ADMIN_USER=
+#ADMIN_PASSWORD=
+#ENTITY_WORKER_NUM=  #may be overridden on command line
+#ENTITY_WORKER_COUNT=  #may be overridden on command line
+#ORG=
+#APP=
+#AUTH_TYPE=
+#TOKEN_TYPE=
+#CREATE_ORG=
+#CREATE_APP=
+#SANDBOX_COLLECTION=
+#NUM_ENTITIES=  #may be overridden on command line
+#SKIP_SETUP=
+#ENTITY_SEED=  #may be overridden on command line
+#RETRY_COUNT=
+#ENTITY_PROGRESS_COUNT=
+#CONSTANT_USERS_PER_SEC=
+#CONSTANT_USERS_DURATION=
+
+
+die() { echo "$@" 1>&2 ; exit 1; }
+
+[ "$#" -ge 2 ] || die "At least 2 arguments required, $# provided.  Example is 
$0 RAMP_USERS RAMP_TIME(seconds) [UUID_FILENAME [NUM_ENTITIES [ENTITY_SEED 
[ENTITY_WORKER_NUM [ENTITY_WORKER_COUNT]]]]]"
+
+RAMP_USERS="$1"
+RAMP_TIME="$2"
+[ "$#" -ge 3 ] && UUID_FILENAME="$3"
+[ "$#" -ge 4 ] && NUM_ENTITIES="$4"
+[ "$#" -ge 5 ] && ENTITY_SEED="$5"
+[ "$#" -ge 6 ] && ENTITY_WORKER_NUM="$6"
+[ "$#" -ge 7 ] && ENTITY_WORKER_COUNT="$7"
+
+shift $#
+
+SCENARIO_TYPE=loadEntities
+ENTITY_TYPE=trivialSortable
+ENTITY_PREFIX=""
+COLLECTION=nonames
+
+# don't load entities as part of setup (loading entities is the point of the 
test)
+LOAD_ENTITIES=false
+
+#Compile everything
+mvn compile
+
+#Execute the test
+mvn gatling:execute \
+-DbaseUrl=${URL} \
+-DadminUser=${ADMIN_USER}  \
+-DadminPassword=${ADMIN_PASSWORD}  \
+-DentityWorkerNum=${ENTITY_WORKER_NUM} \
+-DentityWorkerCount=${ENTITY_WORKER_COUNT} \
+-Dorg=${ORG} \
+-Dapp=${APP} \
+-DauthType=${AUTH_TYPE} \
+-DtokenType=${TOKEN_TYPE} \
+-DcreateOrg=${CREATE_ORG} \
+-DcreateApp=${CREATE_APP} \
+-DsandboxCollection=${SANDBOX_COLLECTION} \
+-DnumEntities=${NUM_ENTITIES} \
+-DskipSetup=${SKIP_SETUP} \
+-Dcollection=${COLLECTION} \
+-DentitySeed=${ENTITY_SEED} \
+-DretryCount=${RETRY_COUNT} \
+-DentityProgressCount=${ENTITY_PROGRESS_COUNT} \
+-DconstantUsersPerSec=${CONSTANT_USERS_PER_SEC}    \
+-DconstantUsersDuration=${CONSTANT_USERS_DURATION}    \
+-DscenarioType=${SCENARIO_TYPE} \
+-DentityType=${ENTITY_TYPE} \
+-DentityPrefix=${ENTITY_PREFIX} \
+-DloadEntities=${LOAD_ENTITIES} \
+-DrampUsers=${RAMP_USERS}  \
+-DrampTime=${RAMP_TIME}  \
+-DuuidFilename=${UUID_FILENAME} \
+-DprintFailedRequests=${PRINT_FAILED_REQUESTS} \
+-Dgatling.simulationClass=org.apache.usergrid.simulations.ConfigurableSimulation
+

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29bf682e/tests/performance/runLoadSortableEntities.sh
----------------------------------------------------------------------
diff --git a/tests/performance/runLoadSortableEntities.sh 
b/tests/performance/runLoadSortableEntities.sh
new file mode 100755
index 0000000..cf87cb6
--- /dev/null
+++ b/tests/performance/runLoadSortableEntities.sh
@@ -0,0 +1,98 @@
+#!/bin/bash
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#               http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+DIR="${BASH_SOURCE%/*}"
+if [[ ! -d "$DIR" ]]; then DIR="$PWD"; fi
+. "$DIR/testConfig.sh"
+
+# from testConfig.sh
+#URL=
+#ADMIN_USER=
+#ADMIN_PASSWORD=
+#ENTITY_WORKER_NUM=  #may be overridden on command line
+#ENTITY_WORKER_COUNT=  #may be overridden on command line
+#ORG=
+#APP=
+#AUTH_TYPE=
+#TOKEN_TYPE=
+#CREATE_ORG=
+#CREATE_APP=
+#SANDBOX_COLLECTION=
+#NUM_ENTITIES=  #may be overridden on command line
+#SKIP_SETUP=
+#COLLECTION=
+#ENTITY_SEED=  #may be overridden on command line
+#RETRY_COUNT=
+#ENTITY_PROGRESS_COUNT=
+#CONSTANT_USERS_PER_SEC=
+#CONSTANT_USERS_DURATION=
+
+
+die() { echo "$@" 1>&2 ; exit 1; }
+
+[ "$#" -ge 2 ] || die "At least 2 arguments required, $# provided.  Example is 
$0 RAMP_USERS RAMP_TIME(seconds) [UUID_FILENAME [NUM_ENTITIES [ENTITY_SEED 
[ENTITY_WORKER_NUM [ENTITY_WORKER_COUNT]]]]]"
+
+RAMP_USERS="$1"
+RAMP_TIME="$2"
+[ "$#" -ge 3 ] && UUID_FILENAME="$3"
+[ "$#" -ge 4 ] && NUM_ENTITIES="$4"
+[ "$#" -ge 5 ] && ENTITY_SEED="$5"
+[ "$#" -ge 6 ] && ENTITY_WORKER_NUM="$6"
+[ "$#" -ge 7 ] && ENTITY_WORKER_COUNT="$7"
+
+shift $#
+
+SCENARIO_TYPE=loadEntities
+ENTITY_TYPE=trivialSortable
+ENTITY_PREFIX=sortable
+
+# don't load entities as part of setup (loading entities is the point of the 
test)
+LOAD_ENTITIES=false
+
+#Compile everything
+mvn compile
+
+#Execute the test
+mvn gatling:execute \
+-DbaseUrl=${URL} \
+-DadminUser=${ADMIN_USER}  \
+-DadminPassword=${ADMIN_PASSWORD}  \
+-DentityWorkerNum=${ENTITY_WORKER_NUM} \
+-DentityWorkerCount=${ENTITY_WORKER_COUNT} \
+-Dorg=${ORG} \
+-Dapp=${APP} \
+-DauthType=${AUTH_TYPE} \
+-DtokenType=${TOKEN_TYPE} \
+-DcreateOrg=${CREATE_ORG} \
+-DcreateApp=${CREATE_APP} \
+-DsandboxCollection=${SANDBOX_COLLECTION} \
+-DnumEntities=${NUM_ENTITIES} \
+-DskipSetup=${SKIP_SETUP} \
+-Dcollection=${COLLECTION} \
+-DentitySeed=${ENTITY_SEED} \
+-DretryCount=${RETRY_COUNT} \
+-DentityProgressCount=${ENTITY_PROGRESS_COUNT} \
+-DconstantUsersPerSec=${CONSTANT_USERS_PER_SEC}    \
+-DconstantUsersDuration=${CONSTANT_USERS_DURATION}    \
+-DscenarioType=${SCENARIO_TYPE} \
+-DentityType=${ENTITY_TYPE} \
+-DentityPrefix=${ENTITY_PREFIX} \
+-DloadEntities=${LOAD_ENTITIES} \
+-DrampUsers=${RAMP_USERS}  \
+-DrampTime=${RAMP_TIME}  \
+-DuuidFilename=${UUID_FILENAME} \
+-DprintFailedRequests=${PRINT_FAILED_REQUESTS} \
+-Dgatling.simulationClass=org.apache.usergrid.simulations.ConfigurableSimulation
+

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29bf682e/tests/performance/runOrgAppSetup.sh
----------------------------------------------------------------------
diff --git a/tests/performance/runOrgAppSetup.sh 
b/tests/performance/runOrgAppSetup.sh
new file mode 100755
index 0000000..b26eb37
--- /dev/null
+++ b/tests/performance/runOrgAppSetup.sh
@@ -0,0 +1,91 @@
+#!/bin/bash
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#               http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+DIR="${BASH_SOURCE%/*}"
+if [[ ! -d "$DIR" ]]; then DIR="$PWD"; fi
+. "$DIR/testConfig.sh"
+
+# from testConfig.sh
+#URL=
+#ADMIN_USER=
+#ADMIN_PASSWORD=
+#ENTITY_WORKER_NUM=  #may be overridden on command line
+#ENTITY_WORKER_COUNT=  #may be overridden on command line
+#AUTH_TYPE=
+#TOKEN_TYPE=
+#NUM_ENTITIES=  #may be overridden on command line
+#ENTITY_TYPE=
+#ENTITY_PREFIX=
+#ENTITY_SEED=  #may be overridden on command line
+#ORG= #may be overridden on command line
+#APP= #may be overridden on command line
+#COLLECTION= #may be overridden on command line
+#RETRY_COUNT=
+#ENTITY_PROGRESS_COUNT=
+#CONSTANT_USERS_PER_SEC=
+#CONSTANT_USERS_DURATION=
+
+die() { echo "$@" 1>&2 ; exit 1; }
+
+[ "$#" -ge 1 ] || die "At least 1 argument required, $# provided.  Example is 
$0 SANDBOX_COLLECTION(true/false) [ORG [APP [COLLECTION]]]"
+
+
+SANDBOX_COLLECTION="$1"
+# org, app, and collection can come from testConfig.sh
+[ "$#" -ge 2 ] && ORG="$2"
+[ "$#" -ge 3 ] && APP="$3"
+[ "$#" -ge 4 ] && COLLECTION="$4"
+
+shift $#
+
+SCENARIO_TYPE=doNothing
+SKIP_SETUP=false
+CREATE_ORG=true
+CREATE_APP=true
+RAMP_USERS=1
+RAMP_TIME=1
+
+#Compile everything
+mvn compile
+
+#Execute the test
+mvn gatling:execute \
+-DbaseUrl=${URL} \
+-DadminUser=${ADMIN_USER}  \
+-DadminPassword=${ADMIN_PASSWORD}  \
+-Dorg=${ORG} \
+-Dapp=${APP} \
+-DauthType=${AUTH_TYPE} \
+-DtokenType=${TOKEN_TYPE} \
+-DcreateOrg=${CREATE_ORG} \
+-DcreateApp=${CREATE_APP} \
+-DsandboxCollection=${SANDBOX_COLLECTION} \
+-DnumEntities=${NUM_ENTITIES} \
+-DskipSetup=${SKIP_SETUP} \
+-Dcollection=${COLLECTION} \
+-DentityType=${ENTITY_TYPE} \
+-DentityPrefix=${ENTITY_PREFIX} \
+-DentitySeed=${ENTITY_SEED} \
+-DretryCount=${RETRY_COUNT} \
+-DentityProgressCount=${ENTITY_PROGRESS_COUNT} \
+-DconstantUsersPerSec=${CONSTANT_USERS_PER_SEC}    \
+-DconstantUsersDuration=${CONSTANT_USERS_DURATION}    \
+-DscenarioType=${SCENARIO_TYPE} \
+-DloadEntities=${LOAD_ENTITIES} \
+-DrampUsers=${RAMP_USERS}  \
+-DrampTime=${RAMP_TIME}  \
+-DprintFailedRequests=${PRINT_FAILED_REQUESTS} \
+-Dgatling.simulationClass=org.apache.usergrid.simulations.ConfigurableSimulation
+

http://git-wip-us.apache.org/repos/asf/usergrid/blob/29bf682e/tests/performance/runRandomEntityByNameQueryTest.sh
----------------------------------------------------------------------
diff --git a/tests/performance/runRandomEntityByNameQueryTest.sh 
b/tests/performance/runRandomEntityByNameQueryTest.sh
new file mode 100755
index 0000000..bb42677
--- /dev/null
+++ b/tests/performance/runRandomEntityByNameQueryTest.sh
@@ -0,0 +1,91 @@
+#!/bin/bash
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#               http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+DIR="${BASH_SOURCE%/*}"
+if [[ ! -d "$DIR" ]]; then DIR="$PWD"; fi
+. "$DIR/testConfig.sh"
+
+# from testConfig.sh
+#URL=
+#ADMIN_USER=
+#ADMIN_PASSWORD=
+#ORG=
+#APP=
+#AUTH_TYPE=
+#TOKEN_TYPE=
+#CREATE_ORG=
+#CREATE_APP=
+#LOAD_ENTITIES=
+#SANDBOX_COLLECTION=
+#NUM_ENTITIES=  #may be overridden on command line
+#SKIP_SETUP=
+#COLLECTION=
+#ENTITY_PREFIX=
+#ENTITY_SEED=  #may be overridden on command line
+#RETRY_COUNT=
+#END_CONDITION_TYPE=
+#END_MINUTES=
+#END_REQUEST_COUNT=
+#CONSTANT_USERS_PER_SEC=
+#CONSTANT_USERS_DURATION=
+
+die() { echo "$@" 1>&2 ; exit 1; }
+
+[ "$#" -ge 2 ] || die "At least 2 arguments required, $# provided.  Example is 
$0 RAMP_USERS RAMP_TIME(seconds) [NUM_ENTITIES [ENTITY_SEED]]"
+
+RAMP_USERS="$1"
+RAMP_TIME="$2"
+[ "$#" -ge 3 ] && NUM_ENTITIES="$3"
+[ "$#" -ge 4 ] && ENTITY_SEED="$4"
+
+shift $#
+
+SCENARIO_TYPE=nameRandomInfinite
+GET_VIA_QUERY=true
+
+#Compile everything
+mvn compile
+
+#Execute the test
+mvn gatling:execute \
+-DbaseUrl=${URL} \
+-DadminUser=${ADMIN_USER}  \
+-DadminPassword=${ADMIN_PASSWORD}  \
+-Dorg=${ORG} \
+-Dapp=${APP} \
+-DauthType=${AUTH_TYPE} \
+-DtokenType=${TOKEN_TYPE} \
+-DcreateOrg=${CREATE_ORG} \
+-DcreateApp=${CREATE_APP} \
+-DloadEntities=${LOAD_ENTITIES} \
+-DsandboxCollection=${SANDBOX_COLLECTION} \
+-DnumEntities=${NUM_ENTITIES} \
+-DskipSetup=${SKIP_SETUP} \
+-Dcollection=${COLLECTION} \
+-DentityPrefix=${ENTITY_PREFIX} \
+-DentitySeed=${ENTITY_SEED} \
+-DretryCount=${RETRY_COUNT} \
+-DendConditionType=${END_CONDITION_TYPE} \
+-DendMinutes=${END_MINUTES} \
+-DendRequestCount=${END_REQUEST_COUNT} \
+-DconstantUsersPerSec=${CONSTANT_USERS_PER_SEC}    \
+-DconstantUsersDuration=${CONSTANT_USERS_DURATION}    \
+-DscenarioType=${SCENARIO_TYPE} \
+-DrampUsers=${RAMP_USERS}  \
+-DrampTime=${RAMP_TIME}  \
+-DprintFailedRequests=${PRINT_FAILED_REQUESTS} \
+-DgetViaQuery=${GET_VIA_QUERY} \
+-Dgatling.simulationClass=org.apache.usergrid.simulations.ConfigurableSimulation
+

Reply via email to