You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sn...@apache.org on 2016/06/17 20:45:10 UTC

[8/8] usergrid git commit: Minor improvements to tests.

Minor improvements to tests.


Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/4394a206
Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/4394a206
Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/4394a206

Branch: refs/heads/usergrid-1268-akka-211
Commit: 4394a206afbf8cfdf38b2bf541749b550564f15c
Parents: 58fc657
Author: Dave Johnson <sn...@apache.org>
Authored: Fri Jun 17 12:45:24 2016 -0400
Committer: Dave Johnson <sn...@apache.org>
Committed: Fri Jun 17 12:45:24 2016 -0400

----------------------------------------------------------------------
 .../uniquevalues/UniqueValuesServiceTest.java   |  9 +++--
 .../apache/usergrid/rest/UniqueValuesIT.java    | 36 ++++++++++++++------
 .../rest/UniqueValuesPerformanceIT.java         |  4 +--
 3 files changed, 33 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/usergrid/blob/4394a206/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/uniquevalues/UniqueValuesServiceTest.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/uniquevalues/UniqueValuesServiceTest.java b/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/uniquevalues/UniqueValuesServiceTest.java
index 341f604..94d98f5 100644
--- a/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/uniquevalues/UniqueValuesServiceTest.java
+++ b/stack/corepersistence/collection/src/test/java/org/apache/usergrid/persistence/collection/uniquevalues/UniqueValuesServiceTest.java
@@ -56,6 +56,10 @@ public class UniqueValuesServiceTest {
 
     private static AtomicBoolean startedAkka = new AtomicBoolean( false );
 
+    int numThreads = 6;
+    int poolSize = 5;
+    int numUsers = 100;
+
     @Before
     public void initAkka() {
         if ( !startedAkka.getAndSet( true ) ) {
@@ -77,7 +81,6 @@ public class UniqueValuesServiceTest {
         final AtomicInteger successCounter = new AtomicInteger( 0 );
         final AtomicInteger errorCounter = new AtomicInteger( 0 );
 
-        int numUsers = 100;
         Multimap<String, Entity> usersCreated =
             generateDuplicateUsers( numUsers, successCounter, errorCounter );
 
@@ -110,12 +113,12 @@ public class UniqueValuesServiceTest {
         Multimap<String, Entity> usersCreated =
                 Multimaps.synchronizedListMultimap( ArrayListMultimap.create() );
 
-        ExecutorService execService = Executors.newFixedThreadPool( 10 );
+        ExecutorService execService = Executors.newFixedThreadPool( poolSize );
 
         for (int i = 0; i < numUsers; i++) {
 
             // multiple threads simultaneously trying to create a user with the same propertyName
-            for (int j = 0; j < 5; j++) {
+            for (int j = 0; j < numThreads; j++) {
                 String username = "user_" + i;
 
                 execService.submit( () -> {

http://git-wip-us.apache.org/repos/asf/usergrid/blob/4394a206/stack/rest/src/test/java/org/apache/usergrid/rest/UniqueValuesIT.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/UniqueValuesIT.java b/stack/rest/src/test/java/org/apache/usergrid/rest/UniqueValuesIT.java
index aa9acfe..448e4fd 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/UniqueValuesIT.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/UniqueValuesIT.java
@@ -28,6 +28,7 @@ import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import javax.ws.rs.ProcessingException;
 import javax.ws.rs.client.Client;
 import javax.ws.rs.client.ClientBuilder;
 import javax.ws.rs.client.Entity;
@@ -35,6 +36,7 @@ import javax.ws.rs.client.WebTarget;
 import javax.ws.rs.core.Form;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
+import java.net.ConnectException;
 import java.text.DecimalFormat;
 import java.util.Collection;
 import java.util.concurrent.ExecutorService;
@@ -65,13 +67,13 @@ public class UniqueValuesIT {
     public void testDuplicatePrevention() throws Exception {
 
         int numThreads = 6;
-        int poolsize = 40;
-        int numUsers = 100;
+        int poolSize = 40;
+        int numUsers = 400;
 
         Multimap<String, Form> usersCreated = Multimaps.synchronizedMultimap( HashMultimap.create() );
         Multimap<String, Form> dupsRejected = Multimaps.synchronizedMultimap( HashMultimap.create() );
 
-        ExecutorService execService = Executors.newFixedThreadPool( poolsize );
+        ExecutorService execService = Executors.newFixedThreadPool( poolSize );
 
         Client client = ClientBuilder.newClient();
 
@@ -81,14 +83,15 @@ public class UniqueValuesIT {
 
         final AtomicBoolean failed = new AtomicBoolean(false);
 
-        String randomizer = RandomStringUtils.randomAlphanumeric( 8 );
 
-        String[] targetHosts = {"http://localhost:8080","http://localhost:9090"};
+        String[] targetHosts = {"http://macsnoopdave2013:8080","http://macsnoopdave2010:9090"};
 
         for (int i = 0; i < numUsers; i++) {
 
             if ( failed.get() ) { break; }
 
+            String randomizer = RandomStringUtils.randomAlphanumeric( 8 );
+
             // multiple threads simultaneously trying to create a user with the same propertyName
             for (int j = 0; j < numThreads; j++) {
 
@@ -100,35 +103,46 @@ public class UniqueValuesIT {
                 execService.submit( () -> {
 
                     Form form = new Form();
-                    form.param( "name", username );
+                    //form.param( "name", username );
                     form.param( "username", username );
-                    form.param( "email", username + "@example.org" );
+                    form.param( "email",
+                        username + RandomStringUtils.randomAlphanumeric( 8 ) + "@example.org" );
                     form.param( "password", "s3cr3t" );
 
                     Timer.Context time = responses.time();
                     try {
                         WebTarget target = client.target( host ).path( "/management/users" );
 
-                        //logger.info("Posting user {} to host {}", propertyName, host);
+                        //logger.info("Posting user {} to host {}", username, host);
 
                         Response response = target.request()
                             .post( Entity.entity( form, MediaType.APPLICATION_FORM_URLENCODED ));
 
+                        String responseAsString = response.readEntity( String.class );
+
                         if ( response.getStatus() == 200 || response.getStatus() == 201 ) {
                             usersCreated.put( username, form );
                             successCounter.incrementAndGet();
 
-                        } else if ( response.getStatus() == 400 ) {
+                        } else if ( response.getStatus() == 400
+                                && responseAsString.contains("DuplicateUniquePropertyExistsException")) {
                             dupsRejected.put( username, form );
                             dupCounter.incrementAndGet();
 
                         } else {
-                            String responseAsString = response.readEntity( String.class );
                             logger.error("User creation failed status {} message {}",
-                                    response.getStatus(), responseAsString );
+                                response.getStatus(), responseAsString );
                             errorCounter.incrementAndGet();
                         }
 
+                    } catch ( ProcessingException e ) {
+                        errorCounter.incrementAndGet();
+                        if ( e.getCause() instanceof ConnectException ) {
+                            logger.error("Error connecting to " + host);
+                        } else {
+                            logger.error( "Error", e );
+                        }
+
                     } catch ( Exception e ) {
                         errorCounter.incrementAndGet();
                         logger.error("Error", e);

http://git-wip-us.apache.org/repos/asf/usergrid/blob/4394a206/stack/rest/src/test/java/org/apache/usergrid/rest/UniqueValuesPerformanceIT.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/UniqueValuesPerformanceIT.java b/stack/rest/src/test/java/org/apache/usergrid/rest/UniqueValuesPerformanceIT.java
index 790eee9..6350755 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/UniqueValuesPerformanceIT.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/UniqueValuesPerformanceIT.java
@@ -63,7 +63,7 @@ public class UniqueValuesPerformanceIT {
     public void testBasicOperation() throws Exception {
 
         int numUsers = 1000;
-        int numThreads = 1000;
+        int numThreads = 100;
         int poolsize = 50;
 
         ExecutorService execService = Executors.newFixedThreadPool( poolsize );
@@ -75,7 +75,7 @@ public class UniqueValuesPerformanceIT {
 
         String randomizer = RandomStringUtils.randomAlphanumeric( 8 );
 
-        String[] targetHosts = {"http://localhost:8080","http://localhost:9090"};
+        String[] targetHosts = {"http://macsnoopdave2013:8080","http://macsnoopdave2010:9090"};
 
         final MetricRegistry metrics = new MetricRegistry();
         final Timer responses = metrics.timer( name( UniqueValuesPerformanceIT.class, "responses" ) );