在编写ASP.NET应用程序的时候,你会花费多长的时间来考虑性能的问题?很不幸,大多数开发者都对性能问题感到很后悔。性能的规划和设计真的需要放在前面和中心位置。你需要考虑自己的目标,并且确保把良好的性能作为目标之一;接着你需要评估自己的程序,评估的方面越多,改善性能的机会就越大。
在本文中我将解释微软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 首先,建立一个简单的Web应用程序。例如,我将使用图1所示的页面(请注意,我使用了一些联机编写ASP.NET页面的小技巧,你不需要编写完整的Page_Load事件声明)。
示例Web应用程序
<%@ Page Language="C#" %> <%@ Import Namespace="System.Data " %> <%@ Import Namespace="System.Data.SqlClient" %> <%@ Import Namespace=" System.Configuration" %>
<script runat="server"> public void Page_Load() { using(SqlConnection connection = new SqlConnection(ConfigurationSettings.AppSettings["Northwind"])) { SqlCommand command = new SqlCommand("SELECT * FROM Products", connection); connection.Open();
DataGrid1.DataSource = command.ExecuteReader(); DataGrid1.DataBind(); } } </script>
<form runat="server"> <asp:DataGrid id="DataGrid1" runat="server" /> </form> |
上面的代码虽然不是推荐的用于构造应用程序的方法,但是它也足够简单,我们能够在它上面执行一些基本的测试。在Web浏览器中打开这个页面会返回一个填充了的数据表格,它显示为HTML表格。
现在你知道这个页面可以工作了,把链接复制到剪贴板上,你还需要使用它的。在我的计算机上这个例子的链接是http://localhost/blackbelt/outputcache/test.aspx。
下一步,导航到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代理捕捉到。
为了完成测试,请关闭浏览器对话框并把用于测试的ASP.NET页面的链接粘贴到地址栏中。点击浏览器的"转到"按钮或直接按下回车键,再次出现了数据表格。下一步,关闭浏览器,你可能看到与图3类似的信息:
图3:捕捉到的请求 |
上面的对话框中的请求的详细信息部分现在被Application Center Test代理捕捉到的请求所填充了。这也是浏览器发送的HTTP请求。现在点击"停止记录",接着点击"下一步"。你会得到一个提示,需要给该测试输入一个名称(我用的是"My Test"),接着你可以点击"完成"关闭向导。
恭喜你!你现在是一个性能测试工程师了--很容易,对吗?
你还可以选择很多其它的设置信息和配置选项。你右键点击"测试"列表中的"My Test"节点并选择"属性" 可以看到这些设置。在这些选项中你可以模拟多个浏览器、多个用户、"热身"时间的参数(不会被报告其结果)以及测试的持续时间。你可以以后研究这些设置并阅读一些讨论测试原理和测试策略的文章。我们不在细节上花费太多时间,直接运行测试吧。