[CalendarServer-changes] [7793] CalendarServer/trunk/contrib/performance/loadtest
source_changes at macosforge.org
source_changes at macosforge.org
Thu Jul 14 09:46:53 PDT 2011
Revision: 7793
http://trac.macosforge.org/projects/calendarserver/changeset/7793
Author: sagen at apple.com
Date: 2011-07-14 09:46:52 -0700 (Thu, 14 Jul 2011)
Log Message:
-----------
Adds a record generator
Modified Paths:
--------------
CalendarServer/trunk/contrib/performance/loadtest/sim.py
CalendarServer/trunk/contrib/performance/loadtest/test_sim.py
Modified: CalendarServer/trunk/contrib/performance/loadtest/sim.py
===================================================================
--- CalendarServer/trunk/contrib/performance/loadtest/sim.py 2011-07-14 16:31:56 UTC (rev 7792)
+++ CalendarServer/trunk/contrib/performance/loadtest/sim.py 2011-07-14 16:46:52 UTC (rev 7793)
@@ -42,6 +42,17 @@
self.email = email
+def generateRecords(count, uidPattern="user%d", passwordPattern="user%d",
+ namePattern="User %d", emailPattern="user%d at example.com"):
+ for i in xrange(count):
+ i += 1
+ uid = uidPattern % (i,)
+ password = passwordPattern % (i,)
+ name = namePattern % (i,)
+ email = emailPattern % (i,)
+ yield _DirectoryRecord(uid, password, name, email)
+
+
def recordsFromCSVFile(path):
if path:
pathObj = FilePath(path)
Modified: CalendarServer/trunk/contrib/performance/loadtest/test_sim.py
===================================================================
--- CalendarServer/trunk/contrib/performance/loadtest/test_sim.py 2011-07-14 16:31:56 UTC (rev 7792)
+++ CalendarServer/trunk/contrib/performance/loadtest/test_sim.py 2011-07-14 16:46:52 UTC (rev 7793)
@@ -297,7 +297,62 @@
self.assertEqual(sim.records[98].commonName, 'User 99')
self.assertEqual(sim.records[98].email, 'user99 at example.com')
+ def test_generateRecordsDefaultPatterns(self):
+ """
+ L{LoadSimulator.fromCommandLine} takes an account loader from the
+ config file and uses it to generate user records for use in the
+ simulation.
+ """
+ config = VALID_CONFIG.copy()
+ config["accounts"] = {
+ "loader": "loadtest.sim.generateRecords",
+ "params": {
+ "count": 2
+ },
+ }
+ configpath = FilePath(self.mktemp())
+ configpath.setContent(writePlistToString(config))
+ sim = LoadSimulator.fromCommandLine(['--config', configpath.path])
+ self.assertEqual(2, len(sim.records))
+ self.assertEqual(sim.records[0].uid, 'user1')
+ self.assertEqual(sim.records[0].password, 'user1')
+ self.assertEqual(sim.records[0].commonName, 'User 1')
+ self.assertEqual(sim.records[0].email, 'user1 at example.com')
+ self.assertEqual(sim.records[1].uid, 'user2')
+ self.assertEqual(sim.records[1].password, 'user2')
+ self.assertEqual(sim.records[1].commonName, 'User 2')
+ self.assertEqual(sim.records[1].email, 'user2 at example.com')
+ def test_generateRecordsNonDefaultPatterns(self):
+ """
+ L{LoadSimulator.fromCommandLine} takes an account loader from the
+ config file and uses it to generate user records for use in the
+ simulation.
+ """
+ config = VALID_CONFIG.copy()
+ config["accounts"] = {
+ "loader": "loadtest.sim.generateRecords",
+ "params": {
+ "count": 3,
+ "uidPattern": "USER%03d",
+ "passwordPattern": "PASSWORD%03d",
+ "namePattern": "Test User %03d",
+ "emailPattern": "USER%03d at example2.com",
+ },
+ }
+ configpath = FilePath(self.mktemp())
+ configpath.setContent(writePlistToString(config))
+ sim = LoadSimulator.fromCommandLine(['--config', configpath.path])
+ self.assertEqual(3, len(sim.records))
+ self.assertEqual(sim.records[0].uid, 'USER001')
+ self.assertEqual(sim.records[0].password, 'PASSWORD001')
+ self.assertEqual(sim.records[0].commonName, 'Test User 001')
+ self.assertEqual(sim.records[0].email, 'USER001 at example2.com')
+ self.assertEqual(sim.records[2].uid, 'USER003')
+ self.assertEqual(sim.records[2].password, 'PASSWORD003')
+ self.assertEqual(sim.records[2].commonName, 'Test User 003')
+ self.assertEqual(sim.records[2].email, 'USER003 at example2.com')
+
def test_specifyRuntime(self):
"""
L{LoadSimulator.fromCommandLine} recognizes the I{--runtime} option to
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20110714/a33d5d15/attachment-0001.html>
More information about the calendarserver-changes
mailing list