[CalendarServer-changes] [7789] CalendarServer/trunk/contrib/performance/loadtest

source_changes at macosforge.org source_changes at macosforge.org
Thu Jul 14 08:10:29 PDT 2011


Revision: 7789
          http://trac.macosforge.org/projects/calendarserver/changeset/7789
Author:   exarkun at twistedmatrix.com
Date:     2011-07-14 08:10:29 -0700 (Thu, 14 Jul 2011)
Log Message:
-----------
Count failures separately for each method, instead of accumulating them as we go.

Modified Paths:
--------------
    CalendarServer/trunk/contrib/performance/loadtest/population.py
    CalendarServer/trunk/contrib/performance/loadtest/test_population.py

Modified: CalendarServer/trunk/contrib/performance/loadtest/population.py
===================================================================
--- CalendarServer/trunk/contrib/performance/loadtest/population.py	2011-07-14 13:49:20 UTC (rev 7788)
+++ CalendarServer/trunk/contrib/performance/loadtest/population.py	2011-07-14 15:10:29 UTC (rev 7789)
@@ -333,11 +333,11 @@
         # Upper limit on ratio of >5sec requests to total requests
         fiveSecCutoff = 0.01
 
-        failures = 0
-        threeSec = 0
-        fiveSec = 0
-
         for (method, times) in self._perMethodTimes.iteritems():
+            failures = 0
+            threeSec = 0
+            fiveSec = 0
+
             for success, duration in times:
                 if not success:
                     failures += 1
@@ -358,7 +358,6 @@
                             method=method, cutoff=cutoff * 100))
 
         return reasons
-        
 
 
 

Modified: CalendarServer/trunk/contrib/performance/loadtest/test_population.py
===================================================================
--- CalendarServer/trunk/contrib/performance/loadtest/test_population.py	2011-07-14 13:49:20 UTC (rev 7788)
+++ CalendarServer/trunk/contrib/performance/loadtest/test_population.py	2011-07-14 15:10:29 UTC (rev 7789)
@@ -109,3 +109,26 @@
         self.assertEqual(
             ["Greater than 1% GET exceeded 5 second response time"],
             logger.failures())
+
+
+    def test_methodsCountedSeparately(self):
+        """
+        The counts for one method do not affect the results of another method.
+        """
+        logger = ReportStatistics()
+        for i in range(99):
+            logger.observe(dict(
+                    type='response', method='GET', success=True,
+                    duration=2.5, user='user01'))
+            logger.observe(dict(
+                    type='response', method='POST', success=True,
+                    duration=2.5, user='user01'))
+
+        logger.observe(dict(
+                type='response', method='GET', success=False,
+                duration=2.5, user='user01'))
+        logger.observe(dict(
+                type='response', method='POST', success=False,
+                duration=2.5, user='user01'))
+
+        self.assertEqual([], logger.failures())
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20110714/05441a9c/attachment.html>


More information about the calendarserver-changes mailing list