Visual Studio进行Web性能测试- Part III

Visual Studio进行Web性能测试- Part III

原文作者:Ambily.raj

对于一个多用户的应用程序,性能是非常重要的。性能不仅是执行的速度,它包括负载和并发方面。Visual Studio是可以用于性能测试的工具之一。Visual Studio Test版或Visual Studio 2010旗舰版为自动化测试提供了支持。

介绍

对于一个多用户的应用程序,性能是非常重要的。性能不仅是执行的速度,它包括负载和并发方面。性能测试是对以下问题的回答

  • 我们如何确保我们的新的应用程序将支持预期的用户负载?
  • 如何避免在实际负载条件下会出现的问题?
  • 如何确定响应时间?
  • 如何规划服务器的容量?

Visual Studio是可以用于性能测试的工具之一。Visual Studio Test版或Visual Studio 2010旗舰版为自动化测试提供了支持。

这将是一系列文章的第三部分。

  • Part I: Web测试和配置
  • Part II:负载测试,RIG和负载测试术语。
  • Part III:性能计数器,负载测试结果分析。

性能计数器

性能计数器可以是系统预定义或用户自定义的,用来衡量系统的性能。性能测试结果分析完全依赖于作为测试的一部分而捕获的性能计数器。因此,为了有更好的测试结果和更好的分析,我们首先需要了解每个服务器相关的的重要的计数器。

我们可以使用性能监视器(这篇文章中讨论的)或使用Visual Studio本身,来捕捉性能计数器。为了获取相应的服务器的计数器,在需要在Load test中把服务器添加到computer section。

添加计算机来收集性能计数器

在Load test中,右键单击Run Settings 下的 Counter Set Mappings,选择Manage Counter Sets选项。

Manage Counter Sets窗口将被打开,在这里我们可以添加计算机。添加计算机系统,并选择相应的计数器。

当负载测试执行时,我们可以在Visual Studio中观察到每个计算机系统对应的计数器。

在性能监视器中添加计数器

本文也将讨论设置性能监视器来捕获计数器。如果您使用性能监视器来捕获计数器,那么我们就需要确保在负载测试前启动计数器,并在负载测试完成后再关闭它。还需要从多台服务器合并结果并生成报告。

(译者:在Run中输入perfmon,来打开性能监视器。在性能工具->性能监视器下打开性能监视器图表,在性能监视器图表中,点击+或右键菜单来添加计数器)

重要的计数器

我们根据服务器和服务器上的应用程序来捕获对应的计数器。例如,一个数据库服务器所需的计数器和web服务器上的不同。另外,我们需要为每个服务器设置通用的计数器,如处理器利用率,内存利用率等。在本节中,我们将讨论通用计数器和应用程序服务器以及数据库服务器所需的重要的计数器。在这里,我们将讨论一些重要的计数器,但不是全部。

通用计数器

\Processor(*)\%Processor time -这个计数器衡量处理器的利用率。在所有服务器上捕捉这个计数器,并测量平均使用率。在空闲的情况下,处理器的利用率应低于80%。

\Process(*)\Private Bytes - 指示分配给该进程的内存的字节数。该计数器指示进程的内存使用率。

\Network Interface\Bytes Received/sec, \Network Interface\Bytes Sent/sec, \Network Interface\Bytes Total/sec -这三个计数器指示了服务器的网络使用率。

ASP.NET Web应用程序服务器计数器

\.Net CLR Data\ -这个计数器组包含与以下相关的计数器:连接池的数量,失败的连接尝试的数量和在应用程序服务器上运行的特定进程的连接池的数量。

(译者:.net连接池用于ADO.net和数据库连接,可以参考.NET连接池救生员一文)

\.Net CLR LocksAndThreads\ -这个计数器组包含物理和逻辑线程数和发生竞争(Contentions)的数量。

(译者:逻辑线程指托管线程;物理线程指操作系统线程;Contentions指试图获取托管锁发生的错误)

\.Net CLR Memory\ -这个计数器组包括Gen 0,Gen 1和Gen 2的垃圾回收数量和堆的大小。指示了垃圾收集率和应用程序每轮的内存管理。

\.Net Memory Cache4.0\ -这个计数器组帮助你了解应用程序的缓存实现。

\ASP.Net Applications\ -这个计数器组提供请求处理和应用管理的概览:有多少请求被处理,拒绝,排队或断开,缓存命中率和失误,错误,身份验证失败,输出缓存请求数和失败数,活跃和被丢弃的会话,提交和中止的事务。

数据库服务器计数器

\Database\ -数据库相关的计数器,如数据库高速缓存的大小,数据库I / O读取和写入,页面转换和记录转换。SQL Server特定的计数器被定义在单独的计数器组。

\SQLAgent:Jobs\ -该计数器组包含的计数器指示了SQL Server中运行的作业的状态。指示了有多少作业是是活动的,失败的,正在排队,或已成功执行。

\SQLServer:Locks\ -这个计数器指示在应用程序执行中有多少次死锁发生。

通用术语

在讨论的计数器以及如何理解它们前,我们需要研究性能测试相关的多个术语。

响应时间(Response Time)

大多数的性能测试是为了了解在给定负载情况下应用程序的响应时间。如果应用程序没有完成性能测试,那么预期的用户负载的响应时间可能不会被定义。

响应时间是指一个页面或者事务响应用户所花费的时间。8秒是一个网页标准的最大响应时间。如果页面有很多的图像或视频,它可能需要更多的时间来加载。为了更好的使用,我们可以加载页面中使用异步调用和Ajax。如果响应时间是非常高的,用户的体验将变得糟糕,对应用的使用方法也可能会影响到响应时间。减少响应时间的同时保持丰富的用户界面是一项挑战。

吞吐量(Throughput)

吞吐量是每秒由服务器处理的事务或输入的数量。这指示了服务器每次可以处理的负载或请求的数量。根据吞吐量和响应时间的要求,我们可以来规划的服务器集群。

资源利用(Resource Utilization)

资源利用包括服务器的处理器,内存和网络的利用率。应用程序对服务器资源的利用率确定了,我们是部署一台服务器,还是需要部署多台服务器。

这是三个主要的性能测试术语或者指标。除了这些衡量指标以外,我们有网络时间,等待时间,请求时间,测试组合,负载组合等指标,我们将在后面讨论。

结果分析

现在,我们有所需的计数器数据和性能数据,如响??应时间和吞吐量等。对于不同场景的性能结果分析,无法在一两个文档中解释清楚。取决于我们收到的作为性能测试的结果数据,分析会有所不同。

例如,假设你得到很高的响应时间,同时具有良好的资源利用率??。简单来说这意味着,高响应时间不是由于任何资源的问题引起的,它可能是由于你的SQL部分或前端代码引起。查看SQL计数器,并确定是否有特定的页面做了某些数据库调用并产生大量的读,写或占用大量CPU时间。如果是这样的话,这个问题在于数据库查询或存储过程。而后,我们缩小到数据库级别的问题,然后我们就可以使用数据库工具,如SQL Execution plan或Data engine tuning advisor,了解并解决此问题。

如果问题出在应用程序的代码上,然后我们需要研究的问题是,问题是否是由高速缓存,图像,线程,连接池的问题导致的。

结论

我们在下一篇文章中我们将使用一些示例场景来更深入讨论性能测试的结果分析。

本文由知平软件刘斌华翻译,转载请注明出处。原文地址:http://www.dotnetfunda.com/articles/article1563-web-performance-test-using-visual-studio-part-iii.aspx

知平软件致力于移动平台自动化测试技术的研究,我们希望通过向社区贡献知识和开源项目,来促进行业和自身的发展。

原文地址:https://www.cnblogs.com/micro-chen/p/10360324.html

时间: 2024-08-04 04:34:02

Visual Studio进行Web性能测试- Part III的相关文章

Visual Studio进行Web性能测试- Part II

Visual Studio进行Web性能测试- Part II 2012-08-31 14:34 by 知平软件, 7557 阅读, 5 评论, 收藏, 编辑 原文作者:Ambily.raj 对于一个多用户的应用程序,性能是非常重要的.性能不仅是执行的速度,它包括负载和并发方面.Visual Studio是可以用于性能测试的工具之一.Visual Studio Test版或Visual Studio 2010旗舰版为自动化测试提供了支持. 介绍 对于一个多用户的应用程序,性能是非常重要的.性能不

Visual Studio进行Web性能测试- Part I

Visual Studio进行Web性能测试- Part I 2012-08-29 08:01 by 知平软件, 5356 阅读, 9 评论, 收藏, 编辑 原文作者:Ambily.raj Visual Studio是可以用于性能测试的工具之一.Visual Studio Test版或Visual Studio 2010旗舰版为自动化测试提供了支持.本文介绍Visual Studio的Web测试功能. 介绍 对于一个多用户的应用程序,性能是非常重要的.性能不仅是执行的速度,它包括负载和并发方面.

Visual Studio的Web Performance Test提取规则详解(1)

总结 Visual Studio的Web Performance Test是基于HTTP协议层的,它不依赖于浏览器,通过直接接收,发送HTTP包来和Web服务器交互.Web Performance Test发送和接收的一系列请求和响应之间存在相关性,例如,用户登录后,SID被传递给客户端,下一次请求时,需要把SID发送到服务器.因此,Web Perfomance Test 定义了多种提取规则,帮助从服务器响应中提取信息,用于之后的请求.或者保存起来,作为测试结果的一部分. Web Perform

Visual Studio发布Web项目报错:Unable to add 'xxx' to the Web site. Unable to add file 'xxx'. The specified file could not be encrypted.

背景 Visual Studio下的Web项目 现象 发布时遇到Unable to add 'xxx' to the Web site.  Unable to add file 'xxx'. The specified file could not be encrypted.的报错 原因 这些文件(文件夹)被设置为"加密".可能因为这些文件是从Internet上下载并复制到项目下的文件夹,在被下载前就已经被启用"加密"选项 这些文件(文件夹)来自于其他计算机并被锁定

Visual Studio 2013 Web开发、新增功能:“Browser Link”

微软正式发布Visual Studio 2013 RTM版,微软还发布了Visual Studio 2013的最终版本..NET 4.5.1以及Team Foundation Server 2013.下面我们体验下Visual Studio 2013 Web开发方面有哪些特性,具体可以参看http://www.asp.net/visual-studio/overview/2013/release-notes. 1..net framework 2.0/3.0/3.5/4.0/4.5/4.5.1

Visual Studio 2013 Web开发新特性

微软正式发布Visual Studio 2013 RTM版,微软还发布了Visual Studio 2013的最终版本..NET 4.5.1以及Team Foundation Server 2013.下面我们体验下Visual Studio 2013 Web开发方面有哪些特性,具体可以参看http://www.asp.net/visual-studio/overview/2013/release-notes. 1..net framework 2.0/3.0/3.5/4.0/4.5/4.5.1

Visual Studio通过Web Deploy发布网站报错:An error occurred when the request was processed on the remote computer.

这个问题很奇怪,不管我怎么重启服务器和自己的开发机,都没有用. 在网上找了很多资料,有说可以尝试去读Windows的错误日志,然后通过日志找原因-(相见Stackoverflow:http://stackoverflow.com/questions/6939150/web-deployment-task-build-failed) 最终,我决定先卸载Web Deploy,然后按照此前我写的文章(http://www.cnblogs.com/Richeir/p/5371802.html),重新部署

Visual Studio使用Web Deploy远程发布网站及其配置

https://blog.csdn.net/yzj_xiaoyue/article/details/60574378 废话不多说,直接进入正题(各个步骤请看图片的序号): IIS配置 1.打开服务器 2.添加角色和功能向导 3.添加角色和功能向导——选择安装类型 4.添加角色和功能向导——服务器选择 5.添加角色和功能向导——服务器角色:选中IIS(Internet信息服务),安装IIS管理工具 6.添加角色和功能向导——功能:选择安装.Net framework功能 7.添加角色和功能向导——

阿里云服务器Web Deploy配置和使用Visual Studio进行Web项目发布部署遇到的坑

阿里云的服务器一直闲着,烧着银子,当初花几千大洋开通,本想弄信息化的项目为所帮扶的贫困户脱贫助手,不想势单力薄,一直没有找到好的项目.最近大家都在众志成城抗击新肺疫情,于是又想能不能尽点自己的力量,于是又开始打开Visual Studio 鼓捣起项目来,为了测试与微信服务器的消息发送,每次都得把项目发布到阿里的去服务器上,由于以前一直没怎么用,发布的方法是采用最原始的复制,然后远程桌面粘贴上去.次数多了感觉太累了,比较的方法,一个是FTP方式,另一个是Web Deploy,FTP方式虚拟主机一直