{"id":5344,"date":"2015-05-18T21:54:43","date_gmt":"2015-05-19T01:54:43","guid":{"rendered":"http:\/\/www.webperformance.com\/load-testing-tools\/blog\/?p=5344"},"modified":"2016-02-27T14:28:35","modified_gmt":"2016-02-27T18:28:35","slug":"mail-server-load-testing","status":"publish","type":"post","link":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/2015\/05\/mail-server-load-testing\/","title":{"rendered":"Mail Server Load Testing"},"content":{"rendered":"<p>In addition to our standard suite of web application testing services, Web Performance can also load test mail servers.\u00a0In this post,\u00a0I&#8217;ll describe what email load testing is, why it should be done, and how we do it.<\/p>\n<p>Mail servers can\u00a0be load tested by sending a large number of emails to a mail server over a specific period of time and recording how the server behaves as it receives those connections. Organizations may\u00a0require this type of load testing for several reasons. For example, they generally receive a consistent, low level of mail traffic with intermittent periods of high traffic. They may also expect growth within a certain period of time and want a mail server that is capable of scaling with the organization&#8217;s growth.<\/p>\n<p>This type of testing\u00a0can help an organization understand and prepare for either situation. Specifically, testing may\u00a0reveal:<\/p>\n<ul>\n<li>how much mail traffic the server can handle before bouncing mail<\/li>\n<li>how the server scales under high load<\/li>\n<li>how spam software\u00a0or filters process react to message\u00a0content<\/li>\n<\/ul>\n<h2>How do we load test a mail server?<\/h2>\n<p>The following graphic represents the mail server load testing process:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5600\" src=\"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2015\/05\/Email-Testing.png\" alt=\"\" width=\"600\" height=\"441\" \/><\/p>\n<p>As shown above, we perform testing using\u00a0several Amazon mail\u00a0servers in various geographical locations (US-East and US-West in the example above).<\/p>\n<p>The Email Test Controller coordinates with these servers to\u00a0send a\u00a0large number\u00a0of pre-generated emails over a set\u00a0period of time to the specified mail server. In addition to\u00a0using\u00a0servers\u00a0in different physical locations, we create emails from numerous templates containing rich HTML and embedded images. These characteristics enable\u00a0our load testing to\u00a0more realistically simulate actual emails.<\/p>\n<p>Additionally, the Web Test Controller measures the responsiveness of the webmail interface as emails come in.<\/p>\n<h2>What does a load test measure?<\/h2>\n<p>The image below shows which\u00a0variables are tracked\u00a0during a\u00a0load test. Specifically, we track the number of emails\u00a0sent and\u00a0received, the time between sending and receiving emails, and whether or not the server rejects or bounces back any messages:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5353 size-full\" src=\"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2015\/05\/Email-Blast-Analysis-v2.png\" alt=\"\" width=\"619\" height=\"451\" \/><\/p>\n<p>As a result of this test, we see that this\u00a0mail server received all messages delivered by our system. We also see that while the bulk of the messages were received within 11 minutes, the mail server began to exhibit some lag and messages began to queue up, with the mail server only receiving 100% after 21 minutes had passed.<\/p>\n<p>Additionally, by tracking both the amount of mail sent and received, we can identify which messages were rejected or undeliverable, and why. In one instance, for example,\u00a0testing revealed that an organization&#8217;s spam filter\u00a0was rejecting emails containing non-ASCII characters. By identifying these issues, the mail server can be reconfigured to let these messages through.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mail servers can be load tested by sending a large number of emails to a mail server over a specific period of time and recording how the server behaves as it receives those connections. Organizations may require this type of load testing for several reasons. For example, they generally receive a consistent, low level of mail traffic with intermittent periods of high traffic. They may also expect growth within a certain period of time and want a mail server that is capable of scaling with the organization&#8217;s growth.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,195],"tags":[221,237,220,222,60],"class_list":["post-5344","post","type-post","status-publish","format-standard","hentry","category-load-testing","category-load-testing-services","tag-e-mail","tag-load-testing","tag-mail-server","tag-smtp","tag-stress-testing"],"_links":{"self":[{"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/posts\/5344","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/comments?post=5344"}],"version-history":[{"count":8,"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/posts\/5344\/revisions"}],"predecessor-version":[{"id":5601,"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/posts\/5344\/revisions\/5601"}],"wp:attachment":[{"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/media?parent=5344"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/categories?post=5344"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/tags?post=5344"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}