这里又有一个问题:我如何测试页面的执行速度?
虽然说创建HttpWebRequest访问页面是个很简单的方法,但我并不打算这样做。
因为从HttpWebRequest发起调用到获取结果,这其中除了有页面的执行时间,还混杂较多的额外调用开销。最终,我选择了在一次HTTP请求中,循环调用Server.Execute来执行页面,并统计时间的方式。其实如何选择测试方法,对于二个测试对象还说,都是公平的。只是说:尽量减少一些额外的调用开销,会让测试结果的差异更大,也更明显。
说明:为了测试代码写起来简单,我使用了MyMVC框架。
498)this.width=498;'' onmousewheel = ''javascript:return big(this)'' border="0" alt="" width="31" height="11" src="http://images.myeducs.cn/files/uploadimg/20120312/144114346.gif" />
测试用例1:WebFromPage.aspx
前面介绍了测试背景以及测试方法。现在就来介绍第1个测试用例,它采用了WebForm编程模型中最经典的写法。
页面代码:
- <%@ Page Language="C#" CodeFile="WebFromPage.aspx.cs" Inherits="TestPage_WebFromPage" %>
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <title>PagePerformanceTest http://www.cnblogs.com/fish-li/</title>
- </head>
- <body>
- <p>This is WebFromPage.aspx</p>
- <asp:Repeater ID="repeater1" runat="server" onitemdatabound="repeater1_ItemDataBound">
- <ItemTemplate>
- <asp:HyperLink ID="link1" runat="server"></asp:HyperLink><br />
- </ItemTemplate>
- <FooterTemplate><hr /></FooterTemplate>
- </asp:Repeater>
- <asp:Repeater ID="repeater2" runat="server" onitemdatabound="repeater1_ItemDataBound">
- <ItemTemplate>
- <asp:HyperLink ID="link1" runat="server"></asp:HyperLink><br />
- </ItemTemplate>
- <FooterTemplate><hr /></FooterTemplate>
- </asp:Repeater>
- <asp:Repeater ID="repeater3" runat="server" onitemdatabound="repeater1_ItemDataBound">
- <ItemTemplate>
- <asp:HyperLink ID="link1" runat="server"></asp:HyperLink><br />
- </ItemTemplate>
- <FooterTemplate><hr /></FooterTemplate>
- </asp:Repeater>
- <asp:Repeater ID="repeater4" runat="server" onitemdatabound="repeater1_ItemDataBound">
- <ItemTemplate>
- <asp:HyperLink ID="link1" runat="server"></asp:HyperLink><br />
- </ItemTemplate>
- <FooterTemplate><hr /></FooterTemplate>
- </asp:Repeater>
- <asp:Repeater ID="repeater5" runat="server" onitemdatabound="repeater1_ItemDataBound">
- <ItemTemplate>
- <asp:HyperLink ID="link1" runat="server"></asp:HyperLink><br />
- </ItemTemplate>
- <FooterTemplate><hr /></FooterTemplate>
- </asp:Repeater>
- </body>
- </html>
页