<?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>我想网 &#187; Test</title>
	<atom:link href="http://www.iwanna.cn/topics/develope/test/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.iwanna.cn</link>
	<description></description>
	<lastBuildDate>Sat, 31 Jul 2010 15:12:14 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>10个分析、测试网站加载速度的工具</title>
		<link>http://www.iwanna.cn/archives/2010/07/24/4697/</link>
		<comments>http://www.iwanna.cn/archives/2010/07/24/4697/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 16:12:16 +0000</pubDate>
		<dc:creator>seasun</dc:creator>
				<category><![CDATA[Test]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Translate]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[站长工具]]></category>
		<category><![CDATA[analysis]]></category>
		<category><![CDATA[Optimize]]></category>
		<category><![CDATA[翻译]]></category>

		<guid isPermaLink="false">http://www.iwanna.cn/?p=4697</guid>
		<description><![CDATA[自Google宣布页面的加载速度会影响PageRank算法以来，虽然大概只占1%，想尽方法来优化您的网站或者博客依然是非常好的选择。
以下10个免费的工具是可以为您测试网站速度并因此而提供各种建议，从中您会找到您的网站速度比较慢的原因并采取措施如果去提升性能。
1.  Page Speed

Google 的 Page Speed 是一款开源的，基于Firefox浏览器外接附件，您可以用它来测试当前的网页并获取信息如何来提升页面加载速度。
在使用Page Speed前，您还需要添加Firefox的另一款外接附件Firebug。
访问 Page Speed

2.  Yahoo! YSlow

Yahoo! YSlow也是一款基于Firefox/Firebug的外接附件，也可以拿来测试网站速度及相关提升网页性能意见建议。
通常而言，如果您的页面速度(Page Speed)得分很高，相对的，您的YSlow等级也会很高，反之亦然。
访问 Yahoo! YSlow
3.  GTmetrix

GTmetrix 会提供给您一份来自Google Page Speed及Yahoo!  YSlow的测试结果报告，当然也会提供给您一些如果提升网站速度的建议。
GTmetrix可能会跟Page Speed 或 YSlow的测试结果略有不同，但您可以同时针对4个站点做一个测试及比较。
访问  GTmetrix
4. Pingdom Tools

Pingdom Tools帮助您测试页面的加载时间。
您可以观察页面中所有元素的加载时间，查找到瓶颈所在。
访问 Pingdom Tools
5. Web  Page Analyzer

Web Page Analyzer将会预估页面的大小、您输入的URL页面组织和下载时间，当然也会提供如何改良页面加载时间的意见。
访问 Web  Page Analyzer
6. WebPagetest

通过使用WebPagetest，您可以测试一个网站并获取相关的建议；或者您也可以测试多个站点，并比较它们之间的差异。
在测试一个网站时，您还可以选择测试的地点，挑选IE浏览器或所连接的版本，保存测试结果为私有的等等。
访问 WebPagetest
7.  Webmaster Tools

登录您的 Webmaster Tools帐户，打开网站性能实验室的页面，然后您就会看到您网站加载时间的一张图表，当然您也可以获取如何使站点加载速度更快的一些建议。
访问 Webmaster Tools
8.  [...]]]></description>
			<content:encoded><![CDATA[<p>自Google宣布页面的加载速度会影响PageRank算法以来，虽然大概只占1%，想尽方法来优化您的网站或者博客依然是非常好的选择。</p>
<p>以下<strong><a href="http://www.iwanna.cn/archives/2010/07/23/4697/" title="10个分析、测试网站加载速度的工具">10个免费的工具是可以为您测试网站速度</a></strong>并因此而提供各种建议，从中您会找到您的网站速度比较慢的原因并采取措施如果去提升性能。</p>
<h2>1.  Page Speed</h2>
<p><a href="http://www.iwanna.cn/archives/2010/07/23/4697/" title="10个分析、测试网站加载速度的工具" target="_blank"><img title="page-speed" src="http://images.uheed.com/iwanna/2010/07/23/test-website-speed/page-speed.gif" alt="Test Website Speed" width="530" height="297" /></a></p>
<p>Google 的 Page Speed 是一款开源的，基于Firefox浏览器外接附件，您可以用它来测试当前的网页并获取信息如何来提升页面加载速度。</p>
<p>在使用Page Speed前，您还需要添加Firefox的另一款外接附件Firebug。</p>
<p><a href="http://code.google.com/p/page-speed/">访问 Page Speed</a><br />
<span id="more-4697"></span></p>
<h2>2.  Yahoo! YSlow</h2>
<p><a href="http://www.iwanna.cn/" title="我想网" target="_blank"><img title="yslow" src="http://images.uheed.com/iwanna/2010/07/23/test-website-speed/yslow.jpg" alt="Test Website Speed" width="530" height="332" /></a></p>
<p>Yahoo! YSlow也是一款基于Firefox/Firebug的外接附件，也可以拿来测试网站速度及相关提升网页性能意见建议。</p>
<p>通常而言，如果您的页面速度(Page Speed)得分很高，相对的，您的YSlow等级也会很高，反之亦然。</p>
<p><a href="http://developer.yahoo.com/yslow/">访问 Yahoo! YSlow</a></p>
<h2>3.  GTmetrix</h2>
<p><a href="http://www.iwanna.cn/" title="我想网" target="_blank"><img title="GTmetrix" src="http://images.uheed.com/iwanna/2010/07/23/test-website-speed/GTmetrix.jpg" alt="Test Website Speed" width="530" height="325" /></p>
<p>GTmetrix 会提供给您一份来自Google Page Speed及Yahoo!  YSlow的测试结果报告，当然也会提供给您一些如果提升网站速度的建议。</p>
<p>GTmetrix可能会跟Page Speed 或 YSlow的测试结果略有不同，但您可以同时针对4个站点做一个测试及比较。</p>
<p><a href="http://gtmetrix.com/">访问  GTmetrix</a></p>
<h2>4. Pingdom Tools</h2>
<p><a href="http://www.iwanna.cn/" title="我想网" target="_blank"><img title="Pingdom-Tools" src="http://images.uheed.com/iwanna/2010/07/23/test-website-speed/Pingdom-Tools.jpg" alt="Test Website  Speed" width="530" height="295" /></p>
<p>Pingdom Tools帮助您测试页面的加载时间。</p>
<p>您可以观察页面中所有元素的加载时间，查找到瓶颈所在。</p>
<p><a href="http://tools.pingdom.com/">访问 Pingdom Tools</a></p>
<h2>5. Web  Page Analyzer</h2>
<p><a href="http://www.iwanna.cn/" title="我想网" target="_blank"><img title="WebSiteOptimization" src="http://images.uheed.com/iwanna/2010/07/23/test-website-speed/WebSiteOptimization.jpg" alt="Test  Website Speed" width="530" height="322" /></a></p>
<p>Web Page Analyzer将会预估页面的大小、您输入的URL页面组织和下载时间，当然也会提供如何改良页面加载时间的意见。</p>
<p><a href="http://www.websiteoptimization.com/services/analyze/">访问 Web  Page Analyzer</a></p>
<h2>6. WebPagetest</h2>
<p><a href="http://www.iwanna.cn/" title="我想网" target="_blank"><img title="Webpagetest" src="http://images.uheed.com/iwanna/2010/07/23/test-website-speed/Webpagetest.jpg" alt="Test Website  Speed" width="530" height="344" /></a></p>
<p>通过使用WebPagetest，您可以测试一个网站并获取相关的建议；或者您也可以测试多个站点，并比较它们之间的差异。</p>
<p>在测试一个网站时，您还可以选择测试的地点，挑选IE浏览器或所连接的版本，保存测试结果为私有的等等。</p>
<p><a href="http://www.webpagetest.org/">访问 WebPagetest</a></p>
<h2>7.  Webmaster Tools</h2>
<p><a href="http://www.iwanna.cn/" title="我想网" target="_blank"><img title="Webmaster-Tools-speed" src="http://images.uheed.com/iwanna/2010/07/23/test-website-speed/Webmaster-Tools-speed.gif" alt="Test  Website Speed" width="530" height="358" /></a></p>
<p>登录您的 Webmaster Tools帐户，打开网站性能实验室的页面，然后您就会看到您网站加载时间的一张图表，当然您也可以获取如何使站点加载速度更快的一些建议。</p>
<p><a href="http://www.google.com/webmasters/tools">访问 Webmaster Tools</a></p>
<h2>8.  Zoompf</h2>
<p><a href="http://www.iwanna.cn/" title="我想网" target="_blank"><img title="Zoompf-Mini" src="http://images.uheed.com/iwanna/2010/07/23/test-website-speed/Zoompf-Mini.jpg" alt="Test Website Speed" width="530" height="339" /></a></p>
<p>除了可以网站的速度之外，Zoomf 还可以帮您列出存在着的问题的详细清单，且能提供如果修复这些的相关参考。</p>
<p><a href="http://zoompf.com/free%20">访问 Zoompf</a></p>
<h2>9. Show Slow</h2>
<p><a href="http://www.iwanna.cn/" title="我想网" target="_blank"><img title="showslow" src="http://images.uheed.com/iwanna/2010/07/23/test-website-speed/showslow.gif" alt="Test Website Speed" width="530" height="397" /></a></p>
<p>Show Slow 将会同时显示您所输入URL地址的页面 YSlow 等级 和 Page Speed 得分。</p>
<p>在这之前您需要注册添加您想要测试网站的URL地址。</p>
<p><a href="http://www.showslow.com/">访问 Show Slow</a></p>
<h2>10. Which  Loads Faster</h2>
<p><a href="http://www.iwanna.cn/" title="我想网" target="_blank"><img title="Which-loads-faster" src="http://images.uheed.com/iwanna/2010/07/23/test-website-speed/Which-loads-faster.jpg" alt="Test  Website Speed" width="530" height="291" /></a></p>
<p>Which Loads Faster 站点可以测试和比较两个或更多页面的加载速度。</p>
<p>您还可以点击“更多”按钮来获取更多的来自GTmetrix, WebPagetest 或 Show Slow 测试报告的详细信息。</p>
<p><a href="http://whichloadsfaster.com/">访问 Which Loads Faster</a></p>
<p>在这<strong><a href="http://www.iwanna.cn/archives/2010/07/23/4697/" title="10个分析、测试网站加载速度的工具">10个网站加载速度测试工具</a></strong>当中，我最喜欢的工具是 Page Speed，那是因为它是由Google着手开发并也已加入到PageRank算法中。那么您是怎么理解的呢？哪款工具是您的最爱？或者您使用的可能是其他的一些网站速度测试工具？请在留言当中分享给我们吧！！</p>
<hr />
<p>© <a href="http://www.iwanna.cn">我想网</a> Akon 所有 , 2010. |
<a href="http://www.iwanna.cn/archives/2010/07/24/4697/">永久链接</a> |
<a href="http://www.iwanna.cn/archives/2010/07/24/4697/#comments">没有评论</a> |
提交到
<a rel="nofollow" target="_blank" href="http://www.google.com/reader/view/feed/http://www.iwanna.cn/archives/2010/07/24/4697/">Google Reader</a>
<a rel="nofollow" target="_blank" href="http://www.xianguo.com/subscribe.php?url=http://www.iwanna.cn/archives/2010/07/24/4697/">鲜果</a>
<a rel="nofollow" target="_blank" href="http://www.zhuaxia.com/add_channel.php?url=http://www.iwanna.cn/archives/2010/07/24/4697/">抓虾</a>
<hr />
</p>
	标签：<a href="http://www.iwanna.cn/tags/analysis/" title="analysis" rel="tag nofollow">analysis</a>, <a href="http://www.iwanna.cn/tags/optimize/" title="Optimize" rel="tag nofollow">Optimize</a>, <a href="http://www.iwanna.cn/topics/develope/test/" title="Test" rel="tag nofollow">Test</a>, <a href="http://www.iwanna.cn/tags/test/" title="Test" rel="tag nofollow">Test</a>, <a href="http://www.iwanna.cn/topics/software/tool/" title="Tool" rel="tag nofollow">Tool</a>, <a href="http://www.iwanna.cn/tags/translate/" title="Translate" rel="tag nofollow">Translate</a>, <a href="http://www.iwanna.cn/topics/iwanna/translate-iwanna/" title="Translate" rel="tag nofollow">Translate</a>, <a href="http://www.iwanna.cn/topics/surf/website/" title="Website" rel="tag nofollow">Website</a>, <a href="http://www.iwanna.cn/tags/website/" title="Website" rel="tag nofollow">Website</a>, <a href="http://www.iwanna.cn/topics/develope/stationmaster/" title="站长工具" rel="tag nofollow">站长工具</a>, <a href="http://www.iwanna.cn/tags/translates/" title="翻译" rel="tag nofollow">翻译</a><br />

	<h2 class="related_post">您可能会感兴趣的其他文章</h2>
	<ul class="st-related-posts">
	<li><a href="http://www.iwanna.cn/archives/2010/06/16/4015/" title="9个可用性及Ux陷阱：了解如何避免它们 (2010年06月16日)">9个可用性及Ux陷阱：了解如何避免它们</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/04/15/2723/" title="8个实用的 JavaScript 测试及效验工具 (2010年04月15日)">8个实用的 JavaScript 测试及效验工具</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2009/05/11/1049/" title="80个应用大背景图片的网站 (2009年05月11日)">80个应用大背景图片的网站</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/03/05/2533/" title="5款免费的制作移动版本的网站的工具 (2010年03月5日)">5款免费的制作移动版本的网站的工具</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/07/06/4389/" title="55个简约型的网站设计实例 (2010年07月6日)">55个简约型的网站设计实例</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/02/10/2502/" title="50个激动人心的iPhone应用网站 (2010年02月10日)">50个激动人心的iPhone应用网站</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2009/08/14/2121/" title="50个最新的漂亮的博客网站设计 (2009年08月14日)">50个最新的漂亮的博客网站设计</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/03/20/2594/" title="50 个极可能激发您灵感的黄色Web设计 (2010年03月20日)">50 个极可能激发您灵感的黄色Web设计</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/06/14/3967/" title="48个提供创意iPad应用程序的公司网站 (2010年06月14日)">48个提供创意iPad应用程序的公司网站</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/07/09/4431/" title="40个激发灵感的美味餐厅类网站设计 (2010年07月9日)">40个激发灵感的美味餐厅类网站设计</a> </li>
</ul>


<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iwanna.cn/archives/2010/07/24/4697/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>苹果iPad游戏评测</title>
		<link>http://www.iwanna.cn/archives/2010/07/20/4634/</link>
		<comments>http://www.iwanna.cn/archives/2010/07/20/4634/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 13:15:39 +0000</pubDate>
		<dc:creator>seasun</dc:creator>
				<category><![CDATA[Test]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[娱乐]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[iPad]]></category>

		<guid isPermaLink="false">http://www.iwanna.cn/?p=4634</guid>
		<description><![CDATA[苹果公司今天官方宣布，iPad将于7月23日本周五将在包括香港在内的9个国家和地区市场上市，苹果香港官方网站已经宣布，香港的iPad售 价为3888港元起，折合人民币不到3400元，换算后与美国市场的499美元起价基本一致。而根据上周末从代理商泄露出来的信息，各款机型的具体售价 为：WiFi版16GB 3888港元，32GB 4688港元，64GB 5488港元；WiFi+3G版16GB 4888港元，32GB  5688港元，64GB 6488港元，相信随着香港iPad的上市，将会有越来越多的中国用户能够方便的购买和使用苹果iPad。
在 iPhone或iPad的应用商店里，最热门软件中，有大量的游戏应用，可见游戏是除了电子书外，iPad的又一个重要功能，从这里我们也可以看到 iPad的娱乐取向。这里我就简单介绍一下目前在苹果iPad上最好玩的一些游戏应用，供苹果iPad用户参考。

Plants  vs. Zombies HD
价格：9.99美元

PopCap的《植物大战僵 尸》显然是目前iPad上最好玩的游戏之一，和各个平台的Plants vs.  Zombies相比，iPad版本由于是触摸屏操作，玩起来感觉最佳，也最易入手，唯一可惜的是iPad版本没有花园这个小游戏，内容相对PC版要少一 些。
Fieldrunners  for iPad
价格：7.99美元

《炮塔防御》(Fieldrunners)的iPad是来自iPhone版的知名塔防类游戏，操作简 单，画面非常吸引人，怎么在游戏中布局也是对玩家智慧的挑战，可玩性非常高。
Flight  Control HD
价格：4.99美元

《航空指挥官》（Flight Control  HD）是一个充分利用iPad触摸屏操作的一个游戏，在游戏中，玩家要模拟航空指挥官来进行交通管制，管理整个机场的航班起落，操作非常简单，如要控制飞 机合适使用跑道，只需要将飞机拖动到相应的跑道上就可以了。
Labyrinth  2 HD
价格：7.99美元

Labyrinth是一款控制钢球平衡的迷宫类游戏，游戏根据iPad内置的重力加速计制作而成，玩家将iPad横向平行举起，来通过iPad的倾斜度 调节屏幕中钢球的滚动方向和位置，穿过迷宫达到终点，在Labyrinth里的地图非常多，设计的也非常经典。
Minigore  HD
价格：4.99美元

一款射击生存类游戏，画面很好看，场景也制作得不错，对于设计类游戏来说，该游戏的控制方式比起FPS类游戏的iPad移植版（如N.O.V.A、 BIA2、SandStorm、COD_Zombies等）要易操作的多，总的来说，FPS还是在电脑上玩比较好。
Sparkle  HD
价格：4.99美元

类似祖玛的解谜游戏，玩法和祖玛类似，三个小球即可消去，喜欢玩祖玛的可不能错过这个游戏，此游戏有免费的Lite版本
COMMAND  &#38; CONQUER RED ALERT for iPad
价格：12.99美元

红色警报系列是EA的经典，iPad版的红色警报移植自红色警报3，操作还算不错，就是屏幕较小，画面 不如PC版的好。
Asphalt  5 HD
价格：6.99美元

Gameloft的赛车游戏Asphalt  5是众多iPad赛车游戏中较为好玩的，支持重力感应，玩家左右摇摆屏幕即可控制赛车方向，玩起来体验不错。
Resident  [...]]]></description>
			<content:encoded><![CDATA[<p>苹果公司今天官方宣布，iPad将于7月23日本周五将在包括香港在内的9个国家和地区市场上市，苹果香港官方网站已经宣布，香港的iPad售 价为3888港元起，折合人民币不到3400元，换算后与美国市场的499美元起价基本一致。而根据上周末从代理商泄露出来的信息，各款机型的具体售价 为：WiFi版16GB 3888港元，32GB 4688港元，64GB 5488港元；WiFi+3G版16GB 4888港元，32GB  5688港元，64GB 6488港元，相信随着香港iPad的上市，将会有越来越多的中国用户能够方便的购买和使用苹果iPad。</p>
<p>在 iPhone或iPad的应用商店里，最热门软件中，有大量的游戏应用，可见游戏是除了电子书外，iPad的又一个重要功能，从这里我们也可以看到 iPad的娱乐取向。这里我就简单介绍一下目前在苹果iPad上最好玩的一些游戏应用，供苹果iPad用户参考。<br />
<span id="more-4634"></span><br />
<a href="http://itunes.apple.com/us/app/plants-vs-zombies-hd/id363282253?mt=8" target="_blank"><strong>Plants  vs. Zombies HD</strong></a></p>
<p>价格：9.99美元</p>
<p><a href="http://images.uheed.com/iwanna/2010/07/20/ipad/2251_1.jpg" target="_blank"><img src="http://images.uheed.com/iwanna/2010/07/20/ipad/2251_1.jpg" border="0" alt="Plants  vs. Zombies HD" /></a></p>
<p>PopCap的《植物大战僵 尸》显然是目前iPad上最好玩的游戏之一，和各个平台的Plants vs.  Zombies相比，iPad版本由于是触摸屏操作，玩起来感觉最佳，也最易入手，唯一可惜的是iPad版本没有花园这个小游戏，内容相对PC版要少一 些。</p>
<p><a href="http://itunes.apple.com/us/app/fieldrunners-for-ipad/id364204209?mt=8" target="_blank"><strong>Fieldrunners  for iPad</strong></a></p>
<p>价格：7.99美元</p>
<p><a href="http://images.uheed.com/iwanna/2010/07/20/ipad/2251_2.jpg" target="_blank"><img src="http://images.uheed.com/iwanna/2010/07/20/ipad/2251_2.jpg" border="0" alt="Plants  vs. Zombies HD" /></a></p>
<p>《炮塔防御》(Fieldrunners)的iPad是来自iPhone版的知名塔防类游戏，操作简 单，画面非常吸引人，怎么在游戏中布局也是对玩家智慧的挑战，可玩性非常高。</p>
<p><a href="http://itunes.apple.com/us/app/flight-control-hd/id363727129?mt=8" target="_blank"><strong>Flight  Control HD</strong></a></p>
<p>价格：4.99美元</p>
<p><a href="http://images.uheed.com/iwanna/2010/07/20/ipad/2251_3.jpg" target="_blank"><img src="http://images.uheed.com/iwanna/2010/07/20/ipad/2251_3.jpg" border="0" alt="Plants  vs. Zombies HD" /></a></p>
<p>《航空指挥官》（Flight Control  HD）是一个充分利用iPad触摸屏操作的一个游戏，在游戏中，玩家要模拟航空指挥官来进行交通管制，管理整个机场的航班起落，操作非常简单，如要控制飞 机合适使用跑道，只需要将飞机拖动到相应的跑道上就可以了。</p>
<p><a href="http://itunes.apple.com/us/app/labyrinth-2-hd/id307758975?mt=8" target="_blank"><strong>Labyrinth  2 HD</strong></a></p>
<p>价格：7.99美元</p>
<p><a href="http://images.uheed.com/iwanna/2010/07/20/ipad/2251_4.jpg" target="_blank"><img src="http://images.uheed.com/iwanna/2010/07/20/ipad/2251_4.jpg" border="0" alt="Plants vs. Zombies HD" /></a></p>
<p>Labyrinth是一款控制钢球平衡的迷宫类游戏，游戏根据iPad内置的重力加速计制作而成，玩家将iPad横向平行举起，来通过iPad的倾斜度 调节屏幕中钢球的滚动方向和位置，穿过迷宫达到终点，在Labyrinth里的地图非常多，设计的也非常经典。</p>
<p><a href="http://itunes.apple.com/us/app/minigore-hd/id364238135?mt=8" target="_blank"><strong>Minigore  HD</strong></a></p>
<p>价格：4.99美元</p>
<p><a href="http://images.uheed.com/iwanna/2010/07/20/ipad/2251_5.jpg" target="_blank"><img src="http://images.uheed.com/iwanna/2010/07/20/ipad/2251_5.jpg" border="0" alt="Plants vs. Zombies HD" /></a></p>
<p>一款射击生存类游戏，画面很好看，场景也制作得不错，对于设计类游戏来说，该游戏的控制方式比起FPS类游戏的iPad移植版（如N.O.V.A、 BIA2、SandStorm、COD_Zombies等）要易操作的多，总的来说，FPS还是在电脑上玩比较好。</p>
<p><a href="http://itunes.apple.com/us/app/sparkle-hd/id363505203?mt=8" target="_blank"><strong>Sparkle  HD</strong></a></p>
<p>价格：4.99美元</p>
<p><a href="http://images.uheed.com/iwanna/2010/07/20/ipad/2251_6.jpg" target="_blank"><img src="http://images.uheed.com/iwanna/2010/07/20/ipad/2251_6.jpg" border="0" alt="Plants vs. Zombies HD" /></a></p>
<p>类似祖玛的解谜游戏，玩法和祖玛类似，三个小球即可消去，喜欢玩祖玛的可不能错过这个游戏，此游戏有免费的Lite版本</p>
<p><a href="http://itunes.apple.com/us/app/command-conquer-red-alert/id363317738?mt=8" target="_blank"><strong>COMMAND  &amp; CONQUER RED ALERT for iPad</strong></a></p>
<p>价格：12.99美元</p>
<p><a href="http://images.uheed.com/iwanna/2010/07/20/ipad/2251_7.jpg" target="_blank"><img src="http://images.uheed.com/iwanna/2010/07/20/ipad/2251_7.jpg" border="0" alt="Plants  vs. Zombies HD" /></a></p>
<p>红色警报系列是EA的经典，iPad版的红色警报移植自红色警报3，操作还算不错，就是屏幕较小，画面 不如PC版的好。</p>
<p><a href="http://itunes.apple.com/us/app/asphalt-5-hd/id364126956?mt=8" target="_blank"><strong>Asphalt  5 HD</strong></a></p>
<p>价格：6.99美元</p>
<p><a href="http://images.uheed.com/iwanna/2010/07/20/ipad/2251_8.jpg" target="_blank"><img src="http://images.uheed.com/iwanna/2010/07/20/ipad/2251_8.jpg" border="0" alt="Plants vs. Zombies HD" /></a></p>
<p>Gameloft的赛车游戏Asphalt  5是众多iPad赛车游戏中较为好玩的，支持重力感应，玩家左右摇摆屏幕即可控制赛车方向，玩起来体验不错。</p>
<p><a href="http://itunes.apple.com/us/app/resident-evil-4-ipad-edition/id363634698?mt=8" target="_blank"><strong>Resident  Evil 4 iPad edition</strong></a></p>
<p>6.99美元</p>
<p><a href="http://images.uheed.com/iwanna/2010/07/20/ipad/2251_9.jpg" target="_blank"><img src="http://images.uheed.com/iwanna/2010/07/20/ipad/2251_9.jpg" border="0" alt="Plants  vs. Zombies HD" /></a></p>
<p>CAPCOM的知名游戏大作生化危机也登录iPad了，可惜这个版本并不是完全版，只有很少的一部分内 容，要想体验真正的生化危机，还是玩Wii版的生化危机吧。</p>
<p><a href="http://itunes.apple.com/us/app/id379254880?mt=8" target="_blank"><strong>QQ斗地主 HD</strong></a></p>
<p>价格：免费</p>
<p><a href="http://images.uheed.com/iwanna/2010/07/20/ipad/2251_10.jpg" target="_blank"><img src="http://images.uheed.com/iwanna/2010/07/20/ipad/2251_10.jpg" border="0" alt="Plants  vs. Zombies HD" /></a></p>
<p>腾讯的一个斗地主纸牌游戏，画面效果不错，可以单机也可以联网玩，出牌有声音，而且还是免费的，什么时 候腾讯要是把QQ空间里的游戏（如QQ农场、抢车位等）也移植过来就无敌了。</p>
<p>总的来说，iPad上的游戏大多以休闲游戏为主，其他类的 游戏也有，但操作体验并不高，例如FPS（第一人称射击）类游戏，操作体验最好的应该是PC平台，而动作冒险类游戏则是家用游戏机的天下，以触摸操作为主 的休闲游戏则在iPad上有良好的体验。虽然iPad上拥有很多有趣的游戏，但是能够媲美家用游戏机或PC等游戏平台的大 作却很少，而且iPad也没有足够的机能去运行这些游戏。苹果iPad在最初的时候，就被定位为介于上网本和智能手机之间的娱乐终端，它的确能提供相当不 错的娱乐体验，但是目前还不具备挑战家用游戏机和电脑游戏的能力。</p>
<hr />
<p>© <a href="http://www.iwanna.cn">我想网</a> Akon 所有 , 2010. |
<a href="http://www.iwanna.cn/archives/2010/07/20/4634/">永久链接</a> |
<a href="http://www.iwanna.cn/archives/2010/07/20/4634/#comments">没有评论</a> |
提交到
<a rel="nofollow" target="_blank" href="http://www.google.com/reader/view/feed/http://www.iwanna.cn/archives/2010/07/20/4634/">Google Reader</a>
<a rel="nofollow" target="_blank" href="http://www.xianguo.com/subscribe.php?url=http://www.iwanna.cn/archives/2010/07/20/4634/">鲜果</a>
<a rel="nofollow" target="_blank" href="http://www.zhuaxia.com/add_channel.php?url=http://www.iwanna.cn/archives/2010/07/20/4634/">抓虾</a>
<hr />
</p>
	标签：<a href="http://www.iwanna.cn/tags/apple/" title="apple" rel="tag nofollow">apple</a>, <a href="http://www.iwanna.cn/topics/news/apple-news/" title="apple" rel="tag nofollow">apple</a>, <a href="http://www.iwanna.cn/tags/game/" title="Game" rel="tag nofollow">Game</a>, <a href="http://www.iwanna.cn/tags/ipad/" title="iPad" rel="tag nofollow">iPad</a>, <a href="http://www.iwanna.cn/topics/develope/test/" title="Test" rel="tag nofollow">Test</a>, <a href="http://www.iwanna.cn/topics/iwanna/entertainment-iwanna/" title="娱乐" rel="tag nofollow">娱乐</a><br />

	<h2 class="related_post">您可能会感兴趣的其他文章</h2>
	<ul class="st-related-posts">
	<li><a href="http://www.iwanna.cn/archives/2010/07/26/4743/" title="苹果iPad全解析 (2010年07月26日)">苹果iPad全解析</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/06/10/3854/" title="乔布斯维新：iPad背后的谎言、博弈与大格局 (2010年06月10日)">乔布斯维新：iPad背后的谎言、博弈与大格局</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/07/13/4491/" title="iPad 必备五件利器 (2010年07月13日)">iPad 必备五件利器</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/07/18/4604/" title="14个超级酷的iPad配件 (2010年07月18日)">14个超级酷的iPad配件</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/06/12/3918/" title="12款酷到掉渣的iPad贴纸 (2010年06月12日)">12款酷到掉渣的iPad贴纸</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/06/14/3991/" title="10大最贵iPad应用软件 (2010年06月14日)">10大最贵iPad应用软件</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/06/05/3687/" title="鲍尔默谈苹果iPad：不是谁都买得起 (2010年06月5日)">鲍尔默谈苹果iPad：不是谁都买得起</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/06/05/3692/" title="近半数媒体网站计划支持iPad和HTML5视频 (2010年06月5日)">近半数媒体网站计划支持iPad和HTML5视频</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/07/08/4408/" title="解码史上最牛应用程序 (2010年07月8日)">解码史上最牛应用程序</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/06/09/3828/" title="苹果电脑不为人所知的第三个创始人 (2010年06月9日)">苹果电脑不为人所知的第三个创始人</a> </li>
</ul>


<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iwanna.cn/archives/2010/07/20/4634/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10个免费的Web压力测试工具</title>
		<link>http://www.iwanna.cn/archives/2010/07/13/4502/</link>
		<comments>http://www.iwanna.cn/archives/2010/07/13/4502/#comments</comments>
		<pubDate>Tue, 13 Jul 2010 04:49:48 +0000</pubDate>
		<dc:creator>seasun</dc:creator>
				<category><![CDATA[Test]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[WEB]]></category>
		<category><![CDATA[Free]]></category>
		<category><![CDATA[Website]]></category>

		<guid isPermaLink="false">http://www.iwanna.cn/?p=4502</guid>
		<description><![CDATA[先前在本站发布了《如何在低速率网络中测试 Web 应用》，那是测试网络不好的情况。而下面是十个免费的可以用来进行Web的负载/压力测试的工具，这样，你就可以知道你的服务器以及你的WEB应用能够顶得住多少的并发量，以及你的网站的性能。我相信，北京奥组委的订票网站的开发团队并不知道有这样的测试工具。
Grinder – Grinder是一个开源的JVM负载测试框架，它通过很多负载注射器来为分布式测试提供了便利。支持用于执行测试脚本的Jython脚本引擎HTTP测试可通过HTTP代理进行管理。根据项目网站的说法，Grinder的主要目标用户是“理解他们所测代码的人——Grinder不仅仅是带有一组相关响应时间的‘黑盒’测试。由于测试过程可以进行编码——而不是简单地脚本化，所以程序员能测试应用中内部的各个层次，而不仅仅是通过用户界面测试响应时间。

Pylot -Pylot是一款开源的测试web service性能和扩展性的工具，它运行HTTP负载测试，这对容量计划，确定基准点，分析以及系统调优都很有用处。Pylot产生并发负载（HTTPRequests），检验服务器响应，以及产生带有metrics的报表。通过GUI或者shell/console来执行和监视testsuites。
WebCapacity Analysis Tool (WCAT) – 这是一种轻量级负载生成实用工具，不仅能够重现对Web 服务器（或负载平衡服务器场）的脚本 HTTP 请求，同时还可以收集性能统计数据供日后分析之用。WCAT是多线程应用程序，并且支持从单个源控制多个负载测试客户端，因此您可以模拟数千个并发用户。该实用工具利用您的旧机器作为测试客户端，其中每个测试客户 端又可以产生多个虚拟客户端（最大数量取决于客户端机器的网络适配器和其他硬件）。您可以选择使用 HTTP 1.0 还是 HTTP 1.1请求，以及是否使用 SSL。并且，如果测试方案需要，您还可以使用脚本执行的基本或 NTLM 身份验证来访问站点的受限部分。（如果您的站点使用cookie、表单或基于会话的身份验证，那您可以创建正确的 GET 或 POST 请求来对测试用户进行身份验证。）WCAT还可管理您站点可能设置的任何 cookie，所以配置文件和会话信息将永久保存。
fwptt – fwptt 也是一个用来进行WEB应用负载测试的工具。它可以记录一般的请求，也可以记录Ajax请求。它可以用来测试 asp.net，jsp， php 或是其它的Web应用。
JCrawler – JCrawler是一个开源( CPL)的WEB应用压力测试工具。通过其名字，你就可以知道这是一个用Java写的像网页爬虫一样的工具。只要你给其几个URL，它就可以开始爬过去了，它用一 种特殊的方式来产生你WEB应用的负载。这个工具可以用来测试搜索引擎对你站点产生的负载。当然，其还有另一功能，你可以建立你的网站地图和再点击一下， 将自动提交Sitemap给前5名的搜索引擎！
ApacheJMeter – ApacheJMeter是一个专门为运行和服务器装载测试而设计的、100％的纯Java桌面运行程序。原先它是为Web/HTTP测试而设计的，但是它已经扩展以 支持各种各样的测试模块。它和用于HTTP和SQL数据库（使用JDBC）的模块一起运送。它可以用来测试静止资料库或者活动资料库中的服务器的运行情 况，可以用来模拟对服务器或者网络系统加以重负荷以测试它的抵抗力，或者用来分析不同负荷类型下的所有运行情况。它也提供了一个可替换的界面用来定制数据 显示，测试同步及测试的创建和执行。
Siege -Siege（英文意思是围攻）是一个压力测试和评测工具，设计用于WEB开发这评估应用在压力下的承受能力：可以根据配置对一个WEB站点进行多用户的 并发访问，记录每个用户所有请求过程的相应时间，并在一定数量的并发访问下重复进行。 Siege 支持基本的认证，cookies， HTTP 和HTTPS 协议。
http_load – http_load以并行复用的方式运行，用以测试web服务器的吞吐量与负载。但是它不同于大多数压力测试工具，它可以以一个单一的进程运行，一般不会把客户机搞死。可以 可以测试HTTPS类的网站请求。
WebPolygraph [...]]]></description>
			<content:encoded><![CDATA[<p>先前在本站发布了《<a rel="bookmark" href="http://www.iwanna.cn/archives/2010/07/13/4500/" target="_blank">如何在低速率网络中测试 Web 应用</a>》，那是测试网络不好的情况。而下面是十个免费的可以用来进行Web的负载/压力测试的工具，这样，你就可以知道你的服务器以及你的WEB应用能够顶得住多少的并发量，以及你的网站的性能。我相信，北京奥组委的订票网站的开发团队并不知道有这样的测试工具。</p>
<p><strong><a href="http://grinder.sourceforge.net/" target="_blank">Grinder</a></strong> – Grinder是一个开源的JVM负载测试框架，它通过很多负载注射器来为分布式测试提供了便利。支持用于执行测试脚本的Jython脚本引擎HTTP测试可通过HTTP代理进行管理。根据项目网站的说法，Grinder的主要目标用户是“理解他们所测代码的人——Grinder不仅仅是带有一组相关响应时间的‘黑盒’测试。由于测试过程可以进行编码——而不是简单地脚本化，所以程序员能测试应用中内部的各个层次，而不仅仅是通过用户界面测试响应时间。<br />
<span id="more-4502"></span><br />
<strong><a href="http://www.pylot.org/" target="_blank">Pylot</a></strong> -Pylot是一款开源的测试web service性能和扩展性的工具，它运行HTTP负载测试，这对容量计划，确定基准点，分析以及系统调优都很有用处。Pylot产生并发负载（HTTPRequests），检验服务器响应，以及产生带有metrics的报表。通过GUI或者shell/console来执行和监视testsuites。</p>
<p><a href="http://www.iis.net/community/default.aspx?tabid=34&amp;i=1466&amp;g=6" target="_blank"><strong>WebCapacity Analysis Tool (WCAT)</strong></a> – 这是一种轻量级负载生成实用工具，不仅能够重现对Web 服务器（或负载平衡服务器场）的脚本 HTTP 请求，同时还可以收集性能统计数据供日后分析之用。WCAT是多线程应用程序，并且支持从单个源控制多个负载测试客户端，因此您可以模拟数千个并发用户。该实用工具利用您的旧机器作为测试客户端，其中每个测试客户 端又可以产生多个虚拟客户端（最大数量取决于客户端机器的网络适配器和其他硬件）。您可以选择使用 HTTP 1.0 还是 HTTP 1.1请求，以及是否使用 SSL。并且，如果测试方案需要，您还可以使用脚本执行的基本或 NTLM 身份验证来访问站点的受限部分。（如果您的站点使用cookie、表单或基于会话的身份验证，那您可以创建正确的 GET 或 POST 请求来对测试用户进行身份验证。）WCAT还可管理您站点可能设置的任何 cookie，所以配置文件和会话信息将永久保存。</p>
<p><strong><a href="http://fwptt.sourceforge.net/index.html" target="_blank">fwptt</a></strong> – fwptt 也是一个用来进行WEB应用负载测试的工具。它可以记录一般的请求，也可以记录Ajax请求。它可以用来测试 asp.net，jsp， php 或是其它的Web应用。</p>
<p><strong><a href="http://jcrawler.sourceforge.net/" target="_blank">JCrawler</a></strong> – JCrawler是一个开源(<a onclick="pageTracker._trackPageview('/outgoing/www.opensource.org/licenses/cpl.php?referer=http%3A%2F%2Fwww.google.com%2Freader%2Fview%2F');" href="http://www.opensource.org/licenses/cpl.php" target="_blank"> CPL</a>)的WEB应用压力测试工具。通过其名字，你就可以知道这是一个用Java写的像网页爬虫一样的工具。只要你给其几个URL，它就可以开始爬过去了，它用一 种特殊的方式来产生你WEB应用的负载。这个工具可以用来测试搜索引擎对你站点产生的负载。当然，其还有另一功能，你可以建立你的网站地图和再点击一下， 将自动提交Sitemap给前5名的搜索引擎！</p>
<p><strong><a href="http://jakarta.apache.org/jmeter/" target="_blank">ApacheJMeter</a></strong> – ApacheJMeter是一个专门为运行和服务器装载测试而设计的、100％的纯Java桌面运行程序。原先它是为Web/HTTP测试而设计的，但是它已经扩展以 支持各种各样的测试模块。它和用于HTTP和SQL数据库（使用JDBC）的模块一起运送。它可以用来测试静止资料库或者活动资料库中的服务器的运行情 况，可以用来模拟对服务器或者网络系统加以重负荷以测试它的抵抗力，或者用来分析不同负荷类型下的所有运行情况。它也提供了一个可替换的界面用来定制数据 显示，测试同步及测试的创建和执行。</p>
<p><strong><a href="http://www.joedog.org/index/siege-home" target="_blank">Siege</a></strong> -Siege（英文意思是围攻）是一个压力测试和评测工具，设计用于WEB开发这评估应用在压力下的承受能力：可以根据配置对一个WEB站点进行多用户的 并发访问，记录每个用户所有请求过程的相应时间，并在一定数量的并发访问下重复进行。 Siege 支持基本的认证，cookies， HTTP 和HTTPS 协议。</p>
<p><strong><a href="http://www.acme.com/software/http_load/" target="_blank">http_load</a></strong> – http_load以并行复用的方式运行，用以测试web服务器的吞吐量与负载。但是它不同于大多数压力测试工具，它可以以一个单一的进程运行，一般不会把客户机搞死。可以 可以测试HTTPS类的网站请求。</p>
<p><strong><a href="http://www.web-polygraph.org/" target="_blank">WebPolygraph</a></strong> – WebPolygraph这个软件也是一个用于测试WEB性能的工具，这个工具是很多公司的标准测试工具，包括微软在分析其软件性能的时候，也是使用这个工具做 为基准工具的。很多招聘测试员的广告中都注明需要熟练掌握这个测试工具。</p>
<p><strong><a href="http://opensta.org/" target="_blank">OpenSTA</a></strong> –OpenSTA是一个免费的、开放源代码的web性能测试工具，能录制功能非常强大的脚本过程，执行性能测试。例如虚拟多个不同的用户同时登陆被测试网 站。其还能对录制的测试脚本进行,按指定的语法进行编辑。在录制完测试脚本后，可以对测试脚本进行编辑，以便进行特定的性能指标分析。其较为丰富的图形化 测试结果大大提高了测试报告的可阅读性。OpenSTA 基于CORBA 的结构体系，它通过虚拟一个proxy，使用其专用的脚本控制语言，记录通过 proxy 的一切HTTP/Straffic。通过分析OpenSTA的性能指标收集器收集的各项性能指标，以及HTTP 数据，对系统的性能进行分析。</p>
<p>欢迎您留下你认为不错的WEB应用性能测试的工具。</p>
<hr />
<p>© <a href="http://www.iwanna.cn">我想网</a> Akon 所有 , 2010. |
<a href="http://www.iwanna.cn/archives/2010/07/13/4502/">永久链接</a> |
<a href="http://www.iwanna.cn/archives/2010/07/13/4502/#comments">没有评论</a> |
提交到
<a rel="nofollow" target="_blank" href="http://www.google.com/reader/view/feed/http://www.iwanna.cn/archives/2010/07/13/4502/">Google Reader</a>
<a rel="nofollow" target="_blank" href="http://www.xianguo.com/subscribe.php?url=http://www.iwanna.cn/archives/2010/07/13/4502/">鲜果</a>
<a rel="nofollow" target="_blank" href="http://www.zhuaxia.com/add_channel.php?url=http://www.iwanna.cn/archives/2010/07/13/4502/">抓虾</a>
<hr />
</p>
	标签：<a href="http://www.iwanna.cn/tags/free/" title="Free" rel="tag nofollow">Free</a>, <a href="http://www.iwanna.cn/topics/develope/test/" title="Test" rel="tag nofollow">Test</a>, <a href="http://www.iwanna.cn/tags/test/" title="Test" rel="tag nofollow">Test</a>, <a href="http://www.iwanna.cn/topics/software/tool/" title="Tool" rel="tag nofollow">Tool</a>, <a href="http://www.iwanna.cn/tags/tool/" title="Tool" rel="tag nofollow">Tool</a>, <a href="http://www.iwanna.cn/topics/ui/web-ui/" title="WEB" rel="tag nofollow">WEB</a>, <a href="http://www.iwanna.cn/tags/website/" title="Website" rel="tag nofollow">Website</a><br />

	<h2 class="related_post">您可能会感兴趣的其他文章</h2>
	<ul class="st-related-posts">
	<li><a href="http://www.iwanna.cn/archives/2010/06/14/3989/" title="在线评测一下你的网站负荷能力 (2010年06月14日)">在线评测一下你的网站负荷能力</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2009/05/24/1132/" title="六个好用的免费文件存放网站 (2009年05月24日)">六个好用的免费文件存放网站</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/05/07/2966/" title="免费的用户行为点击热区跟踪采集 (2010年05月7日)">免费的用户行为点击热区跟踪采集</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/06/27/4217/" title="8个常用的在线站点验证和测试工具 (2010年06月27日)">8个常用的在线站点验证和测试工具</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/04/15/2723/" title="8个实用的 JavaScript 测试及效验工具 (2010年04月15日)">8个实用的 JavaScript 测试及效验工具</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/03/05/2533/" title="5款免费的制作移动版本的网站的工具 (2010年03月5日)">5款免费的制作移动版本的网站的工具</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/05/09/3037/" title="5个最好的提供在线文件共享服务的网站 (2010年05月9日)">5个最好的提供在线文件共享服务的网站</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2009/06/30/1892/" title="5个免费的最佳的系统还原工具 (2009年06月30日)">5个免费的最佳的系统还原工具</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/07/24/4708/" title="10个提供免费WordPress主题下载的网站 (2010年07月24日)">10个提供免费WordPress主题下载的网站</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/07/24/4697/" title="10个分析、测试网站加载速度的工具 (2010年07月24日)">10个分析、测试网站加载速度的工具</a> </li>
</ul>


<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iwanna.cn/archives/2010/07/13/4502/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何在低速率网络中测试 Web 应用</title>
		<link>http://www.iwanna.cn/archives/2010/07/13/4500/</link>
		<comments>http://www.iwanna.cn/archives/2010/07/13/4500/#comments</comments>
		<pubDate>Tue, 13 Jul 2010 04:45:55 +0000</pubDate>
		<dc:creator>seasun</dc:creator>
				<category><![CDATA[Test]]></category>
		<category><![CDATA[WEB]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.iwanna.cn/?p=4500</guid>
		<description><![CDATA[大家看到标题后的第一个问题可能是：“我们需要这样做吗？”
如果我们开发的是局域网 Web 应用的话，可能没有必要这样做。但如果我们的 Web  应用面向的是互联网上的成千上万的用户，这样做就很必要了。因为在现实世界中并不是所有的用户都有高数率的网络连接，也许用户使用的是拨号接入，移动设 备，3G，或者是 USB 网络加密狗。如果我们没有在低数率的网络环境中测试过我们 Web  应用，极有可能在上线后收到一些意想不到的关于系统性能方面的抱怨。这个时候无论我们的 Web 应用界面多么地 Web  2.0，功能多么地强大，对于用户来说都失去了使用价值。

目前有很多工具能够模拟慢速网络，值得一提的是 Firefox  Throttle，这是一个 Firefox  插件，你可以设置上载和下载的数率，并且监控当前带宽的使用情况。另一个非常有用的特性是它可以控制你的 localhost  的连接数率，对本地测试很有用。
Firefox Throttle 的截图

另一个工具是 Sloppy， 它是一个 Java Web Start application。

© 我想网 Akon 所有 , 2010. &#124;
永久链接 &#124;
没有评论 &#124;
提交到
Google Reader
鲜果
抓虾


	标签：Test, Test, Web, WEB

	您可能会感兴趣的其他文章
	
	默认Web字体样式 
	页面元素的两种表达状态：常态，暂态 
	迈过社会化网络：互联网的新时代 
	设计中的色彩：黑色 
	设计中的色彩：白色 
	解码 Web 开发语言 
	苹果 vs. [...]]]></description>
			<content:encoded><![CDATA[<p>大家看到标题后的第一个问题可能是：“我们需要这样做吗？”</p>
<p>如果我们开发的是局域网 Web 应用的话，可能没有必要这样做。但如果我们的 Web  应用面向的是互联网上的成千上万的用户，这样做就很必要了。因为在现实世界中并不是所有的用户都有高数率的网络连接，也许用户使用的是拨号接入，移动设 备，3G，或者是 USB 网络加密狗。如果我们没有在低数率的网络环境中测试过我们 Web  应用，极有可能在上线后收到一些意想不到的关于系统性能方面的抱怨。这个时候无论我们的 Web 应用界面多么地 Web  2.0，功能多么地强大，对于用户来说都失去了使用价值。<br />
<span id="more-4500"></span><br />
目前有很多工具能够模拟慢速网络，值得一提的是 <a onclick="pageTracker._trackPageview('/outgoing/addons.mozilla.org/en-US/firefox/addon/5917/?referer=');" href="https://addons.mozilla.org/en-US/firefox/addon/5917/">Firefox  Throttle</a>，这是一个 Firefox  插件，你可以设置上载和下载的数率，并且监控当前带宽的使用情况。另一个非常有用的特性是它可以控制你的 localhost  的连接数率，对本地测试很有用。</p>
<p>Firefox Throttle 的截图</p>
<p><a href="http://images.uheed.com/iwanna/2010/07/13/Firefox-Throttle.jpg"><img title="Firefox Throttle" src="http://images.uheed.com/iwanna/2010/07/13/Firefox-Throttle-300x231.jpg" alt="" width="300" height="231" /></a></p>
<p>另一个工具是 <a onclick="pageTracker._trackPageview('/outgoing/www.dallaway.com/sloppy/?referer=');" href="http://www.dallaway.com/sloppy/">Sloppy</a>， 它是一个 Java Web Start application。</p>
<hr />
<p>© <a href="http://www.iwanna.cn">我想网</a> Akon 所有 , 2010. |
<a href="http://www.iwanna.cn/archives/2010/07/13/4500/">永久链接</a> |
<a href="http://www.iwanna.cn/archives/2010/07/13/4500/#comments">没有评论</a> |
提交到
<a rel="nofollow" target="_blank" href="http://www.google.com/reader/view/feed/http://www.iwanna.cn/archives/2010/07/13/4500/">Google Reader</a>
<a rel="nofollow" target="_blank" href="http://www.xianguo.com/subscribe.php?url=http://www.iwanna.cn/archives/2010/07/13/4500/">鲜果</a>
<a rel="nofollow" target="_blank" href="http://www.zhuaxia.com/add_channel.php?url=http://www.iwanna.cn/archives/2010/07/13/4500/">抓虾</a>
<hr />
</p>
	标签：<a href="http://www.iwanna.cn/topics/develope/test/" title="Test" rel="tag nofollow">Test</a>, <a href="http://www.iwanna.cn/tags/test/" title="Test" rel="tag nofollow">Test</a>, <a href="http://www.iwanna.cn/tags/web/" title="Web" rel="tag nofollow">Web</a>, <a href="http://www.iwanna.cn/topics/ui/web-ui/" title="WEB" rel="tag nofollow">WEB</a><br />

	<h2 class="related_post">您可能会感兴趣的其他文章</h2>
	<ul class="st-related-posts">
	<li><a href="http://www.iwanna.cn/archives/2010/01/29/2479/" title="默认Web字体样式 (2010年01月29日)">默认Web字体样式</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/05/18/3223/" title="页面元素的两种表达状态：常态，暂态 (2010年05月18日)">页面元素的两种表达状态：常态，暂态</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/07/20/4642/" title="迈过社会化网络：互联网的新时代 (2010年07月20日)">迈过社会化网络：互联网的新时代</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/05/07/2961/" title="设计中的色彩：黑色 (2010年05月7日)">设计中的色彩：黑色</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/05/07/2959/" title="设计中的色彩：白色 (2010年05月7日)">设计中的色彩：白色</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/06/23/4157/" title="解码 Web 开发语言 (2010年06月23日)">解码 Web 开发语言</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2009/06/03/1680/" title="苹果 vs. 微软 &#8211; 网站可用性研究 (2009年06月3日)">苹果 vs. 微软 &#8211; 网站可用性研究</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/05/07/2969/" title="网页设计现状：2010年设计趋势[下] (2010年05月7日)">网页设计现状：2010年设计趋势[下]</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/05/07/2968/" title="网页设计现状：2010年设计趋势[上] (2010年05月7日)">网页设计现状：2010年设计趋势[上]</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2009/03/31/59/" title="网页设计技巧大全（摘抄） (2009年03月31日)">网页设计技巧大全（摘抄）</a> </li>
</ul>


<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iwanna.cn/archives/2010/07/13/4500/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在线评测一下你的网站负荷能力</title>
		<link>http://www.iwanna.cn/archives/2010/06/14/3989/</link>
		<comments>http://www.iwanna.cn/archives/2010/06/14/3989/#comments</comments>
		<pubDate>Mon, 14 Jun 2010 13:51:30 +0000</pubDate>
		<dc:creator>seasun</dc:creator>
				<category><![CDATA[Test]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[站长工具]]></category>

		<guid isPermaLink="false">http://www.iwanna.cn/?p=3989</guid>
		<description><![CDATA[通常一个网站可以同时承受的用户流量压力是有一定的限制，随着用户上线人数的增加，网站相应的时间就会逐步的慢下来。
当用户数量达到一个限度时，用户再打开该网站的网页，就会出现timeout。
那么如何衡量你的网站的情况呢？
我推荐一个免费在线评估工具，Load  Impact
使用其免费测试功能，对本站进行了一下测试，结果如下图


该测试，从10个用户端，到50个用户，进行了5次测试。
从测试结果来看可以看到，user load  time几乎是一条直线，也就是说，网站太强大了，这些个用户数根本测不出负载的变化，需要更多的用户数才能看出变化。
你也可以对你自己的网站做一下简单的测试，用load impact工具评测一下。
你的评测结果曲线可能同我的可能不同，如何解读，你可以看看这里的说明。
还有两个很常用的网站负载评估工具，或者说压力测试工具。
1）AB  工具
几乎用Linux服务器的站长，可能都用过这个Linux自带的工具。
2）Webbench
上面的链接是张宴介绍的，我也用过，很容易，也方便。
这里提醒一下，做压力测试，只能对自己的网站，或者得到网站站长同意，才能进行测试。

© 我想网 Akon 所有 , 2010. &#124;
永久链接 &#124;
没有评论 &#124;
提交到
Google Reader
鲜果
抓虾


	标签：Test, Test, Website, Website, 站长工具

	您可能会感兴趣的其他文章
	
	10个分析、测试网站加载速度的工具 
	10个免费的Web压力测试工具 
	高效互联网营销的18种技巧 
	雅虎发布网站性能监测工具：从用户角度衡量 
	陈光锋[访谈]：地方新站如何做运营推广 
	轻设计，让网站灵敏轻便的6个技巧 
	轻设计，让网站灵敏轻便的6个技巧 
	读写网：即时网络公司100强 
	设计项目开始前必须了解客户的9件事 
	记账网站Mint.Com获得1400万美元投资 



Feed enhanced by Better Feed from  Ozh
]]></description>
			<content:encoded><![CDATA[<p>通常一个网站可以同时承受的用户流量压力是有一定的限制，随着用户上线人数的增加，网站相应的时间就会逐步的慢下来。<br />
当用户数量达到一个限度时，用户再打开该网站的网页，就会出现timeout。</p>
<p>那么如何衡量你的网站的情况呢？<br />
我推荐一个免费在线评估工具，<a href="http://loadimpact.com/" target="_blank">Load  Impact</a></p>
<p>使用其免费测试功能，对本站进行了一下测试，结果如下图<br />
<a href="http://loadimpact.com/result/seo.g2soft.net-7e5ae463ab02d491d554007b1ac6643d" target="_blank"><img src="http://images.uheed.com/iwanna/2010/06/14/load-impact-result.jpg" alt="在线评测一下你的网站负荷能力" width="400" height="404" /></a><br />
<span id="more-3989"></span><br />
该测试，从10个用户端，到50个用户，进行了5次测试。<br />
从测试结果来看可以看到，user load  time几乎是一条直线，也就是说，网站太强大了，这些个用户数根本测不出负载的变化，需要更多的用户数才能看出变化。</p>
<p>你也可以对你自己的网站做一下简单的测试，用load impact工具评测一下。<br />
你的评测结果曲线可能同我的可能不同，如何解读，你可以看看这里的<a href="http://loadimpact.com/forum/viewtopic.php?id=87" target="_blank">说明</a>。</p>
<p>还有两个很常用的网站负载评估工具，或者说压力测试工具。<br />
1）<a href="http://www.linuxtoday.com/high_performance/2009041002635OSSV" target="_blank">AB  工具</a><br />
几乎用Linux服务器的站长，可能都用过这个Linux自带的工具。<br />
2）<a href="http://blog.s135.com/post/288" target="_blank">Webbench</a><br />
上面的链接是张宴介绍的，我也用过，很容易，也方便。</p>
<p>这里提醒一下，做压力测试，只能对自己的网站，或者得到网站站长同意，才能进行测试。</p>
<hr />
<p>© <a href="http://www.iwanna.cn">我想网</a> Akon 所有 , 2010. |
<a href="http://www.iwanna.cn/archives/2010/06/14/3989/">永久链接</a> |
<a href="http://www.iwanna.cn/archives/2010/06/14/3989/#comments">没有评论</a> |
提交到
<a rel="nofollow" target="_blank" href="http://www.google.com/reader/view/feed/http://www.iwanna.cn/archives/2010/06/14/3989/">Google Reader</a>
<a rel="nofollow" target="_blank" href="http://www.xianguo.com/subscribe.php?url=http://www.iwanna.cn/archives/2010/06/14/3989/">鲜果</a>
<a rel="nofollow" target="_blank" href="http://www.zhuaxia.com/add_channel.php?url=http://www.iwanna.cn/archives/2010/06/14/3989/">抓虾</a>
<hr />
</p>
	标签：<a href="http://www.iwanna.cn/topics/develope/test/" title="Test" rel="tag nofollow">Test</a>, <a href="http://www.iwanna.cn/tags/test/" title="Test" rel="tag nofollow">Test</a>, <a href="http://www.iwanna.cn/topics/surf/website/" title="Website" rel="tag nofollow">Website</a>, <a href="http://www.iwanna.cn/tags/website/" title="Website" rel="tag nofollow">Website</a>, <a href="http://www.iwanna.cn/topics/develope/stationmaster/" title="站长工具" rel="tag nofollow">站长工具</a><br />

	<h2 class="related_post">您可能会感兴趣的其他文章</h2>
	<ul class="st-related-posts">
	<li><a href="http://www.iwanna.cn/archives/2010/07/24/4697/" title="10个分析、测试网站加载速度的工具 (2010年07月24日)">10个分析、测试网站加载速度的工具</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/07/13/4502/" title="10个免费的Web压力测试工具 (2010年07月13日)">10个免费的Web压力测试工具</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2009/09/18/2254/" title="高效互联网营销的18种技巧 (2009年09月18日)">高效互联网营销的18种技巧</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/06/29/4248/" title="雅虎发布网站性能监测工具：从用户角度衡量 (2010年06月29日)">雅虎发布网站性能监测工具：从用户角度衡量</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/05/27/3401/" title="陈光锋[访谈]：地方新站如何做运营推广 (2010年05月27日)">陈光锋[访谈]：地方新站如何做运营推广</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2009/12/04/2406/" title="轻设计，让网站灵敏轻便的6个技巧 (2009年12月4日)">轻设计，让网站灵敏轻便的6个技巧</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2009/12/18/2432/" title="轻设计，让网站灵敏轻便的6个技巧 (2009年12月18日)">轻设计，让网站灵敏轻便的6个技巧</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2009/10/15/2314/" title="读写网：即时网络公司100强 (2009年10月15日)">读写网：即时网络公司100强</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2009/06/02/1654/" title="设计项目开始前必须了解客户的9件事 (2009年06月2日)">设计项目开始前必须了解客户的9件事</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2009/08/16/2136/" title="记账网站Mint.Com获得1400万美元投资 (2009年08月16日)">记账网站Mint.Com获得1400万美元投资</a> </li>
</ul>


<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iwanna.cn/archives/2010/06/14/3989/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用户测试工具综述：Usabilla</title>
		<link>http://www.iwanna.cn/archives/2010/06/08/3804/</link>
		<comments>http://www.iwanna.cn/archives/2010/06/08/3804/#comments</comments>
		<pubDate>Tue, 08 Jun 2010 13:56:29 +0000</pubDate>
		<dc:creator>seasun</dc:creator>
				<category><![CDATA[Test]]></category>
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://www.iwanna.cn/?p=3804</guid>
		<description><![CDATA[我们看到了一个新的用户测试工具发展的繁荣时代，这是一个很好的趋势，将预示着在不久的将来有更好的网络体验。今天我们来看一下Usabilla，我和我 的朋友Keri Morgret把它用在了Strike Models网站上，这个网站是用来买建筑遥控战舰产品的。
服务描述：Usabilla 展现你要给测试人员的画面，并且问他们一些问题，他们通过点击或者添加注解在画面上来回答。
你选择问什么问题可以是来自于预设装置列表，也可以自己提供。
你可以提供截屏画面，或者只要把URl输入Usabilla就会为你生成截屏画面。
Usabilla主持测试（它出现在一个覆盖物上）。
不做什么样的服务：Usabilla  不会从他们管理的座谈小组中给你招募用户。相反，他们会给你一些发给测试者的链接，或者提供一些Java程序语言密码放置在你的网站上，邀请用户来参加测 试。
这就是做过标记的截图画面，上面有点（圈）和注解（方框）。


获得见解的价值：在许多案例中是相当高的，也许8.5/10。
下面是一些例子：
1、页眉的图片，我只是选了一个普通的品牌，看起来像是Strike  Models目录的显示器产品。同样的，降低一个产品的图片的运动会看到一些提示性的标签，这个船艇会链接到相关的产品。
2、在页眉图片上面的以网站主题为标准的基本导航菜单是微妙的，并且需要花一些时间去注意的（在Usabilla平均时间为15.8。因 此，一些人建议把它做的大一些，如果有人想把它移动到主页眉图片的上面，这样做是有帮助的。）
然而，当他们被告知寻找产品信息并试着订购时，大多数用户点击菜单目录上的产品标签。
3、一个测试人员说他是一个新闻痴迷者，并希望得到更多的关于战舰模型的信息。这很明显是展现了一个可以变成该领域内容权威的机会，因此可 以建立一个出于优势位置的搜索引擎优化。
4、另一个测试人员希望看到更多的主打产品，和其他用户一些的评价，他们希望寻找关于产品的信息更容易。
5、产品的图片和明暗分布可以经常改进，当他们被这个激发起兴趣并找到更多的关于产品的信息。尤其是行动的目标对于许多用户来说都很感兴 趣，而所有的重点就是要买一个在迷你池塘里开展的战舰。
移动那些不能搬动的产品的图片。
Usabilla的可用性：有一点小讽刺，这里也有一些使用这些工具的小的障碍。
首先，一旦你上传你的图片并开始测试，这并不清晰，你需要点击复选框去接近你想要问的问题。我想我将要去问所有的问题，想去点击活动按钮， 但是当我还没有问题选出来的时候是不行的。
第二，Usabilla不提供座谈小组用户，这意味着你需要自己找人。在这个案例中，我非常幸运的能够依赖Keri’s的联系人，否则这些 都是不确定的。
举个例子，一个可用性客户的目标人群是50岁~70岁早期的女性。我知道很少有女性符合这样的描述，因此招募用户成为一个挑战。
第三，结果用一种方式来展示，这种方式并不直观，同时代替了“肉之谜”导航系统。你需要移动鼠标来阅读方框附近的注解，但一开始你并不知 道，让这些方框不同于圆圈是因为它代表有注解。
同时，所有的注解本身的呈现是在一个很大的空白区域，这就造成了错误的按钮印象，在IE7（或者IE8？）。
Usabilla的美好之处是，他们的支持对于阐明事物非常快而且很有帮助，我在遭受了最初的一些挫折之后就能够理解整个注释。此 外，Usabilla支持告诉我他们致力于使它变得更加直观的再设计，因此希望这些相对小的问题能很快得到解决。
但是座谈小组问题仍然是个问题。
其他方面：获得数据的平均速度在一些案例中是非常有用的。举个例子，一旦Strike  Models的电子商务功能实施（希望有一个适当的再设计），我重新测试了主页看看人们能多快找到产品的详细资料。我猜想这种连接点也会反映在蹦失率上。
另一方面是和目前的很多工具一样，都有正反两个方面。Usabilla依赖于数据点击，而不是视频分享和记录。
最后的结果是你可以快速的回顾某些方面（而你不需要看视频），你可以获得更可靠的观点（假如你招募了足够的用户），哪些起作用了和哪些没有 建立在统计学基础之上。同时，与视频相比，你需要快速浏览并做特殊的标记（一些可用性工具可以做到），你可以回顾特殊的问题答案并集合在一些，进行快速分 析。
结论：Usabilla给可用性专家的工具包里提供了另一个有价值的工具。定性分析师有价值的且有实用 性的，同时它的优势是能更快的获得分析。
最主要的劣势是你需要自己招募测试人员，并且与全方位的视频记录相比，你会获得更少的定性数据。
对更多的综述感兴趣吗？我写了一系列的关于这些工具的综述，从review of UserTesting.com开始。

© 我想网 Akon 所有 , 2010. &#124;
永久链接 &#124;
没有评论 &#124;
提交到
Google Reader
鲜果
抓虾


	标签：Design, Test, Test

	您可能会感兴趣的其他文章
	
	黄金分割在Web设计中的应用 
	高雅的极简设计 
	高品质的网页设计: 实例与技巧 
	轻设计，让网站灵敏轻便的6个技巧 
	转换设计原图 PSD 为 HTML 
	设计良好网页的4项原则 
	设计的延续性 
	设计完美商标图案的45条原则 
	设计从整理开始 
	设计从整理开始 



Feed enhanced by Better Feed from  [...]]]></description>
			<content:encoded><![CDATA[<p>我们看到了一个新的用户测试工具发展的繁荣时代，这是一个很好的趋势，将预示着在不久的将来有更好的网络体验。今天我们来看一下Usabilla，我和我 的朋友Keri Morgret把它用在了Strike Models网站上，这个网站是用来买建筑遥控战舰产品的。</p>
<p>服务描述：Usabilla 展现你要给测试人员的画面，并且问他们一些问题，他们通过点击或者添加注解在画面上来回答。</p>
<p>你选择问什么问题可以是来自于预设装置列表，也可以自己提供。</p>
<p>你可以提供截屏画面，或者只要把URl输入Usabilla就会为你生成截屏画面。</p>
<p>Usabilla主持测试（它出现在一个覆盖物上）。</p>
<p><strong>不做什么样的服务：</strong>Usabilla  不会从他们管理的座谈小组中给你招募用户。相反，他们会给你一些发给测试者的链接，或者提供一些Java程序语言密码放置在你的网站上，邀请用户来参加测 试。</p>
<p>这就是做过标记的截图画面，上面有点（圈）和注解（方框）。<br />
<span id="more-3804"></span><br />
<a href="http://www.20ju.com/images/Usabilla_1.jpg" target="_blank"><img src="http://www.20ju.com/images/Usabilla_1.jpg" alt="" width="432" /></a></p>
<p><strong>获得见解的价值：</strong>在许多案例中是相当高的，也许8.5/10。</p>
<p><strong>下面是一些例子：</strong></p>
<p>1、页眉的图片，我只是选了一个普通的品牌，看起来像是Strike  Models目录的显示器产品。同样的，降低一个产品的图片的运动会看到一些提示性的标签，这个船艇会链接到相关的产品。</p>
<p>2、在页眉图片上面的以网站主题为标准的基本导航菜单是微妙的，并且需要花一些时间去注意的（在Usabilla平均时间为15.8。因 此，一些人建议把它做的大一些，如果有人想把它移动到主页眉图片的上面，这样做是有帮助的。）</p>
<p>然而，当他们被告知寻找产品信息并试着订购时，大多数用户点击菜单目录上的产品标签。</p>
<p>3、一个测试人员说他是一个新闻痴迷者，并希望得到更多的关于战舰模型的信息。这很明显是展现了一个可以变成该领域内容权威的机会，因此可 以建立一个出于优势位置的搜索引擎优化。</p>
<p>4、另一个测试人员希望看到更多的主打产品，和其他用户一些的评价，他们希望寻找关于产品的信息更容易。</p>
<p>5、产品的图片和明暗分布可以经常改进，当他们被这个激发起兴趣并找到更多的关于产品的信息。尤其是行动的目标对于许多用户来说都很感兴 趣，而所有的重点就是要买一个在迷你池塘里开展的战舰。</p>
<p>移动那些不能搬动的产品的图片。</p>
<p>Usabilla的可用性：有一点小讽刺，这里也有一些使用这些工具的小的障碍。</p>
<p>首先，一旦你上传你的图片并开始测试，这并不清晰，你需要点击复选框去接近你想要问的问题。我想我将要去问所有的问题，想去点击活动按钮， 但是当我还没有问题选出来的时候是不行的。</p>
<p>第二，Usabilla不提供座谈小组用户，这意味着你需要自己找人。在这个案例中，我非常幸运的能够依赖Keri’s的联系人，否则这些 都是不确定的。</p>
<p>举个例子，一个可用性客户的目标人群是50岁~70岁早期的女性。我知道很少有女性符合这样的描述，因此招募用户成为一个挑战。</p>
<p>第三，结果用一种方式来展示，这种方式并不直观，同时代替了“肉之谜”导航系统。你需要移动鼠标来阅读方框附近的注解，但一开始你并不知 道，让这些方框不同于圆圈是因为它代表有注解。</p>
<p>同时，所有的注解本身的呈现是在一个很大的空白区域，这就造成了错误的按钮印象，在IE7（或者IE8？）。</p>
<p>Usabilla的美好之处是，他们的支持对于阐明事物非常快而且很有帮助，我在遭受了最初的一些挫折之后就能够理解整个注释。此 外，Usabilla支持告诉我他们致力于使它变得更加直观的再设计，因此希望这些相对小的问题能很快得到解决。</p>
<p>但是座谈小组问题仍然是个问题。</p>
<p>其他方面：获得数据的平均速度在一些案例中是非常有用的。举个例子，一旦Strike  Models的电子商务功能实施（希望有一个适当的再设计），我重新测试了主页看看人们能多快找到产品的详细资料。我猜想这种连接点也会反映在蹦失率上。</p>
<p>另一方面是和目前的很多工具一样，都有正反两个方面。Usabilla依赖于数据点击，而不是视频分享和记录。</p>
<p>最后的结果是你可以快速的回顾某些方面（而你不需要看视频），你可以获得更可靠的观点（假如你招募了足够的用户），哪些起作用了和哪些没有 建立在统计学基础之上。同时，与视频相比，你需要快速浏览并做特殊的标记（一些可用性工具可以做到），你可以回顾特殊的问题答案并集合在一些，进行快速分 析。</p>
<p><strong>结论：</strong>Usabilla给可用性专家的工具包里提供了另一个有价值的工具。定性分析师有价值的且有实用 性的，同时它的优势是能更快的获得分析。</p>
<p>最主要的劣势是你需要自己招募测试人员，并且与全方位的视频记录相比，你会获得更少的定性数据。<br />
对更多的综述感兴趣吗？我写了一系列的关于这些工具的综述，从review of UserTesting.com开始。</p>
<hr />
<p>© <a href="http://www.iwanna.cn">我想网</a> Akon 所有 , 2010. |
<a href="http://www.iwanna.cn/archives/2010/06/08/3804/">永久链接</a> |
<a href="http://www.iwanna.cn/archives/2010/06/08/3804/#comments">没有评论</a> |
提交到
<a rel="nofollow" target="_blank" href="http://www.google.com/reader/view/feed/http://www.iwanna.cn/archives/2010/06/08/3804/">Google Reader</a>
<a rel="nofollow" target="_blank" href="http://www.xianguo.com/subscribe.php?url=http://www.iwanna.cn/archives/2010/06/08/3804/">鲜果</a>
<a rel="nofollow" target="_blank" href="http://www.zhuaxia.com/add_channel.php?url=http://www.iwanna.cn/archives/2010/06/08/3804/">抓虾</a>
<hr />
</p>
	标签：<a href="http://www.iwanna.cn/tags/design/" title="Design" rel="tag nofollow">Design</a>, <a href="http://www.iwanna.cn/topics/develope/test/" title="Test" rel="tag nofollow">Test</a>, <a href="http://www.iwanna.cn/tags/test/" title="Test" rel="tag nofollow">Test</a><br />

	<h2 class="related_post">您可能会感兴趣的其他文章</h2>
	<ul class="st-related-posts">
	<li><a href="http://www.iwanna.cn/archives/2009/09/04/2211/" title="黄金分割在Web设计中的应用 (2009年09月4日)">黄金分割在Web设计中的应用</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/05/26/3367/" title="高雅的极简设计 (2010年05月26日)">高雅的极简设计</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2009/05/18/1096/" title="高品质的网页设计: 实例与技巧 (2009年05月18日)">高品质的网页设计: 实例与技巧</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2009/12/18/2432/" title="轻设计，让网站灵敏轻便的6个技巧 (2009年12月18日)">轻设计，让网站灵敏轻便的6个技巧</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2009/07/05/1923/" title="转换设计原图 PSD 为 HTML (2009年07月5日)">转换设计原图 PSD 为 HTML</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2009/04/22/784/" title="设计良好网页的4项原则 (2009年04月22日)">设计良好网页的4项原则</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/06/13/3949/" title="设计的延续性 (2010年06月13日)">设计的延续性</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2009/04/30/903/" title="设计完美商标图案的45条原则 (2009年04月30日)">设计完美商标图案的45条原则</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/06/07/3802/" title="设计从整理开始 (2010年06月7日)">设计从整理开始</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/06/08/3806/" title="设计从整理开始 (2010年06月8日)">设计从整理开始</a> </li>
</ul>


<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iwanna.cn/archives/2010/06/08/3804/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>8个实用的 JavaScript 测试及效验工具</title>
		<link>http://www.iwanna.cn/archives/2010/04/15/2723/</link>
		<comments>http://www.iwanna.cn/archives/2010/04/15/2723/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 14:47:35 +0000</pubDate>
		<dc:creator>seasun</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Test]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Translate]]></category>
		<category><![CDATA[翻译]]></category>

		<guid isPermaLink="false">http://www.iwanna.cn/?p=2723</guid>
		<description><![CDATA[JavaScript 是一款强大的广泛运用于现代Web站点及应用的脚本语言。作为一个技艺精湛的 Web 开发者，掌握JavaScript可以增强用户的使用体验，提供交互及富客户端等功能。
尽管JavaScript的语法非常简单，但对于写程序而言仍然是困难重重，就是因为它的运行环境：基于Web浏览器。
以下您可以看到收集的8个实用的 JavaScript 测试及效验工具，它们都可以在不同环境下进行单元测试及校验测试您的脚本。
JSLint
JSLint是基于Web的验证JavaScript错误代码的工具。它拥有的功能及特定的设置来使用您的需求，自定义你的验证算法。
JsUnit
JsUnit是一款在客户端(在浏览时)的单元测试JavaScript框架。对JavaScript而言，JUnit就像是它的一个端口。当然它也可以在多个浏览器、多个机器的不同操作系统中自动运行。它的发展始于2001年1月。
J3Unit
J3Unit是一个面向对象的JavaScript单元测试框架。J3Unit在网页浏览器中直接运行JavaScript的测试，也可以自动运行JUnit 和 Jetty。J3Unit是建立在JUint和Script.aculo.us的基础之上来更好地实现自动运行JavaScript 单元测试。面向对象的JavaScript单元测试是由Script.aculo.us的Test.Unit.Runner对象编写的，基于prototype JavaScript库。
Crosscheck
Crosscheck是一款开源的校验浏览器中的JavaScript测试框架。它可以帮助您在不同的浏览器中，诸如：Internet   Explorer、Firefox等，而不需要一一安装他们来确认您的代码是否正确。您唯一需要的是必须要有Java虚拟机环境。
YUI Test
YUI测试是一款基于浏览器，提供解决方案的测试框架。使用YUI，您可以方便地添加单元测试，寻求JavaScript解决方案。它是由Yahoo! UI Library开发的一个JavaScriptMVC测试插件，能够让你模范大部分DOM动作，比如写，拖拽，比如模范AJAX响应，并且能够使用断言 (assertions)。它能够象函数一样运行，并且能够在不同的console窗口进行集成测试。虽然它不是在任何 xUnit 框架基础上开发而来，但YUI Test仍然有很多nUnit 和 JUnit的所具有的特性。（ While not a direct port from any specific xUnit  framework, YUI Test does derive some characteristics from nUnit and  JUnit. 这段翻译得不好，但相信大致意思是对的）。
Regular  Expression Tool
Regular Expression Tool（正则表达式工具）是一款在线工具，用来测试您的正则表达式代码是否正确。当您想快速测试各种文本例子的正则表达式时非常得心应手。
JSLitmus
JSLitmus是款轻量级的工具，用来测试JavaScript执行性能情况，采用直观的API。
JavaScript  Regular Expression Tester
这块便利的应用程序是在浏览器中使用JavaScript来测试JavaScript正则表达式的。操作界面跟其他正则表达式测试工具无异，不同的是，它测试的是JavaScript正则表达式在JavaScript中的性能情况。

© 我想网 [...]]]></description>
			<content:encoded><![CDATA[<p><strong><a href="http://www.iwanna.cn/tags/javascript/" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with JavaScript">JavaScript</a></strong> 是一款强大的广泛运用于现代Web站点及应用的脚本语言。作为一个技艺精湛的<strong> Web 开发者</strong>，掌握<a href="http://www.iwanna.cn/tags/javascript/" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with JavaScript">JavaScript</a>可以增强用户的使用体验，提供交互及富客户端等功能。</p>
<p>尽管<a href="http://www.iwanna.cn/tags/javascript/" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with JavaScript">JavaScript</a>的语法非常简单，但对于写程序而言仍然是困难重重，就是因为它的运行环境：基于Web浏览器。</p>
<p>以下您可以看到收集的<strong><a title="我想网" href="http://www.iwanna.cn/archives/2010/04/15/2723/">8个实用的 JavaScript 测试及效验工具</a></strong>，它们都可以在不同环境下进行单元测试及校验测试您的脚本。</p>
<h2><a title="jslint" href="http://jslint.com/" target="_blank">JSLint</a></h2>
<p>JSLint是基于Web的验证<a href="http://www.iwanna.cn/tags/javascript/" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with JavaScript">JavaScript</a>错误代码的工具。它拥有的功能及特定的设置来使用您的需求，自定义你的验证算法。</p>
<h2><a title="jsunit" href="http://www.jsunit.net/" target="_blank">JsUnit</a></h2>
<p>JsUnit是一款在客户端(在浏览时)的单元测试<a href="http://www.iwanna.cn/tags/javascript/" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with JavaScript">JavaScript</a>框架。对<a href="http://www.iwanna.cn/tags/javascript/" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with JavaScript">JavaScript</a>而言，<a href="http://www.junit.org/" target="_blank">JUnit</a>就像是它的一个端口。当然它也可以在多个浏览器、多个机器的不同操作系统中自动运行。它的发展始于2001年1月。</p>
<h2><a title="j3unit" href="http://j3unit.sourceforge.net/" target="_blank">J3Unit</a></h2>
<p>J3Unit是一个面向对象的<a href="http://www.iwanna.cn/tags/javascript/" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with JavaScript">JavaScript</a>单元测试框架。J3Unit在网页浏览器中直接运行<a href="http://www.iwanna.cn/tags/javascript/" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with JavaScript">JavaScript</a>的测试，也可以自动运行JUnit 和 Jetty。J3Unit是建立在JUint和Script.aculo.us的基础之上来更好地实现自动运行<a href="http://www.iwanna.cn/tags/javascript/" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with JavaScript">JavaScript</a> 单元测试。面向对象的<a href="http://www.iwanna.cn/tags/javascript/" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with JavaScript">JavaScript</a>单元测试是由Script.aculo.us的Test.Unit.Runner对象编写的，基于prototype <a href="http://www.iwanna.cn/tags/javascript/" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with JavaScript">JavaScript</a>库。</p>
<h2><a title="crosscheck" href="http://www.thefrontside.net/crosscheck" target="_blank">Crosscheck</a></h2>
<p>Crosscheck是一款开源的校验浏览器中的<a href="http://www.iwanna.cn/tags/javascript/" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with JavaScript">JavaScript</a>测试框架。它可以帮助您在不同的浏览器中，诸如：<a href="http://www.microsoft.com/windows/ie/ie6/default.mspx" target="_blank">Internet   Explorer</a>、<a href="http://www.mozilla.com/firefox" target="_blank">Firefox</a>等，而不需要一一安装他们来确认您的代码是否正确。您唯一需要的是必须要有Java虚拟机环境。</p>
<h2><a title="yuitest" href="http://developer.yahoo.com/yui/yuitest/#start" target="_blank">YUI Test</a></h2>
<p>YUI测试是一款基于浏览器，提供解决方案的测试框架。使用YUI，您可以方便地添加单元测试，寻求<a href="http://www.iwanna.cn/tags/javascript/" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with JavaScript">JavaScript</a>解决方案。它是由Yahoo! UI Library开发的一个JavaScriptMVC测试插件，能够让你模范大部分DOM动作，比如写，拖拽，比如模范AJAX响应，并且能够使用断言 (assertions)。它能够象函数一样运行，并且能够在不同的console窗口进行集成测试。虽然它不是在任何 xUnit 框架基础上开发而来，但YUI Test仍然有很多nUnit 和 JUnit的所具有的特性。（ While not a direct port from any specific xUnit  framework, YUI Test does derive some characteristics from nUnit and  JUnit. 这段翻译得不好，但相信大致意思是对的）。</p>
<h2><a title="regexp" href="http://erik.eae.net/playground/regexp/regexp.html" target="_blank">Regular  Expression Tool</a></h2>
<p>Regular Expression <a href="http://www.iwanna.cn/tags/tool/" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with Tool">Tool</a>（正则表达式工具）是一款在线工具，用来测试您的正则表达式代码是否正确。当您想快速测试各种文本例子的正则表达式时非常得心应手。</p>
<h2><a title="JSLitmus" href="http://broofa.com/Tools/JSLitmus/" target="_blank">JSLitmus</a></h2>
<p>JSLitmus是款轻量级的工具，用来测试<a href="http://www.iwanna.cn/tags/javascript/" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with JavaScript">JavaScript</a>执行性能情况，采用直观的API。</p>
<h2><a title="regex2" href="http://www.codeproject.com/KB/scripting/regex2.aspx" target="_blank">JavaScript  Regular Expression Tester</a></h2>
<p>这块便利的应用程序是在浏览器中使用<a href="http://www.iwanna.cn/tags/javascript/" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with JavaScript">JavaScript</a>来测试<a href="http://www.iwanna.cn/tags/javascript/" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with JavaScript">JavaScript</a>正则表达式的。操作界面跟其他正则表达式测试工具无异，不同的是，它测试的是<a href="http://www.iwanna.cn/tags/javascript/" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with JavaScript">JavaScript</a>正则表达式在<a href="http://www.iwanna.cn/tags/javascript/" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with JavaScript">JavaScript</a>中的性能情况。</p>
<hr />
<p>© <a href="http://www.iwanna.cn">我想网</a> Akon 所有 , 2010. |
<a href="http://www.iwanna.cn/archives/2010/04/15/2723/">永久链接</a> |
<a href="http://www.iwanna.cn/archives/2010/04/15/2723/#comments">没有评论</a> |
提交到
<a rel="nofollow" target="_blank" href="http://www.google.com/reader/view/feed/http://www.iwanna.cn/archives/2010/04/15/2723/">Google Reader</a>
<a rel="nofollow" target="_blank" href="http://www.xianguo.com/subscribe.php?url=http://www.iwanna.cn/archives/2010/04/15/2723/">鲜果</a>
<a rel="nofollow" target="_blank" href="http://www.zhuaxia.com/add_channel.php?url=http://www.iwanna.cn/archives/2010/04/15/2723/">抓虾</a>
<hr />
</p>
	标签：<a href="http://www.iwanna.cn/topics/ui/javascript/" title="JavaScript" rel="tag nofollow">JavaScript</a>, <a href="http://www.iwanna.cn/tags/javascript/" title="JavaScript" rel="tag nofollow">JavaScript</a>, <a href="http://www.iwanna.cn/topics/develope/test/" title="Test" rel="tag nofollow">Test</a>, <a href="http://www.iwanna.cn/tags/test/" title="Test" rel="tag nofollow">Test</a>, <a href="http://www.iwanna.cn/topics/software/tool/" title="Tool" rel="tag nofollow">Tool</a>, <a href="http://www.iwanna.cn/tags/tool/" title="Tool" rel="tag nofollow">Tool</a>, <a href="http://www.iwanna.cn/tags/translate/" title="Translate" rel="tag nofollow">Translate</a>, <a href="http://www.iwanna.cn/topics/iwanna/translate-iwanna/" title="Translate" rel="tag nofollow">Translate</a>, <a href="http://www.iwanna.cn/tags/translates/" title="翻译" rel="tag nofollow">翻译</a><br />

	<h2 class="related_post">您可能会感兴趣的其他文章</h2>
	<ul class="st-related-posts">
	<li><a href="http://www.iwanna.cn/archives/2010/03/05/2533/" title="5款免费的制作移动版本的网站的工具 (2010年03月5日)">5款免费的制作移动版本的网站的工具</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/04/20/2798/" title="18个有效的域名工具及其生成器 (2010年04月20日)">18个有效的域名工具及其生成器</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/05/17/3115/" title="11 个优秀的制作移动友好网站的解决方案 (2010年05月17日)">11 个优秀的制作移动友好网站的解决方案</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/07/24/4697/" title="10个分析、测试网站加载速度的工具 (2010年07月24日)">10个分析、测试网站加载速度的工具</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/03/20/2597/" title="10 个实用的网站分析工具 (2010年03月20日)">10 个实用的网站分析工具</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2009/07/05/1923/" title="转换设计原图 PSD 为 HTML (2009年07月5日)">转换设计原图 PSD 为 HTML</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2009/06/17/1828/" title="用jQuery和CSS构建下拉菜单 (2009年06月17日)">用jQuery和CSS构建下拉菜单</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/05/22/3294/" title="深色调社交图标：免费且高质量的社交媒体图标集 (2010年05月22日)">深色调社交图标：免费且高质量的社交媒体图标集</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/05/18/3210/" title="如何正确购买一个已经存在的域名(SEO友好) (2010年05月18日)">如何正确购买一个已经存在的域名(SEO友好)</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2009/05/27/1176/" title="如何备份所有的浏览器 &#8211; 5 个小贴士(Google Chrome, Firefox, Safari, Internet Explorer, and Opera) (2009年05月27日)">如何备份所有的浏览器 &#8211; 5 个小贴士(Google Chrome, Firefox, Safari, Internet Explorer, and Opera)</a> </li>
</ul>


<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iwanna.cn/archives/2010/04/15/2723/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>单元测试：简介</title>
		<link>http://www.iwanna.cn/archives/2009/06/29/1883/</link>
		<comments>http://www.iwanna.cn/archives/2009/06/29/1883/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 04:53:03 +0000</pubDate>
		<dc:creator>seasun</dc:creator>
				<category><![CDATA[Test]]></category>

		<guid isPermaLink="false">http://www.iwanna.cn/?p=1883</guid>
		<description><![CDATA[简单地说，单元测试是用代码测试代码。不同的语言有不同的库，提供了多种测试工具。PHP有PHPUnit、SimpleTest；Java有JUnit；.NET框架则有NUnit等等。]]></description>
			<content:encoded><![CDATA[<p><strong>什么是单元测试</strong></p>
<p>如果你对单元测试已经有概念了，就请跳过本章。</p>
<p>简单地说，单元测试是用代码测试代码。不同的语言有不同的库，提供了多种测试工具。PHP有PHPUnit、SimpleTest；Java有JUnit；.NET框架则有NUnit等等。</p>
<p>使用这些工具编写测试代码后，你就可以非常方便地进行自动、重复的单元测试。通过编写单元测试代码，你可以保证所写的代码能够得到预期的运行结果。即使日后代码要做修改，只要重新运行单元测试并获得通过，则能说明新的代码是正确的。</p>
<p><a href="http://en.wikipedia.org/wiki/Unit_testing" target="_blank">Wikipedia上的一篇文章</a>对单元测试作了非常好的定义，如果想深入了解的话可以去阅读。</p>
<p><strong>何时使用单元测试</strong></p>
<p>简单的回答是：永远。<br />
<span id="more-1883"></span><br />
稍长一点的回答是：这取决于项目的复杂度和生命周期。</p>
<p>如果是一个非常小型的项目，那花在编写单元测试上的时间更应该用在写项目上。因为如果项目比较简单，就可以在编写代码的时候进行手工测试，这应该是比较容易的。</p>
<p>如果项目的生命周期较短，你肯定也不愿花大把时间用来写单元测试。因为生命周期较短的项目不会进行较大的改动，也不需要进行较多维护。这样一来，单元测试的价值就体现不了了。</p>
<p>即便如此，如果你确实有时间和精力去为小型项目写单元测试的话，也可能是个不错的主意。这主要看实际情况如何，但是我上面提出的两种情况还是有代表性的。</p>
<p><strong>写好单元测试</strong></p>
<p>单元测试的目的是测试一段代码的运行结果是否正确。这段代码通常是某个类的某个方法。</p>
<p>通常来说应该给每个行为编写一个测试：给出正确的参数时的运行结果、非法参数的运行结果，对这两点的测试是一定要写的。根据实际情况，也许需要编写更多的测试。</p>
<p>代码覆盖率是用来衡量单元测试好坏的常用指标。也就是说，有多少代码是被测试到的，各个分支结构和代码块是否都被运行过，各个函数是否都被调用过等等。</p>
<p>但是，代码覆盖率这个指标有时也会产生误导，因为即使全部的代码都被测试到了，也未必说明这些代码所得到的运行结果是正确的。</p>
<p>下周我会给你一些例子来说明这个问题。</p>
<p><strong>小结</strong></p>
<p>单元测试可以很好地提高代码质量，包括正确性以及模块化程度。因为，它会促使你写出可重用的、灵活的代码，否则将很难进行测试。</p>
<p>下周我会举具体的例子来说明如何进行代码测试，敬请期待。</p>
<hr />
<p>© <a href="http://www.iwanna.cn">我想网</a> Akon 所有 , 2009. |
<a href="http://www.iwanna.cn/archives/2009/06/29/1883/">永久链接</a> |
<a href="http://www.iwanna.cn/archives/2009/06/29/1883/#comments">没有评论</a> |
提交到
<a rel="nofollow" target="_blank" href="http://www.google.com/reader/view/feed/http://www.iwanna.cn/archives/2009/06/29/1883/">Google Reader</a>
<a rel="nofollow" target="_blank" href="http://www.xianguo.com/subscribe.php?url=http://www.iwanna.cn/archives/2009/06/29/1883/">鲜果</a>
<a rel="nofollow" target="_blank" href="http://www.zhuaxia.com/add_channel.php?url=http://www.iwanna.cn/archives/2009/06/29/1883/">抓虾</a>
<hr />
</p>
	标签：<a href="http://www.iwanna.cn/topics/develope/test/" title="Test" rel="tag nofollow">Test</a>, <a href="http://www.iwanna.cn/tags/test/" title="Test" rel="tag nofollow">Test</a><br />

	<h2 class="related_post">您可能会感兴趣的其他文章</h2>
	<ul class="st-related-posts">
	<li><a href="http://www.iwanna.cn/archives/2010/06/08/3804/" title="用户测试工具综述：Usabilla (2010年06月8日)">用户测试工具综述：Usabilla</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2009/06/12/1768/" title="开源自动测试框架Tellurium (2009年06月12日)">开源自动测试框架Tellurium</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/07/13/4500/" title="如何在低速率网络中测试 Web 应用 (2010年07月13日)">如何在低速率网络中测试 Web 应用</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/06/14/3989/" title="在线评测一下你的网站负荷能力 (2010年06月14日)">在线评测一下你的网站负荷能力</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2009/04/09/296/" title="JsUnit测试JavaScript (2009年04月9日)">JsUnit测试JavaScript</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/04/15/2723/" title="8个实用的 JavaScript 测试及效验工具 (2010年04月15日)">8个实用的 JavaScript 测试及效验工具</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/07/24/4697/" title="10个分析、测试网站加载速度的工具 (2010年07月24日)">10个分析、测试网站加载速度的工具</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/07/13/4502/" title="10个免费的Web压力测试工具 (2010年07月13日)">10个免费的Web压力测试工具</a> </li>
</ul>


<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iwanna.cn/archives/2009/06/29/1883/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>开源自动测试框架Tellurium</title>
		<link>http://www.iwanna.cn/archives/2009/06/12/1768/</link>
		<comments>http://www.iwanna.cn/archives/2009/06/12/1768/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 14:01:49 +0000</pubDate>
		<dc:creator>seasun</dc:creator>
				<category><![CDATA[Test]]></category>

		<guid isPermaLink="false">http://www.iwanna.cn/?p=1768</guid>
		<description><![CDATA[Tellurium自动测试框架是一款针对web应用、基于UI模块的自动测试平台。UI模块是由一组复合的UI对象以嵌套的形式组成，比如，Google的搜索UI模块可以表示成：
ui.Container(uid: "GoogleSearchModule", clocator: [tag: "td"], group: "true"){
   InputBox(uid: "Input", clocator: [title: "Google Search"])
   SubmitButton(uid: "Search", clocator: [name: "btnG", value: "Google Search"])
   SubmitButton(uid: "ImFeelingLucky", clocator: [value: "I'm Feeling Lucky"])
}

Tellurium框架还定义了一套全新的领域特定语言来进行web测试，比如对于Google搜索模块，你可以使用下面的DSL来完成一次搜索测试：
type "GoogleSearchModule.Input", "Tellurium test"
click "GoogleSearchModule.Search"
waitForPageToLoad 30000
目前Tellurium已经发布0.6.0版本，InfoQ中文站就Tellurium的方方面面，特地邮件采访了Tellurium的创始人方剑先生：
1、请介绍一下您自己，以及所从事的工作？
我的名字是方剑，曾经在上海读书和工作多年。2000年在美国佐治亚理工（Georgia Institute of Technology）求学。毕业后在一家美国公司做软件开发工作，从事企业级应用（Enterprise Applications）开发，主要负责服务器端框架的设计和开发，商业应用服务（Business Services）的开发, 和一些软件规范的制定。此外，我还有很强的人工智能和计算机网络方面的研究背景。
2、您开始做Tellurium这样一个自动化测试框架，是基于怎样的考虑呢？我看到有特色的两点是使用UI module-based这样的描述块来定义待测的UI，以及使用DSL来表述测试代码，还有哪些与以往框架不同的设计思想，缘起是什么呢？
在2007年，我们公司开始注意到Selenium测试框架。由于我们用敏捷开发方法（Agile development），在Scrum队伍中，每个人的角色开始变得多样性了。我有个工作（Task）就是用Selenium去测试我们的一个应用程序 （是用Dojo Javascript框架写的）。应该说在当时，Selenium是一个开创性的框架，如果用他们的复制和重播模式（record and replay）很容易产生测试脚本。但一旦我开始用Selenium，我发现它还是有一些缺点和不便之处。主要测试脚本是对代码的更新很脆弱 （Fragile）。 但是在一个敏捷开发的环境下，一般都有阶段性的用户接受测试（User Acceptance Test），由于程序一直更新，Selenium测试脚本的维护就变成一个很头痛的问题。而且，对于很多企业级应用，复制和重播模式本身就不太适用，比喻 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://code.google.com/p/aost/">Tellurium自动测试框架</a>是一款针对web应用、基于UI模块的自动测试平台。UI模块是由一组复合的UI对象以嵌套的形式组成，比如，Google的搜索UI模块可以表示成：</p>
<pre>ui.Container(uid: "GoogleSearchModule", clocator: [tag: "td"], group: "true"){
   InputBox(uid: "Input", clocator: [title: "Google Search"])
   SubmitButton(uid: "Search", clocator: [name: "btnG", value: "Google Search"])
   SubmitButton(uid: "ImFeelingLucky", clocator: [value: "I'm Feeling Lucky"])
}</pre>
<p><span id="more-1768"></span><br />
Tellurium框架还定义了一套全新的领域特定语言来进行web测试，比如对于Google搜索模块，你可以使用下面的DSL来完成一次搜索测试：</p>
<pre>type "GoogleSearchModule.Input", "Tellurium test"
click "GoogleSearchModule.Search"
waitForPageToLoad 30000</pre>
<p>目前Tellurium已经发布0.6.0版本，InfoQ中文站就Tellurium的方方面面，特地邮件采访了Tellurium的创始人方剑先生：</p>
<p><strong>1、请介绍一下您自己，以及所从事的工作？</strong></p>
<blockquote><p>我的名字是方剑，曾经在上海读书和工作多年。2000年在美国佐治亚理工（Georgia Institute of Technology）求学。毕业后在一家美国公司做软件开发工作，从事企业级应用（Enterprise Applications）开发，主要负责服务器端框架的设计和开发，商业应用服务（Business Services）的开发, 和一些软件规范的制定。此外，我还有很强的人工智能和计算机网络方面的研究背景。</p></blockquote>
<p><strong>2、您开始做Tellurium这样一个自动化测试框架，是基于怎样的考虑呢？我看到有特色的两点是使用UI module-based这样的描述块来定义待测的UI，以及使用DSL来表述测试代码，还有哪些与以往框架不同的设计思想，缘起是什么呢？</strong></p>
<blockquote><p>在2007年，我们公司开始注意到Selenium测试框架。由于我们用敏捷开发方法（Agile development），在Scrum队伍中，每个人的角色开始变得多样性了。我有个工作（Task）就是用Selenium去测试我们的一个应用程序 （是用Dojo <a href="http://www.iwanna.cn/tags/javascript/" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with JavaScript">Javascript</a>框架写的）。应该说在当时，Selenium是一个开创性的框架，如果用他们的复制和重播模式（record and replay）很容易产生测试脚本。但一旦我开始用Selenium，我发现它还是有一些缺点和不便之处。主要测试脚本是对代码的更新很脆弱 （Fragile）。 但是在一个敏捷开发的环境下，一般都有阶段性的用户接受测试（User Acceptance Test），由于程序一直更新，Selenium测试脚本的维护就变成一个很头痛的问题。而且，对于很多企业级应用，复制和重播模式本身就不太适用，比喻 我们有很多数据格（Data Grid），它的内容本身就是动态的。其他的问题包括Selenium测试脚本不是结构化的，你可以看到处有XPath，这更增加了维护的困难。因此，我 们决定开发一个在Selenium之上的框架来解决这些问题。我做的第一个版本是通过Spring框架和物体工厂（Object Factory）来产生UI元素（Element），使得框架能把UI元素的表达和测试代码分开，自动处理<a href="http://www.iwanna.cn/tags/javascript/" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with JavaScript">Javascript</a>事件，并在一定程度上能处 理动态网页内容。</p>
<p>由于这个框架用XML来配置UI元素，使用起来并不是很方便。在2008年，我用Groovy重写了整个框架并变成一个开源项目（open source project)。新的版本主要有三个大的改变。首先是采用UI Module（UI模块）描述块来定义待测的UI。这样做的好处是系统自动生成运行时的Locator，即使你改变了其中的一些元素，框架本身会生产新的 Locator来适应这种改变。而且框架侧重一个集合的元素，而不是单个元素，这样使得我们可以利用元素之间的关系来帮助我们定位他们在DOM中的位置。 此外，这样也增加了重用性，比如，我们可以定义一些Tellurium Widget，在你的测试代码中可以直接定义这个Widget，而不需要重新定义一个个的单个元素。第二个大的变化是用DSL来写测试代码。这样增加了表 达性使得用户很容易写和维护测试代码。Tellurium测试代码可以用Java, Groovy, 或纯DSL脚本来写。Tellurium本身也支持JUnit和TestNG测试框架。另一个大的变化是开始用UI模板（UI templates）来表述动态网页内容，例如数据格（Data Grid）。这样使得Ajax应用程序的测试变得可行和容易。</p></blockquote>
<p><strong>3、 Tellurium主要有那些子项目构成？</strong></p>
<blockquote><p>Tellurium主要是由Tellurium Core, Tellurium Engine, Tellurium Widget Extensions, 和Tellurium UI Module Plugin（TrUMP）子项目构成。Tellurium Core主要是处理DSL和动态生成Locator. Tellurium Engine是测试驱动模块，目前还是利用Selenium Core. Tellurium Widget Extensions包括一些DOJO和ExtJS <a href="http://www.iwanna.cn/tags/javascript/" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with JavaScript">Javascript</a>框架的可重用Widget模块。这些Widget被编译成一个jar文件方便用户调用。TrUMP是一个Firefox plugin来自动生成UI Module。</p>
<p>另外，Tellurium还提供两个参考子项目（Reference Projects），分别为JUnit和TestNG项目，来给用户示范如何创建Tellurium测试项目和如何使用Tellurium的各种功能。</p>
<p>除此之外，Tellurium还提供了Tellurium Maven Archetypes，使得用户可以用一个Maven命令就可以创建自己的Tellurium测试项目。</p></blockquote>
<p><strong>4、介绍一下Tellurium的代码贡献者们吧？</strong></p>
<blockquote><p>我主要是负责Tellurium的整体设计和很大一部分的代码编程。除我之外，现在还有四个来自美国和英国的队友（team members）。Vivek Mongolu主要负责TrUMP的UI设计和实现。Matt Senter主要负责Maven支持，包括代码的编译，发布，和Maven Repository的维护。Haroon Rasheed参加了Tellurium参考项目（Tellurium Reference Projects）的开发，Selenium Grid的支持和其他的维护工作。Mikhail Koryak参于了TrUMP的开发工作，他是jQuery方面的专家，负责Tellurium的jQuery支持。现在参与Tellurium Engine的开发。</p></blockquote>
<p><strong>5、你了解在自动化测试工具这个领域，有着哪些和Tellurium类似的竞争对手吗？比如ThoughtWorks的Twist？与它们相比，Tellurium的优势在什么地方？有什么劣势吗？ </strong></p>
<blockquote><p>Tellurium脱胎于Selenium,它的主要竞争对手还是Selenium, 毕竟Selenium已经推广好几年了。要用户用一个新的框架是要花一定的时间的。此外Canoo WebTest也是一个比较流行的网页测试框架（Framework）。但是Tellurium还是有它本身的优势的，如UI Module的概念，鲁棒性好，可重用性好，表达性好（Expressiveness）。用Tellurium写的测试代码的结构性好，比较容易维护。</p>
<p>毕竟Tellurium还是一个新的框架，到现在只有一年多的开发时间。有些特色还有待成熟。此外，Tellurium要用到Groovy动态语言，尽管用户并不一定需要了解Groovy才可用Tellurium，但由于Groovy相对比较新，所以不少人还是有疑豫的。</p>
<p>ThoughtWorks的Twist基本上是Selenium + GSpec, 就是在Selenium之上增加了行为测试（Behavior Driven Test）的DSL。其实我很早就考虑到对行为测试的支持，但精力有限，Tellurium目前还没有这方面的实现。将来会增加的，可以和EasyB框架 结合来支持行为测试，或直接实现对行为测试的支持。</p></blockquote>
<p><strong>6、现在Tellurium的应用情况是怎样的？来自使用者的反响如何？</strong></p>
<blockquote><p>现在已经有不少Tellurium用户，主要来自美国，印度和欧洲。由于Tellurium本身的特色，如易用，可维护性好，新 的功能如对jQuery Selector的支持，使用者的反应还不错。甚至有的用户在自己的公司里给同事作Tellurium的培训。当然，Tellurium还很年青，而且前 一段时间由于全球性经济危机的影响，我们对Tellurium的推广还做得很不够。以后会加大对Tellurium的推广。</p></blockquote>
<p><strong>7、Tellurium在社区采用了哪些方式和开发者们进行交互呢？</strong></p>
<blockquote><p>我们有自己的用户组Tellurium user group, 用户提出问题往往能很快地得到解答。我们也有LinkedIn用户组让用户之间能更好地交流。此外我们还鼓励用户参加Tellurium的设计讨论和推 广。我们会每年从用户中推选出一个最活跃用户（most active user）和一个最有价值用户（most valuable user）。Tellurium将来会设推广队（Evangelism Team），如果某人对Tellurium做了很多推广工作，他／她也可以成为Tellurium正式成员（team member）。</p></blockquote>
<p><strong>8、Tellurium未来的发展有怎样的规划吗？有计划推出中文的社区及文档吗？</strong></p>
<blockquote><p>尽管Tellurium和Selenium在概念上有很大的不同，一直到Tellurium 0.6.0, 我们还是依赖Selenium Core作为底层的测试驱动Engine. Tellurium 0.7.0将成为Tellurium发展史上的一个重要里程碑，我们将开发自己的测试驱动Engine使得Tellurium能更好，更有效地支持UI Module，同时可以进行UI Module的缓存（Caching）以增加其可用性和提高测试速度。并可对UI Module进行部分匹配以增加其鲁棒性。在新的Tellurium Engine的支持下，Tellurium widget将变得更容易，更实用，和更有效。其他的发展规划包括TrUMP的改进，行为测试（Behavior Driven Test）的支持，功能测试（functional test）的增强支持, 和IDE的支持。</p>
<p>毕竟我来自中国，当然希望得到更多的来自自己国家的用户的参与和支持。现在我们已经开通中文社区和文档项目，会有相关的中文文档逐渐添加进来，我们也热烈欢迎更多国内的开发者能加入进来，帮助支持和推广Tellurium，谢谢。</p></blockquote>
<p><strong>9、能给国内的用户一个快速的开始吗？怎么立刻感受到Tellurium带来的好处？</strong></p>
<blockquote><p>我们提供了一份<a href="http://code.google.com/p/telluriumdoc/wiki/TelluriumQuickStart">中文版的Tellurium QuickStart</a>，还有一个短小的演示：<a href="http://code.google.com/p/aost/wiki/TenMinutesToTellurium">十分钟感受Tellurium</a>（10 minutes to Tellurium）。它包括利用Tellurium Maven archetype去建立一个新的Tellurium测试项目，再用 Tellurium Firefox plugin TrUMP去自动生成一个UI Module，然后再写自己的Tellurium测试代码。</p>
<p>如果用户不熟悉Maven, 他可以下载<a href="http://code.google.com/p/aost/wiki/ReferenceProjectGuide">Tellurium参考项目</a>（Tellurium Reference Project）。这个项目是我们用来测试Tellurium项目网页的。包括了各种例子，可以直接运行。</p></blockquote>
<p>更多有关Tellurium的信息，请参考DZone上的<a href="http://www.dzone.com/links/search.html?query=tellurium&amp;x=0&amp;y=0">相关资料</a>和Tellurium的<a href="http://code.google.com/p/aost/w/list">Wiki</a>。敬请期待Tellurium在InfoQ中文站的更多技术文章。</p>
<hr />
<p>© <a href="http://www.iwanna.cn">我想网</a> Akon 所有 , 2009. |
<a href="http://www.iwanna.cn/archives/2009/06/12/1768/">永久链接</a> |
<a href="http://www.iwanna.cn/archives/2009/06/12/1768/#comments">没有评论</a> |
提交到
<a rel="nofollow" target="_blank" href="http://www.google.com/reader/view/feed/http://www.iwanna.cn/archives/2009/06/12/1768/">Google Reader</a>
<a rel="nofollow" target="_blank" href="http://www.xianguo.com/subscribe.php?url=http://www.iwanna.cn/archives/2009/06/12/1768/">鲜果</a>
<a rel="nofollow" target="_blank" href="http://www.zhuaxia.com/add_channel.php?url=http://www.iwanna.cn/archives/2009/06/12/1768/">抓虾</a>
<hr />
</p>
	标签：<a href="http://www.iwanna.cn/topics/develope/test/" title="Test" rel="tag nofollow">Test</a>, <a href="http://www.iwanna.cn/tags/test/" title="Test" rel="tag nofollow">Test</a><br />

	<h2 class="related_post">您可能会感兴趣的其他文章</h2>
	<ul class="st-related-posts">
	<li><a href="http://www.iwanna.cn/archives/2010/06/08/3804/" title="用户测试工具综述：Usabilla (2010年06月8日)">用户测试工具综述：Usabilla</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/07/13/4500/" title="如何在低速率网络中测试 Web 应用 (2010年07月13日)">如何在低速率网络中测试 Web 应用</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/06/14/3989/" title="在线评测一下你的网站负荷能力 (2010年06月14日)">在线评测一下你的网站负荷能力</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2009/06/29/1883/" title="单元测试：简介 (2009年06月29日)">单元测试：简介</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2009/04/09/296/" title="JsUnit测试JavaScript (2009年04月9日)">JsUnit测试JavaScript</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/04/15/2723/" title="8个实用的 JavaScript 测试及效验工具 (2010年04月15日)">8个实用的 JavaScript 测试及效验工具</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/07/24/4697/" title="10个分析、测试网站加载速度的工具 (2010年07月24日)">10个分析、测试网站加载速度的工具</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/07/13/4502/" title="10个免费的Web压力测试工具 (2010年07月13日)">10个免费的Web压力测试工具</a> </li>
</ul>


<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iwanna.cn/archives/2009/06/12/1768/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JsUnit测试JavaScript</title>
		<link>http://www.iwanna.cn/archives/2009/04/09/296/</link>
		<comments>http://www.iwanna.cn/archives/2009/04/09/296/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 02:55:42 +0000</pubDate>
		<dc:creator>seasun</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Test]]></category>

		<guid isPermaLink="false">http://www.iwanna.cn/?p=296</guid>
		<description><![CDATA[我们如何来对javascript代码做单元测试呢？最近发现JsUnit就是一个这样的满足我们要求的xUnit Framwork。
首先，让我来介绍一下JsUnit，既然是对JavaScript代码进行测试，那么构建JsUnit的测试方面的核心代码是由JavaScript所写 的，最核心的代码包含在一个名为：jsUnitCore.js的文件之中。打开里面该文件查看里面的代码，我们可以看到绝大部分是对assert的不同方 面的实现。JsUnit之中的assert函数没有junit的多。但是它已经能够满足我们对网页之中的各个业务功能代码的测试。
既然是基于xUnit 架构之下实现的一个testing framework那么JsUnit在具体构建一个测试实例的时候有很多特征、特点是与JUnit相同的。
首先，它里面的判断方法要以test开头，测试函数不能够有输入参数，没有返回类型。
其次，它的测试页面之中也有setUp（），tearDown（）之类的初始化函数。
还有，它们都是使用具体的assert断言函数进行，期望值与实际值比较，进而找出正确与否。
在JsUnit里面有个对javascript开发人员最重要的功能，我们大家都知道开发js代码是一件非常烦人的事情，没有良好的开发集成环境，没有很 好的跟踪措施，等等的一切，让我们的开发人员在开发js代码时不能够很好的开发。而JsUnit向我们提供了类似于java代码之中的日志功能，想必大家 都用过log4j。它的日志功能让大家调试代码的时候非常方便，现在js因为JsUnit也具有了这样的功能，只不过它让我们设置的日志级别有所减少只有 三种（warn，info，debug），不过能够满足我们一般的使用需求。
使用JsUnit的手动测试，大家都能够轻易学会，而使用ant集成JsUnit进行自动化测试在网上所说的文章还比较少，而且JsUnit的官方网站（www.jsunit.net）不知道什么回事，我一直登录不了。下面就介绍一下如何使用ant来集成它。
说到ant自然要使用到build.xml文件，下面将我所用到的build.xml代码贴出来方便大家。
 1 &#60;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243;?&#62;
 2 
 3 &#60;project name=&#8221;JsUnit&#8221; default=&#8221;create_distribution&#8221; basedir=&#8221;.&#8221;&#62;
 4 
 5  &#60;!&#8211;
 6  The following are the properties used to configure the JsUnit server.
You need to provide values for the mandatory properties.
 7  See the documentation at http://www.jsunit.net for more information.
 8  &#8211;&#62;
 9 
 10  &#60;property
 11  name=&#8221;browserFileNames&#8221;
 12  value=&#8221;C:\Program Files\Internet Explorer\IEXPLORE.EXE&#8221;
 13  description=&#8221;browserFileNames is the list of browsers in which to run tests when
StandaloneTest is invoked on this machine. For a JsUnit Server, this is a mandatory property.
For example: &#8217;c:\program files\internet explorer\iexplore.exe,
c:\program files\netscape\netscape7.1\netscp.exe&#8217;,D:\Program Files\Mozilla Firefox\firefox.exe&#8221;
 14  /&#62;
 15 
 16  &#60;property
 17 [...]]]></description>
			<content:encoded><![CDATA[<p>我们如何来对<a href="http://www.iwanna.cn/tags/javascript/" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with JavaScript">javascript</a>代码做单元测试呢？最近发现JsUnit就是一个这样的满足我们要求的xUnit Framwork。<br />
首先，让我来介绍一下JsUnit，既然是对<a href="http://www.iwanna.cn/tags/javascript/" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with JavaScript">JavaScript</a>代码进行测试，那么构建JsUnit的测试方面的核心代码是由<a href="http://www.iwanna.cn/tags/javascript/" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with JavaScript">JavaScript</a>所写 的，最核心的代码包含在一个名为：jsUnitCore.js的文件之中。打开里面该文件查看里面的代码，我们可以看到绝大部分是对assert的不同方 面的实现。JsUnit之中的assert函数没有junit的多。但是它已经能够满足我们对网页之中的各个业务功能代码的测试。<br />
既然是基于xUnit 架构之下实现的一个testing framework那么JsUnit在具体构建一个测试实例的时候有很多特征、特点是与JUnit相同的。<br />
首先，它里面的判断方法要以test开头，测试函数不能够有输入参数，没有返回类型。<br />
<span id="more-296"></span>其次，它的测试页面之中也有setUp（），tearDown（）之类的初始化函数。<br />
还有，它们都是使用具体的assert断言函数进行，期望值与实际值比较，进而找出正确与否。<br />
在JsUnit里面有个对<a href="http://www.iwanna.cn/tags/javascript/" class="st_tag internal_tag" rel="tag nofollow" title="Posts tagged with JavaScript">javascript</a>开发人员最重要的功能，我们大家都知道开发js代码是一件非常烦人的事情，没有良好的开发集成环境，没有很 好的跟踪措施，等等的一切，让我们的开发人员在开发js代码时不能够很好的开发。而JsUnit向我们提供了类似于java代码之中的日志功能，想必大家 都用过log4j。它的日志功能让大家调试代码的时候非常方便，现在js因为JsUnit也具有了这样的功能，只不过它让我们设置的日志级别有所减少只有 三种（warn，info，debug），不过能够满足我们一般的使用需求。<br />
使用JsUnit的手动测试，大家都能够轻易学会，而使用ant集成JsUnit进行自动化测试在网上所说的文章还比较少，而且JsUnit的官方网站（www.jsunit.net）不知道什么回事，我一直登录不了。下面就介绍一下如何使用ant来集成它。<br />
说到ant自然要使用到build.xml文件，下面将我所用到的build.xml代码贴出来方便大家。</p>
<p><!----><span style="color: #008080;"> 1</span> <span style="color: #0000ff;">&lt;?</span><span style="color: #ff00ff;">xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243;</span><span style="color: #0000ff;">?&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;"> 2</span> <span style="color: #000000;"><br />
</span><span style="color: #008080;"> 3</span> <span style="color: #0000ff;">&lt;</span><span style="color: #800000;">project </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">=&#8221;JsUnit&#8221;</span><span style="color: #ff0000;"> default</span><span style="color: #0000ff;">=&#8221;create_distribution&#8221;</span><span style="color: #ff0000;"> basedir</span><span style="color: #0000ff;">=&#8221;.&#8221;</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;"> 4</span> <span style="color: #000000;"><br />
</span><span style="color: #008080;"> 5</span> <span style="color: #000000;"> </span><span style="color: #008000;">&lt;!&#8211;</span><span style="color: #008000;"><br />
</span><span style="color: #008080;"> 6</span> <span style="color: #008000;"> The following are the properties used to configure the JsUnit server.<br />
You need to provide values for the mandatory properties.<br />
</span><span style="color: #008080;"> 7</span> <span style="color: #008000;"> See the documentation at http://www.jsunit.net for more information.<br />
</span><span style="color: #008080;"> 8</span> <span style="color: #008000;"> </span><span style="color: #008000;">&#8211;&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;"> 9</span> <span style="color: #000000;"><br />
</span><span style="color: #008080;"> 10</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property<br />
</span><span style="color: #008080;"> 11</span> <span style="color: #800000;"> </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">=&#8221;browserFileNames&#8221;</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 12</span> <span style="color: #ff0000;"> value</span><span style="color: #0000ff;">=&#8221;C:\Program Files\Internet Explorer\IEXPLORE.EXE&#8221;</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 13</span> <span style="color: #ff0000;"> description</span><span style="color: #0000ff;">=&#8221;browserFileNames is the list of browsers in which to run tests when<br />
StandaloneTest is invoked on this machine. For a JsUnit Server, this is a mandatory property.<br />
For example: &#8217;c:\program files\internet explorer\iexplore.exe,<br />
c:\program files\netscape\netscape7.1\netscp.exe&#8217;,D:\Program Files\Mozilla Firefox\firefox.exe&#8221;</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 14</span> <span style="color: #ff0000;"> </span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;"> 15</span> <span style="color: #000000;"><br />
</span><span style="color: #008080;"> 16</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property<br />
</span><span style="color: #008080;"> 17</span> <span style="color: #800000;"> </span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">=&#8221;closeBrowsersAfterTestRuns&#8221;</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 18</span> <span style="color: #ff0000;"> name</span><span style="color: #0000ff;">=&#8221;closeBrowsersAfterTestRuns&#8221;</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 19</span> <span style="color: #ff0000;"> value</span><span style="color: #0000ff;">=&#8221;"</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 20</span> <span style="color: #ff0000;"> description</span><span style="color: #0000ff;">=&#8221;closeBrowsersAfterTestRuns determines whether to attempt to<br />
close browsers after test runs. This is not a mandatory property.<br />
The default is true. For example: &#8217;true&#8217;&#8221;</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 21</span> <span style="color: #ff0000;"> </span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;"> 22</span> <span style="color: #000000;"><br />
</span><span style="color: #008080;"> 23</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property<br />
</span><span style="color: #008080;"> 24</span> <span style="color: #800000;"> </span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">=&#8221;description&#8221;</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 25</span> <span style="color: #ff0000;"> name</span><span style="color: #0000ff;">=&#8221;description&#8221;</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 26</span> <span style="color: #ff0000;"> value</span><span style="color: #0000ff;">=&#8221;"</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 27</span> <span style="color: #ff0000;"> description</span><span style="color: #0000ff;">=&#8221;description is a human-readable description of a standard or farm server.<br />
This is not a mandatory property. The default is blank.<br />
For example: &#8217;This is our Mac - it&#8217;s only running Safari right now&#8217;&#8221;</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 28</span> <span style="color: #ff0000;"> </span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;"> 29</span> <span style="color: #000000;"><br />
</span><span style="color: #008080;"> 30</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property<br />
</span><span style="color: #008080;"> 31</span> <span style="color: #800000;"> </span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">=&#8221;ignoreUnresponsiveRemoteMachines&#8221;</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 32</span> <span style="color: #ff0000;"> name</span><span style="color: #0000ff;">=&#8221;ignoreUnresponsiveRemoteMachines&#8221;</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 33</span> <span style="color: #ff0000;"> value</span><span style="color: #0000ff;">=&#8221;"</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 34</span> <span style="color: #ff0000;"> description</span><span style="color: #0000ff;">=&#8221;ignoreUnresponsiveRemoteMachines is a property used only by the JsUnit<br />
Farm Server and the distributed_test target.<br />
Its value is whether to ignore a remove machine that does not respond.<br />
If true, test runs will be green even if one or more remove machines fail to respond;<br />
if false, an unresponsive remove machine results in a failure.<br />
This is not a mandatory property.<br />
Its default is false. For example: &#8217;true&#8217;&#8221;</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 35</span> <span style="color: #ff0000;"> </span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;"> 36</span> <span style="color: #000000;"><br />
</span><span style="color: #008080;"> 37</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property<br />
</span><span style="color: #008080;"> 38</span> <span style="color: #800000;"> </span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">=&#8221;logsDirectory&#8221;</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 39</span> <span style="color: #ff0000;"> name</span><span style="color: #0000ff;">=&#8221;logsDirectory&#8221;</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 40</span> <span style="color: #ff0000;"> value</span><span style="color: #0000ff;">=&#8221;logs&#8221;</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 41</span> <span style="color: #ff0000;"> description</span><span style="color: #0000ff;">=&#8221;logsDirectory is the directory in which the JsUnitStandardServer<br />
stores the XML logs produced from tests run.It can be specified relative to the working directory.<br />
This is not a mandatory property. If not specified, the directory called &#8217;logs&#8217; inside resourceBase is assumed.<br />
For example: &#8217;c:\jsunit\java\logs&#8217;&#8221;</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 42</span> <span style="color: #ff0000;"> </span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;"> 43</span> <span style="color: #000000;"><br />
</span><span style="color: #008080;"> 44</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property<br />
</span><span style="color: #008080;"> 45</span> <span style="color: #800000;"> </span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">=&#8221;port&#8221;</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 46</span> <span style="color: #ff0000;"> name</span><span style="color: #0000ff;">=&#8221;port&#8221;</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 47</span> <span style="color: #ff0000;"> value</span><span style="color: #0000ff;">=&#8221;"</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 48</span> <span style="color: #ff0000;"> description</span><span style="color: #0000ff;">=&#8221;port is the port on which the JsUnitStandardServer runs.<br />
This is not a mandatory property. If not specified, 8080 is assumed. For exapmle: &#8217;8080&#8242;&#8221;</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 49</span> <span style="color: #ff0000;"> </span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;"> 50</span> <span style="color: #000000;"><br />
</span><span style="color: #008080;"> 51</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property<br />
</span><span style="color: #008080;"> 52</span> <span style="color: #800000;"> </span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">=&#8221;remoteMachineURLs&#8221;</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 53</span> <span style="color: #ff0000;"> name</span><span style="color: #0000ff;">=&#8221;remoteMachineURLs&#8221;</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 54</span> <span style="color: #ff0000;"> value</span><span style="color: #0000ff;">=&#8221;"</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 55</span> <span style="color: #ff0000;"> description</span><span style="color: #0000ff;">=&#8221;remoteMachineURLs is a property used only by the JsUnit Farm Server<br />
and the distributed_test target. Its value is the list of URLs of remove machines to<br />
which a request to run tests will be sent.<br />
For example: &#8217;http://machine1.company.com:8080,http://localhost:8080,http://192.168.1.200:9090&#8242;&#8221;</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 56</span> <span style="color: #ff0000;"> </span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;"> 57</span> <span style="color: #000000;"><br />
</span><span style="color: #008080;"> 58</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property<br />
</span><span style="color: #008080;"> 59</span> <span style="color: #800000;"> </span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">=&#8221;resourceBase&#8221;</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 60</span> <span style="color: #ff0000;"> name</span><span style="color: #0000ff;">=&#8221;resourceBase&#8221;</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 61</span> <span style="color: #ff0000;"> value</span><span style="color: #0000ff;">=&#8221;"</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 62</span> <span style="color: #ff0000;"> description</span><span style="color: #0000ff;">=&#8221;resourceBase is the directory that the JsUnitStandardServer<br />
considers to be its document root. It can be specified relative to the working directory.<br />
This is not a mandatory property. If not specified, the working directory is assumed.<br />
For example: &#8217;c:\jsunit&#8217;&#8221;</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 63</span> <span style="color: #ff0000;"> </span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;"> 64</span> <span style="color: #000000;"><br />
</span><span style="color: #008080;"> 65</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property<br />
</span><span style="color: #008080;"> 66</span> <span style="color: #800000;"> </span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">=&#8221;timeoutSeconds&#8221;</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 67</span> <span style="color: #ff0000;"> name</span><span style="color: #0000ff;">=&#8221;timeoutSeconds&#8221;</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 68</span> <span style="color: #ff0000;"> value</span><span style="color: #0000ff;">=&#8221;20&#8243;</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 69</span> <span style="color: #ff0000;"> description</span><span style="color: #0000ff;">=&#8221;timeoutSeconds is the number of seconds to wait before timing out a browser during a test run.<br />
This is not a mandatory property. If not specified, 60 is assumed. For example: &#8217;60&#8242;&#8221;</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 70</span> <span style="color: #ff0000;"> </span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;"> 71</span> <span style="color: #000000;"><br />
</span><span style="color: #008080;"> 72</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property<br />
</span><span style="color: #008080;"> 73</span> <span style="color: #800000;"> </span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">=&#8221;url&#8221;</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 74</span> <span style="color: #ff0000;"> name</span><span style="color: #0000ff;">=&#8221;url&#8221;</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 75</span> <span style="color: #ff0000;"> value</span><span style="color: #0000ff;">=&#8221;file:///D:/eclipse/workspace/JsUnitAnt/tests/testRunner.html?<br />
testPage=D:/eclipse/workspace/JsUnitAnt/tests/jsUnitTestSuite.html&#8221;</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 76</span> <span style="color: #ff0000;"> description</span><span style="color: #0000ff;">=&#8221;url is the URL (HTTP or file protocol) to open in the browser.<br />
For a JsUnit Server, this is a mandatory property for a test run if the server is not passed the &#8217;url&#8217; parameter.<br />
For example: &#8217;file:///c:/jsunit/testRunner.html?testPage=c:/jsunit/tests/jsUnitTestSuite.html&#8217;&#8221;</span><span style="color: #ff0000;"><br />
</span><span style="color: #008080;"> 77</span> <span style="color: #ff0000;"> </span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;"> 78</span> <span style="color: #000000;"><br />
</span><span style="color: #008080;"> 79</span> <span style="color: #000000;"> </span><span style="color: #008000;">&lt;!&#8211;</span><span style="color: #008000;"><br />
</span><span style="color: #008080;"> 80</span> <span style="color: #008000;"> The remainder of this build file is not intended to be modified by the end user.<br />
</span><span style="color: #008080;"> 81</span> <span style="color: #008000;"> Those targets whose name begins with an underscore are not intended to be run directly by the end user.<br />
</span><span style="color: #008080;"> 82</span> <span style="color: #008000;"> </span><span style="color: #008000;">&#8211;&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;"> 83</span> <span style="color: #000000;"><br />
</span><span style="color: #008080;"> 84</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">=&#8221;source_core&#8221;</span><span style="color: #ff0000;"> location</span><span style="color: #0000ff;">=&#8221;src&#8221;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;"> 85</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">=&#8221;source_server&#8221;</span><span style="color: #ff0000;"> location</span><span style="color: #0000ff;">=&#8221;src&#8221;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;"> 86</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">=&#8221;tests_core&#8221;</span><span style="color: #ff0000;"> location</span><span style="color: #0000ff;">=&#8221;test&#8221;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;"> 87</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">=&#8221;tests_server&#8221;</span><span style="color: #ff0000;"> location</span><span style="color: #0000ff;">=&#8221;test&#8221;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;"> 88</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">=&#8221;bin&#8221;</span><span style="color: #ff0000;"> location</span><span style="color: #0000ff;">=&#8221;bin&#8221;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;"> 89</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">=&#8221;lib&#8221;</span><span style="color: #ff0000;"> location</span><span style="color: #0000ff;">=&#8221;lib&#8221;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;"> 90</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">=&#8221;testlib&#8221;</span><span style="color: #ff0000;"> location</span><span style="color: #0000ff;">=&#8221;testlib&#8221;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;"> 91</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">=&#8221;config&#8221;</span><span style="color: #ff0000;"> location</span><span style="color: #0000ff;">=&#8221;config&#8221;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;"> 92</span> <span style="color: #000000;"><br />
</span><span style="color: #008080;"> 93</span> <span style="color: #000000;"><br />
</span><span style="color: #008080;"> 94</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">path </span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">=&#8221;classpath&#8221;</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;"> 95</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">fileset </span><span style="color: #ff0000;">dir</span><span style="color: #0000ff;">=&#8221;${lib}&#8221;</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;"> 96</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">include </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">=&#8221;*.jar&#8221;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;"> 97</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">fileset</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;"> 98</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">fileset </span><span style="color: #ff0000;">dir</span><span style="color: #0000ff;">=&#8221;${bin}&#8221;</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;"> 99</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">include </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">=&#8221;jsunit.jar&#8221;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">100</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">fileset</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">101</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">dirset </span><span style="color: #ff0000;">dir</span><span style="color: #0000ff;">=&#8221;${config}&#8221;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">102</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">path</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">103</span> <span style="color: #000000;"><br />
</span><span style="color: #008080;">104</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">target </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">=&#8221;JsUnitTest&#8221;</span><span style="color: #ff0000;"> description</span><span style="color: #0000ff;">=&#8221;Runs tests on the local machine&#8221;</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">105</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">junit </span><span style="color: #ff0000;">showoutput</span><span style="color: #0000ff;">=&#8221;true&#8221;</span><span style="color: #ff0000;"> haltonerror</span><span style="color: #0000ff;">=&#8221;true&#8221;</span><span style="color: #ff0000;"> haltonfailure</span><span style="color: #0000ff;">=&#8221;true&#8221;</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">106</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">formatter </span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">=&#8221;xml&#8221;</span><span style="color: #ff0000;"> usefile</span><span style="color: #0000ff;">=&#8221;true&#8221;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">107</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">classpath </span><span style="color: #ff0000;">refid</span><span style="color: #0000ff;">=&#8221;classpath&#8221;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">108</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">sysproperty </span><span style="color: #ff0000;">key</span><span style="color: #0000ff;">=&#8221;browserFileNames&#8221;</span><span style="color: #ff0000;"> value</span><span style="color: #0000ff;">=&#8221;${browserFileNames}&#8221;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">109</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">sysproperty </span><span style="color: #ff0000;">key</span><span style="color: #0000ff;">=&#8221;description&#8221;</span><span style="color: #ff0000;"> value</span><span style="color: #0000ff;">=&#8221;${description}&#8221;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">110</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">sysproperty </span><span style="color: #ff0000;">key</span><span style="color: #0000ff;">=&#8221;closeBrowsersAfterTestRuns&#8221;</span><span style="color: #ff0000;"> value</span><span style="color: #0000ff;">=&#8221;${closeBrowsersAfterTestRuns}&#8221;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">111</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">sysproperty </span><span style="color: #ff0000;">key</span><span style="color: #0000ff;">=&#8221;logsDirectory&#8221;</span><span style="color: #ff0000;"> value</span><span style="color: #0000ff;">=&#8221;${logsDirectory}&#8221;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">112</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">sysproperty </span><span style="color: #ff0000;">key</span><span style="color: #0000ff;">=&#8221;port&#8221;</span><span style="color: #ff0000;"> value</span><span style="color: #0000ff;">=&#8221;${port}&#8221;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">113</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">sysproperty </span><span style="color: #ff0000;">key</span><span style="color: #0000ff;">=&#8221;resourceBase&#8221;</span><span style="color: #ff0000;"> value</span><span style="color: #0000ff;">=&#8221;${resourceBase}&#8221;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">114</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">sysproperty </span><span style="color: #ff0000;">key</span><span style="color: #0000ff;">=&#8221;timeoutSeconds&#8221;</span><span style="color: #ff0000;"> value</span><span style="color: #0000ff;">=&#8221;${timeoutSeconds}&#8221;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">115</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">sysproperty </span><span style="color: #ff0000;">key</span><span style="color: #0000ff;">=&#8221;url&#8221;</span><span style="color: #ff0000;"> value</span><span style="color: #0000ff;">=&#8221;${url}&#8221;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">116</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">test </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">=&#8221;net.jsunit.StandaloneTest&#8221;</span><span style="color: #ff0000;"> outfile</span><span style="color: #0000ff;">=&#8221;${logsDirectory}\log&#8221;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">117</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">junit</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">118</span> <span style="color: #000000;"> </span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">target</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">119</span> <span style="color: #000000;"><br />
</span><span style="color: #008080;">120</span> <span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">project</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span></p>
<div class="bar">
<div class="tools">Java代码 <object width="14" height="15" data="http://kuangbaoxu.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" type="application/x-shockwave-flash"><param name="flashvars" value="clipboard=function%20DisableF5()%7B%20%0A%20%20%20with%20(event)%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20F5%20and%20Ctrl%2BR%20%0A%20%20%20%20%20if%20(keyCode%3D%3D116%20%7C%7C%20(ctrlKey%20%26%26%20keyCode%3D%3D82))%7B%20%0A%20%20%20%20%20%20%20event.keyCode%20%3D%200%3B%20%0A%20%20%20%20%20%20%20event.cancelBubble%20%3D%20true%3B%20%0A%20%20%20%20%20%20%20return%20false%3B%20%0A%20%20%20%20%20%7D%20%0A%20%20%20%7D%20%0A%7D%20%0A%0Adocument.onkeydown%20%3D%20DisableF5%3B%20" /><param name="src" value="http://kuangbaoxu.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" /><param name="quality" value="high" /></object></div>
</div>
<ol class="dp-j">
<li><span><span>function DisableF5(){ </span></span></li>
<li><span> with (event){ </span></li>
<li><span> <span class="comment">// F5 and Ctrl+R </span><span> </span></span></li>
<li><span> <span class="keyword">if</span><span> (keyCode==</span><span class="number">116</span><span> || (ctrlKey &amp;&amp; keyCode==</span><span class="number">82</span><span>)){ </span></span></li>
<li><span> event.keyCode = <span class="number">0</span><span>; </span></span></li>
<li><span> event.cancelBubble = <span class="keyword">true</span><span>; </span></span></li>
<li><span> <span class="keyword">return</span><span> </span><span class="keyword">false</span><span>; </span></span></li>
<li><span> } </span></li>
<li><span> } </span></li>
<li><span>} </span></li>
<li><span> </span></li>
<li><span>document.onkeydown = DisableF5; </span></li>
</ol>
<pre class="java" style="display: none;">function DisableF5(){
   with (event){
           // F5 and Ctrl+R
     if (keyCode==116 || (ctrlKey &amp;&amp; keyCode==82)){
       event.keyCode = 0;
       event.cancelBubble = true;
       return false;
     }
   }
} 

document.onkeydown = DisableF5;</pre>
<div class="dp-highlighter">
<div class="bar">
<div class="tools">Java代码 <object width="14" height="15" data="http://kuangbaoxu.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" type="application/x-shockwave-flash"><param name="flashvars" value="clipboard=function%20document.onkeydown()%20%0A%7B%20%0A%20%20%20if%20((event.keyCode%3D%3D8)%20%20%20%7C%7C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%E5%B1%8F%E8%94%BD%E9%80%80%E6%A0%BC%E5%88%A0%E9%99%A4%E9%94%AE%20%0A%20%20%20%20%20%20%20(event.keyCode%3D%3D116)%7C%7C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%E5%B1%8F%E8%94%BD%20F5%20%E5%88%B7%E6%96%B0%E9%94%AE%20%0A%20%20%20%20%20%20%20(event.ctrlKey%20%26%26%20event.keyCode%3D%3D82))%7B%20%2F%2FCtrl%20%2B%20R%20%0A%20%20%20%20%20%20event.keyCode%3D0%3B%20%0A%20%20%20%20%20%20event.returnValue%3Dfalse%3B%20%0A%20%20%20%20%20%20%7D%20%0A%7D%20%0A%20" /><param name="src" value="http://kuangbaoxu.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" /><param name="quality" value="high" /></object></div>
</div>
<ol class="dp-j">
<li><span><span>function document.onkeydown() </span></span></li>
<li><span>{ </span></li>
<li><span> <span class="keyword">if</span><span> ((event.keyCode==</span><span class="number">8</span><span>)   || </span><span class="comment">//屏蔽退格删除键 </span><span> </span></span></li>
<li><span> (event.keyCode==<span class="number">116</span><span>)|| </span><span class="comment">//屏蔽 F5 刷新键 </span><span> </span></span></li>
<li><span> (event.ctrlKey &amp;&amp; event.keyCode==<span class="number">82</span><span>)){ </span><span class="comment">//Ctrl + R </span><span> </span></span></li>
<li><span> event.keyCode=<span class="number">0</span><span>; </span></span></li>
<li><span> event.returnValue=<span class="keyword">false</span><span>; </span></span></li>
<li><span> } </span></li>
<li><span>} </span></li>
<li><span> </span></li>
</ol>
</div>
<pre class="java" style="display: none;">function document.onkeydown()
{
   if ((event.keyCode==8)   ||                  //屏蔽退格删除键
       (event.keyCode==116)||                  //屏蔽 F5 刷新键
       (event.ctrlKey &amp;&amp; event.keyCode==82)){ //Ctrl + R
      event.keyCode=0;
      event.returnValue=false;
      }
}</pre>
<p>一，js屏蔽浏览器（IE和FireFox）的刷新功能</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools">Java代码 <object width="14" height="15" data="http://kuangbaoxu.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" type="application/x-shockwave-flash"><param name="flashvars" value="clipboard=document.onkeydown%3Dfunction()%0A%7B%0A%20%20if%20((window.event.keyCode%3D%3D116)%7C%7C%20%2F%2F%E5%B1%8F%E8%94%BD%20F5%0A%20%20%20%20%20%20(window.event.keyCode%3D%3D122)%7C%7C%20%2F%2F%E5%B1%8F%E8%94%BD%20F11%0A%20%20%20%20%20%20(window.event.shiftKey%20%26%26%20window.event.keyCode%3D%3D121)%20%2F%2Fshift%2BF10%0A%20%20%20%20%20)%0A%20%20%20%20%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20window.event.keyCode%3D0%3B%0A%20%20%20%20%20%20%20%20%20%20window.event.returnValue%3Dfalse%3B%0A%20%20%20%20%20%7D%20%0A%20%20if%20((window.event.altKey)%26%26(window.event.keyCode%3D%3D115))%0A%20%20%20%20%20%7B%20%0A%20%20%20%20%20%20%20%20%20%2F%2F%E5%B1%8F%E8%94%BDAlt%2BF4%0A%20%20%20%20%20%20%20%20%20window.showModelessDialog(%22about%3Ablank%22%2C%22%22%2C%22dialogWidth%3A1px%3Bdialogheight%3A1px%22)%3B%0A%20%20%20%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%20%7D%20%20%0A%7D" /><param name="src" value="http://kuangbaoxu.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" /><param name="quality" value="high" /></object></div>
</div>
<ol class="dp-j">
<li><span><span>document.onkeydown=function() </span></span></li>
<li><span>{ </span></li>
<li><span> <span class="keyword">if</span><span> ((window.event.keyCode==</span><span class="number">116</span><span>)|| </span><span class="comment">//屏蔽 F5</span><span> </span></span></li>
<li><span> (window.event.keyCode==<span class="number">122</span><span>)|| </span><span class="comment">//屏蔽 F11</span><span> </span></span></li>
<li><span> (window.event.shiftKey &amp;&amp; window.event.keyCode==<span class="number">121</span><span>) </span><span class="comment">//shift+F10</span><span> </span></span></li>
<li><span> ) </span></li>
<li><span> { </span></li>
<li><span> window.event.keyCode=<span class="number">0</span><span>; </span></span></li>
<li><span> window.event.returnValue=<span class="keyword">false</span><span>; </span></span></li>
<li><span> } </span></li>
<li><span> <span class="keyword">if</span><span> ((window.event.altKey)&amp;&amp;(window.event.keyCode==</span><span class="number">115</span><span>)) </span></span></li>
<li><span> { </span></li>
<li><span> <span class="comment">//屏蔽Alt+F4</span><span> </span></span></li>
<li><span> window.showModelessDialog(<span class="string">&#8220;about:blank&#8221;</span><span>,</span><span class="string">&#8220;&#8221;</span><span>,</span><span class="string">&#8220;dialogWidth:1px;dialogheight:1px&#8221;</span><span>); </span></span></li>
<li><span> <span class="keyword">return</span><span> </span><span class="keyword">false</span><span>; </span></span></li>
<li><span> } </span></li>
<li><span>} </span></li>
</ol>
</div>
<pre class="java" style="display: none;">document.onkeydown=function()
{
  if ((window.event.keyCode==116)|| //屏蔽 F5
      (window.event.keyCode==122)|| //屏蔽 F11
      (window.event.shiftKey &amp;&amp; window.event.keyCode==121) //shift+F10
     )
     {
          window.event.keyCode=0;
          window.event.returnValue=false;
     }
  if ((window.event.altKey)&amp;&amp;(window.event.keyCode==115))
     {
         //屏蔽Alt+F4
         window.showModelessDialog("about:blank","","dialogWidth:1px;dialogheight:1px");
         return false;
     }
}</pre>
<p>二，js屏蔽浏览器右键功能</p>
<div class="bar">
<div class="tools">Java代码 <object width="14" height="15" data="http://kuangbaoxu.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" type="application/x-shockwave-flash"><param name="flashvars" value="clipboard=if%20(window.Event)%20%0Adocument.captureEvents(Event.MOUSEUP)%3B%20%0Afunction%20nocontextmenu()%0A%7B%20%0A%20event.cancelBubble%20%3D%20true%20%0A%20event.returnValue%20%3D%20false%3B%20%0A%20return%20false%3B%20%0A%7D%20%0Afunction%20norightclick(e)%7B%20%0A%20if%20(window.Event)%7B%20%0A%20%20if%20(e.which%20%3D%3D%202%20%7C%7C%20e.which%20%3D%3D%203)%20%0A%20%20return%20false%3B%20%0A%20%7D%20%0A%20else%20%0A%20%20if%20(event.button%20%3D%3D%202%20%7C%7C%20event.button%20%3D%3D%203)%7B%20%0A%20%20%20event.cancelBubble%20%3D%20true%20%0A%20%20%20event.returnValue%20%3D%20false%3B%20%0A%20%20%20return%20false%3B%20%0A%20%20%7D%20%0A%7D%20%0Adocument.oncontextmenu%20%3D%20nocontextmenu%3B%20%2F%2F%20for%20IE5%2B%20%0Adocument.onmousedown%20%3D%20norightclick%3B%20%2F%2F%20for%20all%20others%20" /><param name="src" value="http://kuangbaoxu.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" /><param name="quality" value="high" /></object></div>
</div>
<ol class="dp-j">
<li><span><span class="keyword">if</span><span> (window.Event) </span></span></li>
<li><span>document.captureEvents(Event.MOUSEUP); </span></li>
<li><span>function nocontextmenu() </span></li>
<li><span>{ </span></li>
<li><span> event.cancelBubble = <span class="keyword">true</span><span> </span></span></li>
<li><span> event.returnValue = <span class="keyword">false</span><span>; </span></span></li>
<li><span> <span class="keyword">return</span><span> </span><span class="keyword">false</span><span>; </span></span></li>
<li><span>} </span></li>
<li><span>function norightclick(e){ </span></li>
<li><span> <span class="keyword">if</span><span> (window.Event){ </span></span></li>
<li><span> <span class="keyword">if</span><span> (e.which == </span><span class="number">2</span><span> || e.which == </span><span class="number">3</span><span>) </span></span></li>
<li><span> <span class="keyword">return</span><span> </span><span class="keyword">false</span><span>; </span></span></li>
<li><span> } </span></li>
<li><span> <span class="keyword">else</span><span> </span></span></li>
<li><span> <span class="keyword">if</span><span> (event.button == </span><span class="number">2</span><span> || event.button == </span><span class="number">3</span><span>){ </span></span></li>
<li><span> event.cancelBubble = <span class="keyword">true</span><span> </span></span></li>
<li><span> event.returnValue = <span class="keyword">false</span><span>; </span></span></li>
<li><span> <span class="keyword">return</span><span> </span><span class="keyword">false</span><span>; </span></span></li>
<li><span> } </span></li>
<li><span>} </span></li>
<li><span>document.oncontextmenu = nocontextmenu; <span class="comment">// for IE5+ </span><span> </span></span></li>
<li><span>document.onmousedown = norightclick; <span class="comment">// for all others</span></span></li>
</ol>
<hr />
<p>© <a href="http://www.iwanna.cn">我想网</a> Akon 所有 , 2009. |
<a href="http://www.iwanna.cn/archives/2009/04/09/296/">永久链接</a> |
<a href="http://www.iwanna.cn/archives/2009/04/09/296/#comments">没有评论</a> |
提交到
<a rel="nofollow" target="_blank" href="http://www.google.com/reader/view/feed/http://www.iwanna.cn/archives/2009/04/09/296/">Google Reader</a>
<a rel="nofollow" target="_blank" href="http://www.xianguo.com/subscribe.php?url=http://www.iwanna.cn/archives/2009/04/09/296/">鲜果</a>
<a rel="nofollow" target="_blank" href="http://www.zhuaxia.com/add_channel.php?url=http://www.iwanna.cn/archives/2009/04/09/296/">抓虾</a>
<hr />
</p>
	标签：<a href="http://www.iwanna.cn/topics/ui/javascript/" title="JavaScript" rel="tag nofollow">JavaScript</a>, <a href="http://www.iwanna.cn/tags/javascript/" title="JavaScript" rel="tag nofollow">JavaScript</a>, <a href="http://www.iwanna.cn/topics/develope/test/" title="Test" rel="tag nofollow">Test</a>, <a href="http://www.iwanna.cn/tags/test/" title="Test" rel="tag nofollow">Test</a><br />

	<h2 class="related_post">您可能会感兴趣的其他文章</h2>
	<ul class="st-related-posts">
	<li><a href="http://www.iwanna.cn/archives/2010/04/15/2723/" title="8个实用的 JavaScript 测试及效验工具 (2010年04月15日)">8个实用的 JavaScript 测试及效验工具</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2009/04/29/894/" title="页面输出时一些常用的小技巧 (2009年04月29日)">页面输出时一些常用的小技巧</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2009/03/31/79/" title="表单元素：40个CSS/JS风格和功能技术处理 (2009年03月31日)">表单元素：40个CSS/JS风格和功能技术处理</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/07/06/4383/" title="网页打开新窗口的解决方案,拒绝屏蔽 (2010年07月6日)">网页打开新窗口的解决方案,拒绝屏蔽</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/04/29/2874/" title="相见恨晚的一些 JavaScript 技巧 (2010年04月29日)">相见恨晚的一些 JavaScript 技巧</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/06/08/3804/" title="用户测试工具综述：Usabilla (2010年06月8日)">用户测试工具综述：Usabilla</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2009/09/18/2252/" title="用JS制作的网页版NES模拟器 IE8直接出局 (2009年09月18日)">用JS制作的网页版NES模拟器 IE8直接出局</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2009/03/31/77/" title="用css+js控制图片大小的方法 (2009年03月31日)">用css+js控制图片大小的方法</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2010/02/17/2516/" title="有关 JavaScript 的 10 件让人费解的事情 (2010年02月17日)">有关 JavaScript 的 10 件让人费解的事情</a> </li>
	<li><a href="http://www.iwanna.cn/archives/2009/11/29/2396/" title="新 API 寻求让 JavaScript 操作本地文件 (2009年11月29日)">新 API 寻求让 JavaScript 操作本地文件</a> </li>
</ul>


<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iwanna.cn/archives/2009/04/09/296/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
