在本文中我将解释微软Visual Studio企业版中包含的一个重要工具:微软Application Center Test。严肃的Web开发者都应该把这个工具放在自己的工具包中。
Application Center Test
在离开微软之前,我参加了12个城市的ASP.NET说明会。其中一个覆盖了性能问题,并且给很多开发者介绍了微软Application Center Test。这个工具总是生成大量的有趣的信息,我对它有很多疑问。
你会发现Application Center Test是Application Center(可以在旧的MSDN CD或DVD中找到)的一部分,或者安装在Visual Studio .NET企业版的Visual Studio .NET 2003\Visual Studio .NET Enterprise Features目录下面。当你第一次打开Application Center Test的时候,你可以看到一个用于导航可用的测试、结果和用户的树视图。首先,我希望显示出很容易建立测试。
下一步,导航到Application Center Test,右键点击"Tests(测试)"并选择"New Test(新建测试)"。它会打开"新建测试向导"欢迎页面。点击"下一步"选择新测试的源代码,并选中"记录新测试"。再次点击"下一步"以选择测试类型,提示选择脚本语言(我们不修改默认值)的时候,点击"下一步",出现了图1所示的界面:
图1:新建测试向导 "记录测试"使Application Center Test易于使用。点击"开始记录"会打开一个新的浏览器实例。不要在地址栏中输入URL(应该为about:blank)。我们的操作是,在这个新的浏览器实例中选择Tools | Internet选择,并浏览"连接"属性页。接着点击"局域网设置"按钮,会看到图2所示的界面:
图2:连接设置 你会发现代理服务器(proxy)设置信息被填充了,并且与正常值不同。这是因为Application Center Test打开了一个新的浏览器实例并指示它使用Application Center Test运行的专用代理服务器。经过浏览器的任何请求都会被Application Center Test代理捕捉到。
图3:捕捉到的请求 上面的对话框中的请求的详细信息部分现在被Application Center Test代理捕捉到的请求所填充了。这也是浏览器发送的HTTP请求。现在点击"停止记录",接着点击"下一步"。你会得到一个提示,需要给该测试输入一个名称(我用的是"My Test"),接着你可以点击"完成"关闭向导。
我对示例应用程序的第一处修改是改变返回数据量的限制。我把SQL查询SELECT * FROM Products改变为SELECT TOP 25 * FROM Products。这好像只是对代码进行了微小的修改。毕竟我只是限制屏幕中输出的数据量,但是其结果却是惊人的。其性能从每秒90个请求上升到200以上--性能提高了100%以上。由于你拥有基线,你知道了限制绑定到数据表格的数据量一定会影响性能。我还要修改其它一些东西。
如果你拥有性能测试脚本,那么在每次重要的修改之后都应该进行评估。如果实际上是你自己构造的代码,那么就可以经常深入源代码并且评价各部分和重新编译。这可以帮助你检查出问题在于程序编写得不好还是其它的原因。其它的原因有90%都出在数据访问代码部分。 你还可以测试应用程序中的通用路径。记录测试的时候,只需要输入用户可能使用的通用导航路径。Application Center Test将记录下这些信息,并且你可以重新播放准确的脚本。如果你喜欢,可以编辑生成的VBScript文件,给你的测试脚本引入延迟或其它有意义的输入信息。
我推荐的最后的测试需要做很多工作。例如,在Community Server中我们的开发者希望测试应用程序可以每分钟可以支持多少个post(张贴)操作。为了测试它,我们不是把内容写入窗体,而是建立一个新ASP.NET页面,它使用API来输入内容。接着这个页面在Application Center Test中运行,应用程序支持的每秒钟张贴操作的数量就产生了。换句话说,有时候为了测试所有的情形,你可能需要多做一些工作。
结论
我没有解释Application Center Test提供的所有信息,但是我希望本文给了你足够的使用Application Center Test的知识,这样你才能够使用它来评估和改善自己的应用程序。请记住,建立基线、频繁的评估(至少在每次重大的修改之后)并识别出关键的部分。遵循这些简单的规则,你会对应用程序有更好的理解,并且很有希望找到提高性能的机会。