VS2010中的自动化测试——Web性能测试

一、概述

  网站的性能由很多不同的因素决定,比如:网络速度、不同的浏览器或者在同一时刻的用户数量、硬件处理能力等因素,都会影响到网站的性能和响应时间。Web性能测试就是帮助开发者在开发工程中就能确认并尽力修复这些问题。

  下面讨论几种主要的性能测试

  ● Validation and verification test: 这个测试用来帮助我们检验输入值和是否能在期望的入口安全登录。比如:一个字段要求你输入一个Email地址,那么你必须正确输入才能提交页面。

  ● Web page usability test: 它相当于是在生产环境中,通过模拟用户行为来查看网站内容是否完整。比如:每个链接是否正确或者页面上的信息是否显示正确等。

  ● Security Testing: 它帮助我们检验不同权限的用户是否能得到相应的内容,还有对本地或者服务器上其它资源文件的访问权限。

  ● Performance Testing: 帮助我们验证在特地环境下页面响应的时间,它包括压力测试和负载测试。

  ● Testing web page compatibility: 这个就是验证网站在不同浏览器上的兼容性。

  ● Testing a web application using different networks: 这个测试取决于我们的最终用户是处在什么样的网络环境中。

  对于Web性能测试,还有很多其它相关的测试,比如不同的操作系统、不同的数据库的影响等等都与性能有一定的关系。

  上面我所说的性能测试,在VS2010中提供了相应的工具,为我们进行测试,下面我们就来创建一个简单的Web性能测试。

  二、创建Web性能测试

  在我们创建Web性能测试之前先创建一个简单的网站,包括一个添加用户数据和显示用户数据的网页,数据表设计如下:

  网站用户界面如下:

  这个Web应用程序可以部署在Web服务器上进行测试,也可以直接在ASP.NET Development Server上进行测试,当然,如果在开发环境上测试,需要保持Development Server运行着。

  现在开始来创建一个Web性能测试,可以直接点击VS工具栏上Test->New Test…,然后选择如图所示文件:

 

点击OK后,会提示你新建一个测试工程,并给它命名,然后点击Create。这时会弹出一个IE窗口如下所示:

  左侧是一个Web Test Recorder(有可能在你创建测试文件后,弹出IE时没有这个东西出现,你可以通过IE的工具->管理加载项选项中将Web Test Recorder启用),它主要用来记录浏览测试网页时所有的操作,它会将所有的request和response记录下来,它还可以帮我们在不同的情况下找出我们期望的结果。

  现在我们输入刚刚创建的那个网页的地址,然后我们输入一些信息进行提交:

  点击Insert之后,我们会看到Recorder帮我们捕捉到一些信息:

完成所有操作后,点击Recorder面板中的Stop按钮,我们就可以自动跳转回VS中,并显示出之前记录的所有请求信息。

  至此,一个简单的Web性能测试就建好了。可以点击工具栏左上角的运行测试一下。上图显示的是一个Web性能测试的编辑窗口,窗口中,树的每一个层级都有不同的属性可以进行设置。除此之外,编辑窗口还有一个工具栏,能为测试用例提供不同的功能以及数据源等。

  下面我来详细说一下性能测试编辑窗口中的各个功能及操作。

  上次说到我们编辑窗口中的树结构,每一层都会有不同的属性设置。

  ● Root Level:可以说是一条Web性能测试的入口点,比如:可以在此设置用户验证、代理或者为这条测试添加一些描述信息等;

  ● Request Level:在Web性能测试中记录下来的每一条单独的请求,可以在此设置用户思考时间(think time)、请求方式(GET或者POST)或者设置是否缓存等;

  ● Request Parameter Level: 这里是每次请求的参数设置,可以在此设置是否进行Url编码、值还有名称。

  这里所有的属性设置你都可以在属性视窗中看到说明,如果还有不懂的,可以查看MSDN进行帮助,所有的属性都在Microsoft.VisualStudio.TestTools.WebTesting这个命名空间下。

  三、提取规则(Extraction Rules)

  在VS中我们可以用提取规则的功能把网站中的一些有用的数据提取出来。

  通常情况下,几乎所有的网站,它们页面之间总会有一些依赖关系,比如说你的下一个请求依赖你上一次请求响应中得到的一些数据。所以提取规则这个功能就是可以让你从响应的数据中提取到你需要的数据,并保存下来,用于你下一次的请求或者你之后需要的时候。它保存下来的数据在一个上下文参数中,你可以在全局环境中使用它。

  在VS2010中已经为我们内建了几种提取规则,如图:

  关于内建提取规则说明,可参见这里。如果内建的这些提取规则还不能满足你的需要,也可以自定义自己的提取规则。

 这里我借百度(偷个懒^_^)做个Demo,看下怎么使用提取规则。

  根据上篇内容,首先利用Recorder来打开百度,然后随便搜索一个东西(我百度的James),最后点击Stop,会在VS中生成如下数据:

  现在我们在第一请求节点上右键添加一个提取规则,因为我是要提取第一次请求响应回来的中的值,如下所示:

  提取规则设置如下:

 通过上面的设置,我将百度页面中,搜索按钮的值(“百度一下”)进行了提取,那么baidu这个参数在之后的程序中将一直保存着这个值。它的访问方式类似于key-value这样的形式。我们运行一下这个测试,就可以在结果中看到我们提取的信息了。

  我们可以将保存出来的信息用于下一次请求或者之后的任何一次请求中,比如我们可以修改第二个请求中需要搜索的值:

  通过右键属性,然后在值属性中,将它重新绑定到baidu属性,我们还需要注意一下的是我们之前提取的值是中文,所以需要将Url编码设置为ture。最后我们重新运行一下测试看下结果:

  这里可以看到我们的第二次搜索不在是James,而是“百度一下”了。

  四、验证规则(Validation Rules)

  很多网站都有一些验证程序来验证输入或者输出是否正确,比如:用户名不能含有特殊的字符、密码不得少于6个字符或者正确的Email格式等等。

  验证规则这个功能就是验证响应的数据是否包含期望的信息,如果有,这条请求就可以pass,否则就会fail。

  我的VS2010也内建了几种验证规则:

  关于内建的验证规则说明,可参见这里。如果内建的这些验证规则还不能满足你的需要,也可以自定义自己的验证规则。

  验证规则的使用方法其实和提取规则差不多,但是它只是起验证的作用,而不会帮你保存数据。但是要注意的一点是,随着验证规则的增多,网站的性能测试和测试时间都将受到影响,尤其是在做压力测试的时候,更要决定好哪些数据非常重要的、需要验证的。当然,VS中也提供设置验证规则的级别来降低这些影响。

本文出自seven的测试人生公众号最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-10-27 13:37:02

VS2010中的自动化测试——Web性能测试的相关文章

高效的 web 性能测试工具OpenSTA使用详解

概述 随着 Web 应用技术的发展和 Web 应用程序的迅速普及,Web 系统的性能和服务质量显得越来 越重要.性能测试在软件的质量保证中起着越来越重要的作用.性能测试是通过自动化的测试工具模拟多种正 常.峰值以及异常负载条件来对系统的各项性能指标进行测试.性能测试是一种信息的收集和分析的过程,测 试过程中通过收集的数据用来预测怎样的负载水平将耗尽系统资源.性能测试保证程序具有良好的性能,它考 察在不同的用户负载下,Web 对用户请求做出的相应情况,以确保将来系统运行的安全性.可靠性和执行效率

游戏项目中的自动化测试和持续集成

现在,许多游戏项目要么跳票严重,要不就是发布时Bug多多.当然,这样的现象并不仅存于游戏工业.例如,根据2001Standish集团发表的那份 声名狼藉的报告"极度混乱"所表述的,70%以上的软件项目要么被取消,要么严重的超时和超支.然而,游戏是软件开发复杂性的最佳代表,不同技能的人需要 协同工作,这也就是某些人所说的游戏项目中高风险因素所在. 软件项目延期.Bug满天飞和失败的原因是多种多样的,但看起来除了随产品特性不断变化之外,测试和品质管理是永恒的问题.以我们的经验来看,相当多数

unity2.0中在VS2010中运行正常,在IIS中无法注入

问题描述 unity2.0中在VS2010中运行正常,在IIS中无法注入Page页面通过public属性的方式注入servicepublicpartialclassLogin:System.Web.UI.Page{publicIUserServiceservice{set;get;}}注入是通过xml文件配置的在VS2010环境一切正常,发布到IIS7中sevice就为null了在protectedvoidPage_Load(objectsender,EventArgse){if(!IsPost

VS2010中水晶报表应用及实例

原文:VS2010中水晶报表应用及实例 基本分类如下:第一部分:VS2010简介VS2010是微软的提供的一套完整的开发环境,功能也是相当的大微软宣布了下一代开发工具和平台的正式名称,分别称为"Visual Studio Team System 2010"和".NET Framework 4.0",很显然二者会在2010年发布. VSTS 2010开发代号"Rosario"(阿根廷港市罗萨里奥),将致力于引领下一代平台发展.提高开发人员的工作效率

WIN7 64位操作系统,Oracle.DataAccess在VS2010中正常,到了IIS就不正常了

问题描述 如题,IIS中没有启用32位程序,因为一启动,页面运行就导致应用程序池停止oracle.dataaccess版本为2.112.3.0数据库用的oracle11 解决方案 解决方案二:列出异常信息,否则就靠报错来猜测啊?解决方案三:oracle11的ODP.NET版本为4.112.3.0吧?解决方案四:引用1楼starfd的回复: 列出异常信息,否则就靠报错来猜测啊? 能加载文件或程序集"Oracle.DataAccess"或它的某一个依赖项.试图加载格式不正确的程序.说明:执

高性能WEB开发:web性能测试工具推荐

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 WEB性能测试工具主要分为三种,一种是测试页面资源加载速度的,一种是测试页面加载完毕后页面呈现.JS操作速度的,还有一种是总体上对页面进行评价分析,下面分别对这些工具进行介绍,如果谁有更好的工具也请一起分享下. Firebug: Firebug 是firefox中最为经典的开发工具,可以监控请求头,响应头,显示资源加载瀑布图: HttpWat

mfc入门-vs2010中mfc如何在已添加的类中再给后加的对话编辑器添加变量

问题描述 vs2010中mfc如何在已添加的类中再给后加的对话编辑器添加变量 vs2010中mfc如何在已添加的类中再给类创建之后添加的对话编辑器添加变量 解决方案 需要对话框重新绑定,生成对话框类,然后你添加变量等,你先生成类了,就只能手动修改了,没法自动绑定到资源

VB.NET中的简单Web Service例程

web VB.NET中的简单Web Service例程 本文和附带的源码向您演示了在.NET开发环境下创建一个WEB服务是如何得简单,同时演示了客户端如何使用这个WEB服务.例程创建了一个计算器的简单WEB服务,它有三个方法:加.减和除. 下载文件包WebService_mehta.zip包含所有演示文件: Calculator.asmx HTMLClient.Html InetClient (VB6 Project) Calculator.asmx代码 <%@ WebService Langu

在 Intranet 环境中保护 .NET Web 应用程序

web|程序 Microsoft Corporation内容简介 基于 Intranet Web 应用程序的安全性并不是不重要,因为它存在于许多控制网络中,并且对一个限制集合中的用户是可以访问的.不同个体和部门可能需要对应用程序提供的功能和数据有不同的访问等级,所以在传输过程中仍然必须保护机密数据的安全性.为了使问题复杂化,应用程序的安全性结构必须补偿任何安全性相关的问题,这些问题源于存在的基础和要配置应用程序的 Intranet 的操作特点. 通过关注某些常用分布式应用程序结构的要求,本章介绍