7 #TODO: Refactor into nice classs
11 tcount
= [2, 5, 10] #[2, 5, 10, 15, 20]
14 SMTP_HOST
= 'localhost'
17 from_msg
= 'testmail@mymail.com'
18 to_msg
= 'testuser@localhost'
20 msg
= """"jdsjkdjkjkdskj jdsjkdjks"
21 "dsjkdkjskjdskkjdsjkkjdskkjds",
22 "jdsjkdjksjkdjksjkdjkskjdjksk",
23 "dsjkjkdsjkkdjsjdjkskdjsjkdjk",
24 "dsjkjdksjkdjksjkdjkskjdkalsl"""
26 print 'FancyMail SMTP Benchmark Suite'
27 print ' - Message Count:', tmsgcount
28 print ' - Thread Count:', tcount
29 print ' - Connection Count:', ccount
31 print 'Benchmarking Message over Session'
32 server
= smtplib
.SMTP(SMTP_HOST
, SMTP_PORT
)
34 for i
in xrange(tmsgcount
):
36 server
.sendmail(from_msg
, to_msg
, msg
);
44 print " * Total time:", tt
45 print " * Avg. Time per Message:", ms
46 print " * Messages/Second:", 1.0 / ms
48 print "Benchmarking Connection Speed"
51 for i
in xrange(ccount
):
53 server
= smtplib
.SMTP(SMTP_HOST
, SMTP_PORT
)
54 server
.sendmail(from_msg
, to_msg
, msg
);
62 print " * Total time:", tt
63 print " * Avg. Time per Connection:", mt
64 print " * Connections per Second:", ms
66 print 'Benchmarking Multiple Connections'
68 class SBench(threading
.Thread
):
69 def __init__(self
, msgcount
):
70 threading
.Thread
.__init
__(self
)
71 self
.msgcount
= msgcount
73 conn
= smtplib
.SMTP(SMTP_HOST
, SMTP_PORT
)
75 for i
in xrange(self
.msgcount
):
77 conn
.sendmail(from_msg
, to_msg
, msg
);
81 self
.mt
= self
.tt
/ self
.msgcount
86 print 'Benchmarking with %i Threads' % tc
87 ptmsg
= tmsgcount
/ tc
90 threads
.append(SBench(ptmsg
))
94 print 'Stared Thread', i
99 print 'Joined Thread', i
108 print ' - Total Time:', t
.tt
109 print ' - Avg. Time per Msg:', t
.mt
110 print ' - Messages per Second:', t
.ms
115 print ' * Total Time:', tt
116 print ' * Avg. Time per Msg:', mt
117 print ' * Messages per Seccond:', ms