知识大全 用VS.NET中的测试工具测试ASP.NET程序

Posted

篇首语:一卷旌收千骑虏,万全身出百重围。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 用VS.NET中的测试工具测试ASP.NET程序相关的知识,希望对你有一定的参考价值。

用VS.NET中的测试工具测试ASP.NET程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  在编写ASP NET应用程序的时候 你会花费多长的时间来考虑性能的问题?很不幸 大多数开发者都对性能问题感到很后悔 性能的规划和设计真的需要放在前面和中心位置 你需要考虑自己的目标 并且确保把良好的性能作为目标之一 接着你需要评估自己的程序 评估的方面越多 改善性能的机会就越大     在本文中我将解释微软Visual Studio企业版中包含的一个重要工具 微软Application Center Test 严肃的Web开发者都应该把这个工具放在自己的工具包中      Application Center Test    在离开微软之前 我参加了 个城市的ASP NET说明会 其中一个覆蓋了性能问题 并且给很多开发者介绍了微软Application Center Test 这个工具总是生成大量的有趣的信息 我对它有很多疑问     你会发现Application Center Test是Application Center(可以在旧的MSDN CD或DVD中找到)的一部分 或者安装在Visual Studio NET企业版的Visual Studio NET \\Visual Studio NET Enterprise Features目录下面 当你第一次打开Application Center Test的时候 你可以看到一个用于导航可用的测试 结果和用户的树视图 首先 我希望显示出很容易建立测试      使用Application Center Test    首先 建立一个简单的Web应用程序 例如 我将使用图 所示的页面(请注意 我使用了一些联机编写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 mand = new SqlCommand( SELECT * FROM Products connection);  connection Open();    DataGrid DataSource = mand ExecuteReader();  DataGrid DataBind();      </script>    <form runat= server >  <asp:DataGrid id= DataGrid runat= server />  </form>    上面的代码虽然不是推荐的用于构造应用程序的方法 但是它也足够简单 我们能够在它上面执行一些基本的测试 在Web浏览器中打开这个页面会返回一个填充了的数据表格 它显示为HTML表格     现在你知道这个页面可以工作了 把链接复制到剪贴板上 你还需要使用它的 在我的计算机上这个例子的链接是x     下一步 导航到Application Center Test 右键点击 Tests(测试) 并选择 New Test(新建测试) 它会打开 新建测试向导 欢迎页面 点击 下一步 选择新测试的源代码 并选中 记录新测试 再次点击 下一步 以选择测试类型 提示选择脚本语言(我们不修改默认值)的时候 点击 下一步 出现了图 所示的界面      图 新建测试向导     记录测试 使Application Center Test易于使用 点击 开始记录 会打开一个新的浏览器实例 不要在地址栏中输入URL(应该为about:blank) 我们的操作是 在这个新的浏览器实例中选择Tools | Internet选择 并浏览 连接 属性页 接着点击 局域网设置 按钮 会看到图 所示的界面      图 连接设置    你会发现代理服务器(proxy)设置信息被填充了 并且与正常值不同 这是因为Application Center Test打开了一个新的浏览器实例并指示它使用Application Center Test运行的专用代理服务器 经过浏览器的任何请求都会被Application Center Test代理捕捉到     为了完成测试 请关闭浏览器对话框并把用于测试的ASP NET页面的链接粘贴到地址栏中 点击浏览器的 转到 按钮或直接按下回车键 再次出现了数据表格 下一步 关闭浏览器 你可能看到与图 类似的信息      图 捕捉到的请求    上面的对话框中的请求的详细信息部分现在被Application Center Test代理捕捉到的请求所填充了 这也是浏览器发送的HTTP请求 现在点击 停止记录 接着点击 下一步 你会得到一个提示 需要给该测试输入一个名称(我用的是 My Test ) 接着你可以点击 完成 关闭向导     恭喜你!你现在是一个性能测试工程师了 很容易 对吗?    你还可以选择很多其它的设置信息和配置选项 你右键点击 测试 列表中的 My Test 节点并选择 属性 可以看到这些设置 在这些选项中你可以模拟多个浏览器 多个用户 热身 时间的参数(不会被报告其结果)以及测试的持续时间 你可以以后研究这些设置并阅读一些讨论测试原理和测试策略的文章 我们不在细节上花费太多时间 直接运行测试吧      运行测试并建立基线    要运行刚才建立的测试 只需要简单地右键点击该测试并选择 开始测试 测试开始以后 点击 显示详细信息 按钮 细节框中将显示正在运行的测试的一个图表 同时显示在运行测试过程中可能出现的任何错误(图 所示) 第一次运行这个测试建立了基线 我们可以把它与当前的和未来的性能进行对比 图 显示的基线是每秒大约 个请求      图 基线图表    现在你拥有了一个确定的基线了 你可以对应用程序作一些修改以测量修改所引起的性能提升或降低 的确 我使用的测试示例极其简单 但是我会显示出对这一小段代码进行少量的修改可能对应用程序的性能产生很大的影响      了解改善的部分    评估的方面越多 改善的机会就越大 在例子中我将对应用程序作一些小的修改 并在每个修改之后进行评估 尽管在现实情况下你不可能每步修改都进行这样的测试 但是你应该有周期性检查性能的习惯 对于我们公司的Community Server产品 我们拥有一套用于评估总体应用程序开销的基线 如果进行了重大的修改 开发者就可以使用前面的测试数据来研究性能的提升或降低     我对示例应用程序的第一处修改是改变返回数据量的限制 我把SQL查询SELECT * FROM Products改变为SELECT TOP * FROM Products 这好像只是对代码进行了微小的修改 毕竟我只是限制屏幕中输出的数据量 但是其结果却是惊人的 其性能从每秒 个请求上升到 以上 性能提高了 %以上 由于你拥有基线 你知道了限制绑定到数据表格的数据量一定会影响性能 我还要修改其它一些东西     下一步 修改<asp:DataGrid/>服务器控件 添加EnableViewState= false     <asp:DataGrid EnableViewState= false id= DataGrid runat= server />    ViewState是ASP NET的一个重要的特性 但是并非总是需要的 实际上 大多数使用了ViewState的数据表格都是不需要它的 在例子中 通过禁止ViewState 我可以提高 %的性能 我们继续!    下一步 添加下面的代码以激活输出缓冲(OutputCaching)     <%@ OutputCache Duration= VaryByParam= none %>    图 输出缓冲    现在重新运行该测试 太惊人了!性能提高了 % 如图 所示 你可以调整OutputCache的持续数值 例如把OutputCache的持续值设置为 秒 你可以看到性能再次有很大的变化      建立测试环境    测试操作是CPU密集型的事务 因此在运行测试的时候 你可能看到CPU的占用率接近 % 它在与测试部件分享CPU时间的时候会拿走正在测试的应用程序的资源 所有的配置选项都会影响测试结果 其中一部分模拟现实世界要真实一些 例如 如果SQL Server和ASP NET在同一台计算机上 就无法模拟网络I/O的开销 大多数应用程序使用的数据库都不在Web服务器上     为了建立真实的测试环境 把大量的旧的用于开发的计算机作为客户端使用 不要使用虚拟机 在这些计算机上运行Application Center Test 下一步尽可能地模拟现实世界 在一个没有运行其它任何应用程序的服务器操作系统上运行该Web应用程序 并且连接到另一台服务器的数据库     需要说明的是 在开发环境中运行 烟幕 测试也没有什么错误 烟幕测试不能模拟现实世界 但是仍然可以提供大量的有价值的数据 并且可以用于预计在现实世界中同样的测试产生的结果      后续的步骤和测试覆蓋    现在你对如何测试和评估有了一些了解了 我推荐你在自己的应用程序上使用Application Center Test 了解你的用户在典型情况下如何使用应用程序是有好处的 哪些页面执行得更好 哪些页面没有改善?    例如 在Community Server中我们运行了多种类型的性能测试 主线(Mainline)测试包含了匿名和验证的情况 在大量个性化的应用程序中这一点可能显著的改变性能情况     主线测试还包含了贯穿系统的通用路径 例如网络日志 图表 论坛的主视图 以及每个屏幕的不同视图 很明显 这些主线情形良好的执行情况是非常重要的 最好在这儿花费大量的时间以确保其正确性     如果你管理或运行那些必须支持两个或多个并发用户 cha138/Article/program/net/201311/13214

相关参考

知识大全 用WatiN对ASP.NET页面进行单元测试

用WatiN对ASP.NET页面进行单元测试  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  单元

知识大全 ASP.NET入门教程 12.5 测试Web服务

ASP.NET入门教程12.5测试Web服务  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 vs.net打造发送与接收端程序

  本篇文章的主要开发环境是VisualStudioVisualStudio系列产品一直以来都提供了强大的控件功能然而我们利用这些控件可以编写出功能强大的应用程序本文主要利用微软的最新net开发工具为

知识大全 ASP.NET MVC架构下的测试驱动开发

ASP.NETMVC架构下的测试驱动开发  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一引言 

知识大全 asp.net页面传值测试实例代码

  WebForm_aspx内容如下:复制代码代码如下:<%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="WebForm_aspxcs"

知识大全 自带打包工具打包Asp.Net Web应用程序

自带打包工具打包Asp.NetWeb应用程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  打开

知识大全 asp.net文件操作类

  今天在网上看了一个文件操作类没有全部测试先记下来以后进行测试!》      /**    &nb

知识大全 用StrutsTestCase测试Struts应用程序

用StrutsTestCase测试Struts应用程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 ASP.NET中的HTTP模块和处理程序(上)

ASP.NET中的HTTP模块和处理程序(上)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  介

知识大全 ASP.NET中的HTTP模块和处理程序(下)

ASP.NET中的HTTP模块和处理程序(下)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在