<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Test Facebook &#187; Load Testing</title>
	<atom:link href="http://www.testfacebook.com/tag/load-testing/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.testfacebook.com</link>
	<description>The community for testing Facebook applications</description>
	<lastBuildDate>Wed, 28 Jul 2010 16:21:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Load Test your Facebook Application!!</title>
		<link>http://www.testfacebook.com/2010/07/22/load-test-your-facebook-application/</link>
		<comments>http://www.testfacebook.com/2010/07/22/load-test-your-facebook-application/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 13:08:17 +0000</pubDate>
		<dc:creator>Sander Smith</dc:creator>
				<category><![CDATA[FriendRunner]]></category>
		<category><![CDATA[Load Testing]]></category>
		<category><![CDATA[Testing tools]]></category>
		<category><![CDATA[Facebook]]></category>

		<guid isPermaLink="false">http://www.testfacebook.com/?p=437</guid>
		<description><![CDATA[Once again, the need to load test your Facebook application before deployment has been proven out in the wild. Another company has seen their application crash and burn under a load that it either wasn&#8217;t expecting, or unable to deal with. The interesting part of this story, which seems to get told over and over, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-445" style="margin: 20px;" title="willms fans FINAL.JPG" src="http://www.testfacebook.com/blog/wp-content/uploads/2010/07/bieberfans.jpg" alt="willms fans FINAL.JPG" width="175" height="226" />Once again, the need to load test your Facebook application before deployment has been proven out in the wild. Another company has seen their application crash and burn under a load that it either wasn&#8217;t expecting, or unable to deal with. The interesting part of this story, which seems to get told over and over, is the company that was the victim of the crash and the source of the load.</p>
<p>In this case, the application was Facebook&#8217;s newly released <a href="http://stories.facebook.com/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/stories.facebook.com/?referer=');">Facebook Stories </a>application. This application allows users to tell the story about how they got onto Facebook and how it changed their life. The application became overwhelmed and eventually crashed due to the load placed on it by &#8230;</p>
<p>&#8230; rabid Justin Bieber fans</p>
<p>That&#8217;s right, I just wrote the most unlikely string of words that can show up in a blog about technology. The crash was reported by Justin himself, ironically on Twitter.</p>
<p><img class="aligncenter size-full wp-image-448" title="justin-bieber-tweet" src="http://www.testfacebook.com/blog/wp-content/uploads/2010/07/justin-bieber-tweet.jpg" alt="justin-bieber-tweet" width="400" height="276" /></p>
<p> Kids, don&#8217;t let this happen to your application. Before deployment, load test it with a tool like <a href="http://www.friendrunner.com/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.friendrunner.com/?referer=');">FriendRunner</a>.</p>
<h2><span style="color: #ff0000;">Update</span></h2>
<p>Ahhh geez! Okay, this will teach me to trust Justin Bieber. <a href="http://www.allfacebook.com/2010/07/justin-bieber-facebook-page/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.allfacebook.com/2010/07/justin-bieber-facebook-page/?referer=');">All Facebook </a>is now reporting that the rabid Justin Bieber fans never crashed the Facebook Stories app. Instead, he was asked to remove the tab for the application from his page because he was using it to solicit stories about himself instead of using it for the purpose it was intended for (How has Facebook changed <strong>your</strong> life?).</p>
<p>Okay, I was fooled, but the original story did have a believable provenance. I originally heard it from Randi Zuckerberg, who after all is the sister of &#8230;. She got it from All Facebook, which is a reliable source of great FB information.</p>
<p>I apologize to you dear reader, and will now make the commitment that this blog will never <strong>ever </strong>disseminate any more news about Justin Bieber, regardless of what it is or where it comes from.</p>
<p class="getsocial" style="text-align:left;"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1002.png" alt="" /><a title="Add to Facebook" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http://www.testfacebook.com/2010/07/22/load-test-your-facebook-application" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/sharer.php?u=http_//www.testfacebook.com/2010/07/22/load-test-your-facebook-application&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1012.png" alt="Add to Facebook" /></a><a title="Add to Digg" rel="nofollow" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F22%2Fload-test-your-facebook-application&amp;title=Load%20Test%20your%20Facebook%20Application!!" target="_blank" onclick="pageTracker._trackPageview('/outgoing/digg.com/submit?phase=2_amp_url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F22_2Fload-test-your-facebook-application_amp_title=Load_20Test_20your_20Facebook_20Application&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1022.png" alt="Add to Digg" /></a><a title="Add to Del.icio.us" rel="nofollow" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F22%2Fload-test-your-facebook-application&amp;title=Load%20Test%20your%20Facebook%20Application!!" target="_blank" onclick="pageTracker._trackPageview('/outgoing/del.icio.us/post?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F22_2Fload-test-your-facebook-application_amp_title=Load_20Test_20your_20Facebook_20Application&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1032.png" alt="Add to Del.icio.us" /></a><a title="Add to Stumbleupon" rel="nofollow" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F22%2Fload-test-your-facebook-application&amp;title=Load%20Test%20your%20Facebook%20Application!!" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.stumbleupon.com/submit?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F22_2Fload-test-your-facebook-application_amp_title=Load_20Test_20your_20Facebook_20Application&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1042.png" alt="Add to Stumbleupon" /></a><a title="Add to Reddit" rel="nofollow" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F22%2Fload-test-your-facebook-application&amp;title=Load%20Test%20your%20Facebook%20Application!!" target="_blank" onclick="pageTracker._trackPageview('/outgoing/reddit.com/submit?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F22_2Fload-test-your-facebook-application_amp_title=Load_20Test_20your_20Facebook_20Application&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1052.png" alt="Add to Reddit" /></a><a title="Add to Blinklist" rel="nofollow" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Description=&amp;Url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F22%2Fload-test-your-facebook-application&amp;Title=Load%20Test%20your%20Facebook%20Application!!" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.blinklist.com/index.php?Action=Blink/addblink.php_amp_Description=_amp_Url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F22_2Fload-test-your-facebook-application_amp_Title=Load_20Test_20your_20Facebook_20Application&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1062.png" alt="Add to Blinklist" /></a><a title="Add to Twitter" rel="nofollow" href="http://twitter.com/home/?status=Load%20Test%20your%20Facebook%20Application!!+%40+http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F22%2Fload-test-your-facebook-application" target="_blank" onclick="pageTracker._trackPageview('/outgoing/twitter.com/home/?status=Load_20Test_20your_20Facebook_20Application_+_40+http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F22_2Fload-test-your-facebook-application&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1072.png" alt="Add to Twitter" /></a><a title="Add to Technorati" rel="nofollow" href="http://www.technorati.com/faves?add=http://www.testfacebook.com/2010/07/22/load-test-your-facebook-application" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.technorati.com/faves?add=http_//www.testfacebook.com/2010/07/22/load-test-your-facebook-application&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1082.png" alt="Add to Technorati" /></a><a title="Add to Yahoo Buzz" rel="nofollow" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F22%2Fload-test-your-facebook-application&amp;headline=Load%20Test%20your%20Facebook%20Application!!" target="_blank" onclick="pageTracker._trackPageview('/outgoing/buzz.yahoo.com/buzz?targetUrl=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F22_2Fload-test-your-facebook-application_amp_headline=Load_20Test_20your_20Facebook_20Application&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1092.png" alt="Add to Yahoo Buzz" /></a><a title="Add to Newsvine" rel="nofollow" href="http://www.newsvine.com/_wine/save?u=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F22%2Fload-test-your-facebook-application&amp;h=Load%20Test%20your%20Facebook%20Application!!" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.newsvine.com/_wine/save?u=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F22_2Fload-test-your-facebook-application_amp_h=Load_20Test_20your_20Facebook_20Application&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1102.png" alt="Add to Newsvine" /></a><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1112.png" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.testfacebook.com/2010/07/22/load-test-your-facebook-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Arrested for load testing your Facebook app??</title>
		<link>http://www.testfacebook.com/2010/05/12/arrested-for-load-testing-your-facebook-app/</link>
		<comments>http://www.testfacebook.com/2010/05/12/arrested-for-load-testing-your-facebook-app/#comments</comments>
		<pubDate>Wed, 12 May 2010 20:52:48 +0000</pubDate>
		<dc:creator>Sander Smith</dc:creator>
				<category><![CDATA[Load Testing]]></category>
		<category><![CDATA[Facebook]]></category>

		<guid isPermaLink="false">http://www.testfacebook.com/?p=289</guid>
		<description><![CDATA[Yes, it sounds crazy that you could get arrested for load testing a Facebook application, but that&#8217;s the implication for what&#8217;s been reported on All Facebook.
All Facebook reports that Power Ventures, creator of the social network aggregator Power.com is being sued by Facebook for violating their Terms Of Service. Power.com allows users to log into [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-291" title="bill-gates-arrested-mugshot1" src="http://www.testfacebook.com/blog/wp-content/uploads/2010/05/bill-gates-arrested-mugshot1.jpg" alt="bill-gates-arrested-mugshot1" width="142" height="250" />Yes, it sounds crazy that you could get arrested for load testing a Facebook application, but that&#8217;s the implication for what&#8217;s been reported on <a href="http://www.allfacebook.com/2010/05/auto-logging-into-facebook-could-get-you-arrested/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.allfacebook.com/2010/05/auto-logging-into-facebook-could-get-you-arrested/?referer=');">All Facebook</a>.</p>
<p>All Facebook reports that Power Ventures, creator of the social network aggregator <a href="http://power.com" target="_blank" onclick="pageTracker._trackPageview('/outgoing/power.com?referer=');">Power.com</a> is being sued by Facebook for violating their Terms Of Service. Power.com allows users to log into multiple social networking sites simultaneously &#8211; you log into their service and they log into the sites automatically. The problem is that Facebook has a very clear prohibition in their TOS against accessing their service by automated means, which is exactly what Power.com is doing. How Facebook sees this as a <a href="http://www.mi2n.com/press.php3?press_nb=130050" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.mi2n.com/press.php3?press_nb=130050&amp;referer=');">criminal act </a>seems kind of crazy, but that&#8217;s exactly what&#8217;s happening.</p>
<p>So what does this have to do with load testing? Everything! The Facebook TOS (as well as a few other technical hurdles) prevent you from hooking a standard load testing tool up to Facebook to load test your newly created Facebook app. Kids, don&#8217;t try this at home, lest you get arrested. Better stick with a dedicated tool like <a href="http://www.friendrunner.com" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.friendrunner.com?referer=');">FriendRunner </a>that allows you to load test your Facebook app outside of the Facebook infrastructure.</p>
<p class="getsocial" style="text-align:left;"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1002.png" alt="" /><a title="Add to Facebook" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http://www.testfacebook.com/2010/05/12/arrested-for-load-testing-your-facebook-app" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/sharer.php?u=http_//www.testfacebook.com/2010/05/12/arrested-for-load-testing-your-facebook-app&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1012.png" alt="Add to Facebook" /></a><a title="Add to Digg" rel="nofollow" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F12%2Farrested-for-load-testing-your-facebook-app&amp;title=Arrested%20for%20load%20testing%20your%20Facebook%20app%3F%3F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/digg.com/submit?phase=2_amp_url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F12_2Farrested-for-load-testing-your-facebook-app_amp_title=Arrested_20for_20load_20testing_20your_20Facebook_20app_3F_3F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1022.png" alt="Add to Digg" /></a><a title="Add to Del.icio.us" rel="nofollow" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F12%2Farrested-for-load-testing-your-facebook-app&amp;title=Arrested%20for%20load%20testing%20your%20Facebook%20app%3F%3F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/del.icio.us/post?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F12_2Farrested-for-load-testing-your-facebook-app_amp_title=Arrested_20for_20load_20testing_20your_20Facebook_20app_3F_3F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1032.png" alt="Add to Del.icio.us" /></a><a title="Add to Stumbleupon" rel="nofollow" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F12%2Farrested-for-load-testing-your-facebook-app&amp;title=Arrested%20for%20load%20testing%20your%20Facebook%20app%3F%3F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.stumbleupon.com/submit?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F12_2Farrested-for-load-testing-your-facebook-app_amp_title=Arrested_20for_20load_20testing_20your_20Facebook_20app_3F_3F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1042.png" alt="Add to Stumbleupon" /></a><a title="Add to Reddit" rel="nofollow" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F12%2Farrested-for-load-testing-your-facebook-app&amp;title=Arrested%20for%20load%20testing%20your%20Facebook%20app%3F%3F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/reddit.com/submit?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F12_2Farrested-for-load-testing-your-facebook-app_amp_title=Arrested_20for_20load_20testing_20your_20Facebook_20app_3F_3F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1052.png" alt="Add to Reddit" /></a><a title="Add to Blinklist" rel="nofollow" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Description=&amp;Url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F12%2Farrested-for-load-testing-your-facebook-app&amp;Title=Arrested%20for%20load%20testing%20your%20Facebook%20app%3F%3F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.blinklist.com/index.php?Action=Blink/addblink.php_amp_Description=_amp_Url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F12_2Farrested-for-load-testing-your-facebook-app_amp_Title=Arrested_20for_20load_20testing_20your_20Facebook_20app_3F_3F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1062.png" alt="Add to Blinklist" /></a><a title="Add to Twitter" rel="nofollow" href="http://twitter.com/home/?status=Arrested%20for%20load%20testing%20your%20Facebook%20app%3F%3F+%40+http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F12%2Farrested-for-load-testing-your-facebook-app" target="_blank" onclick="pageTracker._trackPageview('/outgoing/twitter.com/home/?status=Arrested_20for_20load_20testing_20your_20Facebook_20app_3F_3F+_40+http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F12_2Farrested-for-load-testing-your-facebook-app&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1072.png" alt="Add to Twitter" /></a><a title="Add to Technorati" rel="nofollow" href="http://www.technorati.com/faves?add=http://www.testfacebook.com/2010/05/12/arrested-for-load-testing-your-facebook-app" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.technorati.com/faves?add=http_//www.testfacebook.com/2010/05/12/arrested-for-load-testing-your-facebook-app&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1082.png" alt="Add to Technorati" /></a><a title="Add to Yahoo Buzz" rel="nofollow" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F12%2Farrested-for-load-testing-your-facebook-app&amp;headline=Arrested%20for%20load%20testing%20your%20Facebook%20app%3F%3F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/buzz.yahoo.com/buzz?targetUrl=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F12_2Farrested-for-load-testing-your-facebook-app_amp_headline=Arrested_20for_20load_20testing_20your_20Facebook_20app_3F_3F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1092.png" alt="Add to Yahoo Buzz" /></a><a title="Add to Newsvine" rel="nofollow" href="http://www.newsvine.com/_wine/save?u=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F12%2Farrested-for-load-testing-your-facebook-app&amp;h=Arrested%20for%20load%20testing%20your%20Facebook%20app%3F%3F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.newsvine.com/_wine/save?u=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F12_2Farrested-for-load-testing-your-facebook-app_amp_h=Arrested_20for_20load_20testing_20your_20Facebook_20app_3F_3F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1102.png" alt="Add to Newsvine" /></a><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1112.png" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.testfacebook.com/2010/05/12/arrested-for-load-testing-your-facebook-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Facebook Testing: Which metric is important?</title>
		<link>http://www.testfacebook.com/2010/05/08/facebook-testing-metrics/</link>
		<comments>http://www.testfacebook.com/2010/05/08/facebook-testing-metrics/#comments</comments>
		<pubDate>Sun, 09 May 2010 02:20:31 +0000</pubDate>
		<dc:creator>Sander Smith</dc:creator>
				<category><![CDATA[General Testing]]></category>
		<category><![CDATA[Load Testing]]></category>
		<category><![CDATA[Facebook application]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://www.testfacebook.com/?p=231</guid>
		<description><![CDATA[Many people ask us which metric is best to use when performing a load test of a Facebook application. Common wisdom says that Page Load Time (PLT) works for web applications: it&#8217;s easy to calculate, seemingly applicable, and everyone understands what it means. However, it isn&#8217;t so useful in the Facebook world since it contains so much extraneous [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-276" title="fbmetrics" src="http://www.testfacebook.com/blog/wp-content/uploads/2010/05/fbmetrics.jpg" alt="fbmetrics" width="189" height="144" />Many people ask us which metric is best to use when performing a load test of a Facebook application. Common wisdom says that Page Load Time (PLT) works for web applications: it&#8217;s easy to calculate, seemingly applicable, and everyone understands what it means. However, it isn&#8217;t so useful in the Facebook world since it contains so much extraneous information that makes it hard to analyze anything with it.</p>
<h3>Facebook Canvas applications</h3>
<p>To understand why PLT is a bad idea for Canvas applications,  we must go back and understand the Canvas architecture. Users interact with Canvas applications by using a browser connected to the Facebook server which acts as a middleman and requests data from the app. The app may call APIs that interact with the Facebook server, and then ultimately return an FBML file to Facebook which renders it into HTML for return to the users bowser. The problem is that if we only look at PLT by measuring response time at the browser, we have all of this extra stuff being counted in the timing:</p>
<p><img class="aligncenter size-full wp-image-263" title="CanvasApps" src="http://www.testfacebook.com/blog/wp-content/uploads/2010/05/CanvasApps2.jpg" alt="CanvasApps" width="480" height="136" /></p>
<ul>
<li>Network latency between the browser and Facebook</li>
<li>Time required by Facebook to figure out which application must be called, authenticating the request, etc.</li>
<li>Time to render the FBML into HTML</li>
<li>Time spent at the Facebook server servicing API calls</li>
</ul>
<p>These &#8220;extraneous&#8221; functions will take an unpredictable amount of time depending on, among other things, the current load at the Facebook server. This will make it hard, if not impossible, to positively correlate the timings of two different test runs. Since one of the prime motivators of load testing is to see the effects of changes to the code on performance, metrics like these will ultimatly prove to be of little use.</p>
<h3>Facebook Connect applications</h3>
<p>Using PLT for Facebook Connect applications is a little bit better. Users interact with Facebook Connect applications directly, and do not need the Facebook server to act as the middleman. The only extraneous functionality being counted in the timing is the time spent at the Facebook Server responding to API calls. If there are many API calls being made, this will cause a bit of randomness in the metrics.</p>
<h3>Application Response Times</h3>
<p>In contrast to PLT, creating metrics based on the Application Response Time is much more meaningful and useful, although harder to calculate. Application Response Time should calculate the amount of time spent at the application <strong>and only</strong> the time spent at the application. Unfortunately, in contrast to PLT there&#8217;s no simple way to get the Application Response Time &#8211; you&#8217;ll need to do a little bit of work to get at it.</p>
<p>To calculate this, you&#8217;ll need to create a stopwatch function which starts when your application is called, and stops when the application completes the request and returns an FBML file to the caller. In between, the stopwatch needs to be paused when a Facebook API is called. Finally, those of you using PHP as your development platform should check out the microtime() function as it&#8217;s much more accurate than the standard time() function. If your application is able to keep up with all of the bookkeeping, you&#8217;ll have metrics that can accurately show you the effects on application performance from any changes you make.</p>
<p>For those of you who don&#8217;t want to be bothered with keeping track of all of these timing calculations, please note that <a href="http://www.friendrunner.com" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.friendrunner.com?referer=');">FriendRunner </a>does all of this for you automatically.</p>
<p class="getsocial" style="text-align:left;"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1001.png" alt="" /><a title="Add to Facebook" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http://www.testfacebook.com/2010/05/08/facebook-testing-metrics" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/sharer.php?u=http_//www.testfacebook.com/2010/05/08/facebook-testing-metrics&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1011.png" alt="Add to Facebook" /></a><a title="Add to Digg" rel="nofollow" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F08%2Ffacebook-testing-metrics&amp;title=Facebook%20Testing%3A%20Which%20metric%20is%20important%3F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/digg.com/submit?phase=2_amp_url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F08_2Ffacebook-testing-metrics_amp_title=Facebook_20Testing_3A_20Which_20metric_20is_20important_3F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1021.png" alt="Add to Digg" /></a><a title="Add to Del.icio.us" rel="nofollow" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F08%2Ffacebook-testing-metrics&amp;title=Facebook%20Testing%3A%20Which%20metric%20is%20important%3F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/del.icio.us/post?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F08_2Ffacebook-testing-metrics_amp_title=Facebook_20Testing_3A_20Which_20metric_20is_20important_3F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1031.png" alt="Add to Del.icio.us" /></a><a title="Add to Stumbleupon" rel="nofollow" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F08%2Ffacebook-testing-metrics&amp;title=Facebook%20Testing%3A%20Which%20metric%20is%20important%3F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.stumbleupon.com/submit?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F08_2Ffacebook-testing-metrics_amp_title=Facebook_20Testing_3A_20Which_20metric_20is_20important_3F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1041.png" alt="Add to Stumbleupon" /></a><a title="Add to Reddit" rel="nofollow" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F08%2Ffacebook-testing-metrics&amp;title=Facebook%20Testing%3A%20Which%20metric%20is%20important%3F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/reddit.com/submit?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F08_2Ffacebook-testing-metrics_amp_title=Facebook_20Testing_3A_20Which_20metric_20is_20important_3F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1051.png" alt="Add to Reddit" /></a><a title="Add to Blinklist" rel="nofollow" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Description=&amp;Url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F08%2Ffacebook-testing-metrics&amp;Title=Facebook%20Testing%3A%20Which%20metric%20is%20important%3F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.blinklist.com/index.php?Action=Blink/addblink.php_amp_Description=_amp_Url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F08_2Ffacebook-testing-metrics_amp_Title=Facebook_20Testing_3A_20Which_20metric_20is_20important_3F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1061.png" alt="Add to Blinklist" /></a><a title="Add to Twitter" rel="nofollow" href="http://twitter.com/home/?status=Facebook%20Testing%3A%20Which%20metric%20is%20important%3F+%40+http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F08%2Ffacebook-testing-metrics" target="_blank" onclick="pageTracker._trackPageview('/outgoing/twitter.com/home/?status=Facebook_20Testing_3A_20Which_20metric_20is_20important_3F+_40+http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F08_2Ffacebook-testing-metrics&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1071.png" alt="Add to Twitter" /></a><a title="Add to Technorati" rel="nofollow" href="http://www.technorati.com/faves?add=http://www.testfacebook.com/2010/05/08/facebook-testing-metrics" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.technorati.com/faves?add=http_//www.testfacebook.com/2010/05/08/facebook-testing-metrics&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1081.png" alt="Add to Technorati" /></a><a title="Add to Yahoo Buzz" rel="nofollow" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F08%2Ffacebook-testing-metrics&amp;headline=Facebook%20Testing%3A%20Which%20metric%20is%20important%3F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/buzz.yahoo.com/buzz?targetUrl=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F08_2Ffacebook-testing-metrics_amp_headline=Facebook_20Testing_3A_20Which_20metric_20is_20important_3F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1091.png" alt="Add to Yahoo Buzz" /></a><a title="Add to Newsvine" rel="nofollow" href="http://www.newsvine.com/_wine/save?u=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F08%2Ffacebook-testing-metrics&amp;h=Facebook%20Testing%3A%20Which%20metric%20is%20important%3F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.newsvine.com/_wine/save?u=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F08_2Ffacebook-testing-metrics_amp_h=Facebook_20Testing_3A_20Which_20metric_20is_20important_3F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1101.png" alt="Add to Newsvine" /></a><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1111.png" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.testfacebook.com/2010/05/08/facebook-testing-metrics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Load testing Facebook apps (Part 2)</title>
		<link>http://www.testfacebook.com/2009/11/10/load-testing-facebook-apps-part-2/</link>
		<comments>http://www.testfacebook.com/2009/11/10/load-testing-facebook-apps-part-2/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 15:39:13 +0000</pubDate>
		<dc:creator>Sander Smith</dc:creator>
				<category><![CDATA[Load Testing]]></category>
		<category><![CDATA[Facebook application]]></category>

		<guid isPermaLink="false">http://www.testfacebook.com/?p=15</guid>
		<description><![CDATA[In Part 1 of this article, we discussed that one of the reasons load testing Facebook apps was difficult was because Facebook prohibits the use of automated tools. An obvious question is &#8220;Why does Facebook do this?&#8221;.
The simple answer: It protects you, the developer
Think for a moment what would happen if Facebook did not prohibit the use of automated [...]]]></description>
			<content:encoded><![CDATA[<p>In <a href="http://www.testfacebook.com/2009/11/01/load-testing-facebook-apps-part-1/" target="_blank">Part 1 of this article</a>, we discussed that one of the reasons load testing Facebook apps was difficult was because Facebook prohibits the use of automated tools. An obvious question is &#8220;Why does Facebook do this?&#8221;.</p>
<h3>The simple answer: It protects you, the developer</h3>
<p>Think for a moment what would happen if Facebook did not prohibit the use of automated tools to access their servers. Well for one, we&#8217;d be able to easily carry out load tests of our applications. This is good and builds value for your application as well as indirectly building value for the entire Facebook Platform.</p>
<p>However, it also opens up a world of possibilities to the vast armies of hackers and spammers who&#8217;d use this to their advantage. What could they do? Let&#8217;s think:</p>
<ul>
<li>They could launch Denial-of-Service attacks and crash your servers. Does your application have competition? Would your competition benefit if your (obviously superior) app was seen as unstable? Let the attacks begin!</li>
<li>Mischief. Facebook is now viewed as a prime target for all sorts of miscreants. Hardly a week goes by that we don&#8217;t hear about another type of attack launched at Facebook users, applications, or Facebook itself. Of course the methods by which most attacks are typically launched is by the use of automation.</li>
<li>Building up your own numbers. Actually not really attack &#8211; you could use a botnet to artificially inflate your own active user numbers. MAUs are used for a variety of reasons (which all ultimately relate to money). If MAU counts also included MAARs (Monthly Active Automated Robots), then all counts become meaningless. the entire system unwinds, and everyone loses.</li>
</ul>
<p>So let&#8217;s say that as a good developer you&#8217;d like to protect your application against a Denial-of-Service attack. You install an Intrusion Detection System, but wait - this won&#8217;t work in a Facebook environment! Remember that the Facebook Platform architecture is built so that all of the user traffic coming into your application is funneled through one place &#8211; the Facebook servers. Any attempts you make to try to distinguish good access from bad access will be foiled by the fact that the bad guys are on the other side of the Facebook servers from you. Your app has no way to distinguish good users from botnet users, it must rely on Facebook to do it for you. This simply pushes the detection of good vs. bad access out to the Facebook servers, so we can ask: &#8220;How can Facebook detect a DOS attack on my app?&#8221;</p>
<p>Facebook avoids Denial-of-Service attacks by using the same techniques as any other web site. This, of course, will preclude you from running an automated load test since it will simply look like a very basic (not even distributed) Denial-of-Service attack. Instead of trying to distinguish the good load tests from the bad attacks, Facebook simply says &#8220;Do not access our servers with automated tools or we&#8217;ll cut you off&#8221;. They aren&#8217;t trying to stifle our ability to get things done, but rather, they&#8217;re protecting us from a whole lot of other pain.</p>
<p>In the next part of this article, we&#8217;ll discuss some ideas that can be used to load test your Facebook app.</p>
<p class="getsocial" style="text-align:left;"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1005.png" alt="" /><a title="Add to Facebook" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http://www.testfacebook.com/2009/11/10/load-testing-facebook-apps-part-2" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/sharer.php?u=http_//www.testfacebook.com/2009/11/10/load-testing-facebook-apps-part-2&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1015.png" alt="Add to Facebook" /></a><a title="Add to Digg" rel="nofollow" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.testfacebook.com%2F2009%2F11%2F10%2Fload-testing-facebook-apps-part-2&amp;title=Load%20testing%20Facebook%20apps%20(Part%202)" target="_blank" onclick="pageTracker._trackPageview('/outgoing/digg.com/submit?phase=2_amp_url=http_3A_2F_2Fwww.testfacebook.com_2F2009_2F11_2F10_2Fload-testing-facebook-apps-part-2_amp_title=Load_20testing_20Facebook_20apps_20_Part_202&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1025.png" alt="Add to Digg" /></a><a title="Add to Del.icio.us" rel="nofollow" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.testfacebook.com%2F2009%2F11%2F10%2Fload-testing-facebook-apps-part-2&amp;title=Load%20testing%20Facebook%20apps%20(Part%202)" target="_blank" onclick="pageTracker._trackPageview('/outgoing/del.icio.us/post?url=http_3A_2F_2Fwww.testfacebook.com_2F2009_2F11_2F10_2Fload-testing-facebook-apps-part-2_amp_title=Load_20testing_20Facebook_20apps_20_Part_202&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1035.png" alt="Add to Del.icio.us" /></a><a title="Add to Stumbleupon" rel="nofollow" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.testfacebook.com%2F2009%2F11%2F10%2Fload-testing-facebook-apps-part-2&amp;title=Load%20testing%20Facebook%20apps%20(Part%202)" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.stumbleupon.com/submit?url=http_3A_2F_2Fwww.testfacebook.com_2F2009_2F11_2F10_2Fload-testing-facebook-apps-part-2_amp_title=Load_20testing_20Facebook_20apps_20_Part_202&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1045.png" alt="Add to Stumbleupon" /></a><a title="Add to Reddit" rel="nofollow" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.testfacebook.com%2F2009%2F11%2F10%2Fload-testing-facebook-apps-part-2&amp;title=Load%20testing%20Facebook%20apps%20(Part%202)" target="_blank" onclick="pageTracker._trackPageview('/outgoing/reddit.com/submit?url=http_3A_2F_2Fwww.testfacebook.com_2F2009_2F11_2F10_2Fload-testing-facebook-apps-part-2_amp_title=Load_20testing_20Facebook_20apps_20_Part_202&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1055.png" alt="Add to Reddit" /></a><a title="Add to Blinklist" rel="nofollow" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Description=&amp;Url=http%3A%2F%2Fwww.testfacebook.com%2F2009%2F11%2F10%2Fload-testing-facebook-apps-part-2&amp;Title=Load%20testing%20Facebook%20apps%20(Part%202)" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.blinklist.com/index.php?Action=Blink/addblink.php_amp_Description=_amp_Url=http_3A_2F_2Fwww.testfacebook.com_2F2009_2F11_2F10_2Fload-testing-facebook-apps-part-2_amp_Title=Load_20testing_20Facebook_20apps_20_Part_202&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1065.png" alt="Add to Blinklist" /></a><a title="Add to Twitter" rel="nofollow" href="http://twitter.com/home/?status=Load%20testing%20Facebook%20apps%20(Part%202)+%40+http%3A%2F%2Fwww.testfacebook.com%2F2009%2F11%2F10%2Fload-testing-facebook-apps-part-2" target="_blank" onclick="pageTracker._trackPageview('/outgoing/twitter.com/home/?status=Load_20testing_20Facebook_20apps_20_Part_202_+_40+http_3A_2F_2Fwww.testfacebook.com_2F2009_2F11_2F10_2Fload-testing-facebook-apps-part-2&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1075.png" alt="Add to Twitter" /></a><a title="Add to Technorati" rel="nofollow" href="http://www.technorati.com/faves?add=http://www.testfacebook.com/2009/11/10/load-testing-facebook-apps-part-2" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.technorati.com/faves?add=http_//www.testfacebook.com/2009/11/10/load-testing-facebook-apps-part-2&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1085.png" alt="Add to Technorati" /></a><a title="Add to Yahoo Buzz" rel="nofollow" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.testfacebook.com%2F2009%2F11%2F10%2Fload-testing-facebook-apps-part-2&amp;headline=Load%20testing%20Facebook%20apps%20(Part%202)" target="_blank" onclick="pageTracker._trackPageview('/outgoing/buzz.yahoo.com/buzz?targetUrl=http_3A_2F_2Fwww.testfacebook.com_2F2009_2F11_2F10_2Fload-testing-facebook-apps-part-2_amp_headline=Load_20testing_20Facebook_20apps_20_Part_202&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1095.png" alt="Add to Yahoo Buzz" /></a><a title="Add to Newsvine" rel="nofollow" href="http://www.newsvine.com/_wine/save?u=http%3A%2F%2Fwww.testfacebook.com%2F2009%2F11%2F10%2Fload-testing-facebook-apps-part-2&amp;h=Load%20testing%20Facebook%20apps%20(Part%202)" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.newsvine.com/_wine/save?u=http_3A_2F_2Fwww.testfacebook.com_2F2009_2F11_2F10_2Fload-testing-facebook-apps-part-2_amp_h=Load_20testing_20Facebook_20apps_20_Part_202&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1105.png" alt="Add to Newsvine" /></a><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1115.png" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.testfacebook.com/2009/11/10/load-testing-facebook-apps-part-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Load testing Facebook apps (Part 1)</title>
		<link>http://www.testfacebook.com/2009/11/01/load-testing-facebook-apps-part-1/</link>
		<comments>http://www.testfacebook.com/2009/11/01/load-testing-facebook-apps-part-1/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 02:52:55 +0000</pubDate>
		<dc:creator>Sander Smith</dc:creator>
				<category><![CDATA[Load Testing]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Facebook application]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://www.testfacebook.com/?p=13</guid>
		<description><![CDATA[
Load testing Facebook applications is really important. Usually the whole point of deploying onto Facebook is to leverage the social graph and go viral. Developers want their applications to go viral, but there&#8217;s a nagging concern about what will happen if they do. Is the app as scalable as you think? Are the hosting choices correct? What&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<div class="mceTemp mceIEcenter" style="text-align:left;">
<div id="attachment_34" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-34" title="ch861126" src="http://www.testfacebook.com/blog/wp-content/uploads/2009/11/ch8611262.gif" alt="Calvin's dad on load testing" width="500" height="158" /><p class="wp-caption-text">Calvin&#39;s dad on load testing</p></div>
<p style="text-align: left;">Load testing Facebook applications is really important. Usually the whole point of deploying onto Facebook is to leverage the social graph and go viral. Developers <em><strong>want</strong></em> their applications to go viral, but there&#8217;s a nagging concern about what will happen if they do. Is the app as scalable as you think? Are the hosting choices correct? What&#8217;s the cost of deploying and crashing?</p>
<p style="text-align: left;"><img class="aligncenter size-full wp-image-30" title="devdream" src="http://www.testfacebook.com/blog/wp-content/uploads/2009/11/devdream2.jpg" alt="devdream" width="500" height="314" /></p>
<p class="mceTemp mceIEcenter" style="text-align:left;">The way to alleviate these concerns is to load test your app, but how do you do that in a Facebook environment? The simple answer is that it&#8217;s very hard due to two issues central to Facebook:</p>
<h3>Issue1: You must control enough Facebook users</h3>
<p>Testing your application with one or two simultaneous users is easy: simply use your own Facebook account and call up some friends and have them do the same. But running a test with hundreds or even thousands of simultaneous users is much more difficult. Where do you get the users from? That answer isn&#8217;t so simple. You can say &#8220;I&#8217;ll just go into Facebook and define a few hundred &#8216;phony&#8217; people that I can control&#8221;. While this may seem like a good idea, it isn&#8217;t:</p>
<ul>
<li>It violates the Facebook <a href="http://www.facebook.com/terms.php?ref=pf" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/terms.php?ref=pf&amp;referer=');">Terms of Use </a>(section 4.1) which prohibits you from creating phony accounts. When Facebook finds your phony account, they will delete it.</li>
<li>Real users have friends, become fans of pages, post updates, and hundreds of other things that Facebook allows you to do. This creates the richness of the social graph, and applications often need to take these things into account. Unless you&#8217;re willing to spend an inordinate amount of time &#8220;humanizing&#8221; your phony user army, your tests with them will not be realistic.</li>
<li>While Facebook does provide the concept of a <a href="http://wiki.developers.facebook.com/index.php?title=Test_Accounts" target="_blank" onclick="pageTracker._trackPageview('/outgoing/wiki.developers.facebook.com/index.php?title=Test_Accounts&amp;referer=');">Test Account</a> to developers to test with, these accounts are very limited in what they can do so are not of very much use for load testing.</li>
</ul>
<h3>Issue 2: Load testing must be automated</h3>
<p>Load testing web applications is hard. Traditionally, to test an application you&#8217;d deploy it into a &#8220;staging area&#8221; and then simulate many people using it with a tool such as HP&#8217;s <a href="https://h10078.www1.hp.com/cda/hpms/display/main/hpms_content.jsp?zn=bto&amp;cp=1-11-126-17%5E8_4000_100__" target="_blank" onclick="pageTracker._trackPageview('/outgoing/h10078.www1.hp.com/cda/hpms/display/main/hpms_content.jsp?zn=bto_amp_cp=1-11-126-17_5E8_4000_100&amp;referer=');">LoadRunner</a> or a cloud-based solution such as <a href="http://browsermob.com/performance-testing" target="_blank" onclick="pageTracker._trackPageview('/outgoing/browsermob.com/performance-testing?referer=');">BrowserMob</a>.</p>
<p>Load testing by it&#8217;s very nature must be an automated process. But this is a problem since Facebook applications must be accessed through the Facebook servers (for API support, FBML-to-HTML rendering, etc.)</p>
<p> </p>
<div id="attachment_35" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-35" title="traditional load testing" src="http://www.testfacebook.com/blog/wp-content/uploads/2009/11/traditional-load-testing.jpg" alt="Load testing the traditional way" width="500" height="184" /><p class="wp-caption-text">Load testing the traditional way</p></div>
<p>This is a problem because it violates Facebook&#8217;s <a href="http://www.facebook.com/terms.php?ref=pf" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/terms.php?ref=pf&amp;referer=');">Terms of Use </a>(section 3.2) which prohibits the use of accessing the Facebook servers with automated tools. This will force us to rethink our Facebook application load testing strategy.</p>
<p>In Part 2 of article, we&#8217;ll discuss why Facebook has a prohibition against automated tools, and why that is ultimately good for you, the developer.</p>
<p class="getsocial" style="text-align:left;"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1002.png" alt="" /><a title="Add to Facebook" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http://www.testfacebook.com/2009/11/01/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/sharer.php?u=http_//www.testfacebook.com/2009/11/01/&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1012.png" alt="Add to Facebook" /></a><a title="Add to Digg" rel="nofollow" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.testfacebook.com%2F2009%2F11%2F01%2F&amp;title=Load%20testing%20Facebook%20apps%20(Part%201)" target="_blank" onclick="pageTracker._trackPageview('/outgoing/digg.com/submit?phase=2_amp_url=http_3A_2F_2Fwww.testfacebook.com_2F2009_2F11_2F01_2F_amp_title=Load_20testing_20Facebook_20apps_20_Part_201&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1022.png" alt="Add to Digg" /></a><a title="Add to Del.icio.us" rel="nofollow" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.testfacebook.com%2F2009%2F11%2F01%2F&amp;title=Load%20testing%20Facebook%20apps%20(Part%201)" target="_blank" onclick="pageTracker._trackPageview('/outgoing/del.icio.us/post?url=http_3A_2F_2Fwww.testfacebook.com_2F2009_2F11_2F01_2F_amp_title=Load_20testing_20Facebook_20apps_20_Part_201&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1032.png" alt="Add to Del.icio.us" /></a><a title="Add to Stumbleupon" rel="nofollow" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.testfacebook.com%2F2009%2F11%2F01%2F&amp;title=Load%20testing%20Facebook%20apps%20(Part%201)" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.stumbleupon.com/submit?url=http_3A_2F_2Fwww.testfacebook.com_2F2009_2F11_2F01_2F_amp_title=Load_20testing_20Facebook_20apps_20_Part_201&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1042.png" alt="Add to Stumbleupon" /></a><a title="Add to Reddit" rel="nofollow" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.testfacebook.com%2F2009%2F11%2F01%2F&amp;title=Load%20testing%20Facebook%20apps%20(Part%201)" target="_blank" onclick="pageTracker._trackPageview('/outgoing/reddit.com/submit?url=http_3A_2F_2Fwww.testfacebook.com_2F2009_2F11_2F01_2F_amp_title=Load_20testing_20Facebook_20apps_20_Part_201&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1052.png" alt="Add to Reddit" /></a><a title="Add to Blinklist" rel="nofollow" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Description=&amp;Url=http%3A%2F%2Fwww.testfacebook.com%2F2009%2F11%2F01%2F&amp;Title=Load%20testing%20Facebook%20apps%20(Part%201)" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.blinklist.com/index.php?Action=Blink/addblink.php_amp_Description=_amp_Url=http_3A_2F_2Fwww.testfacebook.com_2F2009_2F11_2F01_2F_amp_Title=Load_20testing_20Facebook_20apps_20_Part_201&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1062.png" alt="Add to Blinklist" /></a><a title="Add to Twitter" rel="nofollow" href="http://twitter.com/home/?status=Load%20testing%20Facebook%20apps%20(Part%201)+%40+http%3A%2F%2Fwww.testfacebook.com%2F2009%2F11%2F01%2F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/twitter.com/home/?status=Load_20testing_20Facebook_20apps_20_Part_201_+_40+http_3A_2F_2Fwww.testfacebook.com_2F2009_2F11_2F01_2F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1072.png" alt="Add to Twitter" /></a><a title="Add to Technorati" rel="nofollow" href="http://www.technorati.com/faves?add=http://www.testfacebook.com/2009/11/01/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.technorati.com/faves?add=http_//www.testfacebook.com/2009/11/01/&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1082.png" alt="Add to Technorati" /></a><a title="Add to Yahoo Buzz" rel="nofollow" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.testfacebook.com%2F2009%2F11%2F01%2F&amp;headline=Load%20testing%20Facebook%20apps%20(Part%201)" target="_blank" onclick="pageTracker._trackPageview('/outgoing/buzz.yahoo.com/buzz?targetUrl=http_3A_2F_2Fwww.testfacebook.com_2F2009_2F11_2F01_2F_amp_headline=Load_20testing_20Facebook_20apps_20_Part_201&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1092.png" alt="Add to Yahoo Buzz" /></a><a title="Add to Newsvine" rel="nofollow" href="http://www.newsvine.com/_wine/save?u=http%3A%2F%2Fwww.testfacebook.com%2F2009%2F11%2F01%2F&amp;h=Load%20testing%20Facebook%20apps%20(Part%201)" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.newsvine.com/_wine/save?u=http_3A_2F_2Fwww.testfacebook.com_2F2009_2F11_2F01_2F_amp_h=Load_20testing_20Facebook_20apps_20_Part_201&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1102.png" alt="Add to Newsvine" /></a><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1112.png" alt="" /></p>
<p> </p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.testfacebook.com/2009/11/01/load-testing-facebook-apps-part-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
