VS2010中的自动化测试(5)——Web性能测试
原文地址:http://www.cnblogs.com/heqichang/archive/2011/11/20/2256478.html
类目见这里:http://www.cnblogs.com/heqichang/category/315226.html
接着上次那篇文章,这次我来详细说一下性能测试编辑窗口中的各个功能及操作。
上次说到我们编辑窗口中的树结构,每一层都会有不同的属性设置。

- 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中也提供设置验证规则的级别来降低这些影响。
相关文章:
VS2010中的自动化测试(1)——VS2010中的测试管理工具
VS2010中的自动化测试(5)——Web性能测试的更多相关文章
- VS2010中生成遇到的 web.config 问题
1. 错误:无法在此路径使用此配置节.当站点管理员使用继承的配置文件中的 <location allowOverride="false"> 锁定对此节的访问时会出现 ...
- Web性能测试中的几个关键指标
系统吞吐量 吞吐量指单位时间内系统处理的请求数量,体现系统的整体处理能力.对于网站,可以用"请求数/秒"或是"页面数/秒"来衡量,也可以用"访问人数/ ...
- Jmeter Web 性能测试入门 (七):Performance 测试中踩过 Jmeter 的坑
脚本运行的过程中,大量request抛error,但没有地方能够查看request是因为什么error的. 原因:Jmeter默认禁掉了运行过程中每个request的具体response信息收集,只保 ...
- VS2010 中,windows服务不能添加 System.Web 引用
今天在写windows服务的时候,右键添加引用->.NET中没有找到System.Web,在->Recent中找到System.Web,但添加完后却显示黄色叹号,最后百度一下解决了这个问题 ...
- 转:Visual Studio进行Web性能测试- Part II
原文作者:Ambily.raj 对于一个多用户的应用程序,性能是非常重要的.性能不仅是执行的速度,它包括负载和并发方面.Visual Studio是可以用于性能测试的工具之一.Visual Studi ...
- Visual Studio进行Web性能测试- Part III
Visual Studio进行Web性能测试- Part III 原文作者:Ambily.raj 对于一个多用户的应用程序,性能是非常重要的.性能不仅是执行的速度,它包括负载和并发方面.Visual ...
- Visual Studio进行Web性能测试- Part II
Visual Studio进行Web性能测试- Part II 2012-08-31 14:34 by 知平软件, 7557 阅读, 5 评论, 收藏, 编辑 原文作者:Ambily.raj 对于一个 ...
- Visual Studio进行Web性能测试- Part I
Visual Studio进行Web性能测试- Part I 2012-08-29 08:01 by 知平软件, 5356 阅读, 9 评论, 收藏, 编辑 原文作者:Ambily.raj Visua ...
- Selenium自动化测试,接口自动化测试开发,性能测试从入门到精通
Selenium自动化测试,接口自动化测试开发,性能测试从入门到精通Selenium接口性能自动化测试基础部分:分层自动化思想Slenium介绍Selenium1.0/2.0/3.0Slenium R ...
随机推荐
- 动软代码生成器三层用于winform
DBUtility项目中的DbHelperSQL.cs (找自己对应的数据库类型) 修改前20行中的数据库连接字符串获取方式为: //数据库连接字符串(web.config来配置),多数据库可使用Db ...
- runnable和thread的区别
一是写一个类继承自Thread类,然后重写里面的run方法,用start方法启动线程二是写一个类实现Runnable接口,实现里面的run方法,用new Thread(Runnable target) ...
- sql server主动推送客户端更新数据
小谈需求: 最近工作上接到一个需求,做一个web展示数据的报表,最好能实时更新,不限制所用技术. 第一个问题:web服务器推送给浏览器新数据,一开始我想到的最快的最简单的方法就是 在web页面上js轮 ...
- c#与c++交互的一些东西
最近做一个项目,对方公司只提供了一个c++的DLL,但没封住,c#无法DllImport.所以只能自己写c++来封住了. 对方的Dll只接收yuv420的图片格式,所以在c++里用opencv来转换. ...
- WordPress4.1新的函数介绍
wordpress 4.1也更新了一阵子了,作为一般用户最关系的就是新的wordpress主题,作为开发者,新增的函数也给我们带来了更多的便捷和惊喜,今天就转载一篇介绍wordpress4.1中新增的 ...
- ZOJ 刷题记录 (。・ω・)ノ゙(Progress:31/50)
[热烈庆祝ZOJ回归] P1002:简单的DFS #include <cstdio> #include <cstring> #include <algorithm> ...
- windows API 统计系统字体
最近工作中遇到一个需求,需要统计当前系统中包含的所有字体.在网上逛了一圈后发现了EnumFontFamiliesEx这个API好像就可以实现这个功能.这里将自己对这个API的理解做一个记录,算是对这块 ...
- 【BZOJ3295】【块状链表+树状数组】动态逆序对
Description 对于序列A,它的逆序对数定义为满足i<j,且Ai>Aj的数对(i,j)的个数.给1到n的一个排列,按照某种顺序依次删除m个元素,你的任务是在每次删除一个元素之前统计 ...
- Java使用百度云存储BCS-让你的数据下载飞起来
作者:Vinkn 来自http://www.cnblogs.com/Vinkn/ 一.简介 云也不是一个新概念了,云到底是什么东西,你叫我说个明明白白的我也说不出来,姑且算作联网的就叫做云.国内的云服 ...
- 解决IE6不支持position:fixed;的问题
在网页设计中,时常要用到把某个元素始终定位在屏幕上,即使滚动浏览器窗口也不会发生变化. 一般我们会使用position:fixed来进行绝对固定,但IE6并不支持position:fixed属性,所以 ...