1.1 Web测试的目的
Web测试的目的可分以下几点:
1、 创建Web应用程序的功能测试。
2、 创建数据驱动测试,即Web应用程序需要用户提供不同的Web页面的数据,这时用户可以用数据手动输入或批量输入来验证,页面输出的结果是不是与用户预期的输出结果一样。
3、 创建并运行可以测试应用程序性能的测试,即判断一个网站的性能怎么样,它能不能同时接受到来至内部与外部的请求。
4、 使用.NET语言进行测试创作、调试和测试扩展,即我们可以通过手动编写Web测试代码来提高web测试的灵活性,可以用于对web不同的测试点进行测试。这点测试的灵活性是最高的!
1.2 Web测试可以处理的HTTP操作
1、 可以录制到VIEWSTATE隐藏字段的相关性即它可以看到每个页面的VIEWSTATE值。
2、 重定向即我们在请求一个页面的同时,我们可以重定向到其他的页面中去。
3、 身份验证,即Web页面身份的验证很重要我们可以通过身份验证来验证登录页面用户的身份。
4、 可以通过HTTPS/SSL来确保安全。
1.3 Web测试的特点——思考时间
思考时间:所谓的思考时间是指用户浏览网页所花费的时间,其中包括查看网页和确定一步操作的时间,这个时间不包括页面加载的时间。
在记录Web测试时,会记录每个网页的思考时间。以后,在运行Web测试时,会使用或忽略思考时间。在“Web测度查看器”中使用“思考时间”按钮,可以从使用思考时间切换到不使用思考时间。
1.4 Web测试的方法
1) 打开一个Web网站,然后选择菜单栏的测试选项下的新建测试,在弹出的对话框中选择“Web测试”,分别输入测试名和测试项目名单击确定,则系统自动生成一个Web测试项目,并弹出带有Web Test Record的 IE。
2) 接着输入网站的地址,打开我们刚刚开发的网站。则这时Web Test Record就开始记录测试的步骤以及协议级的窗体参数,并且用户可以通过鼠标停留在记录上可以知道该操作的思考时间。当用户进行了一系列的操作后动行结束(关闭IE)自动回到VS2005.如下图所示:
图 15 Web测试记录数据
3) 这时用户可以通过双击Web测试记录器记录,从属性窗口中查看该记录的各项属性。同时用户也可以通过右击操作节点以便插入操作的步骤以及相关的属性与从属属性。这时我们所做的Web测试就已经完成了!
4) 如果我们还想运行刚才的Web测试,我们只单击下图运行调试按钮就可以了。如下图所示:
图 16 运行Web测试
运行结果如下:
图 17 Web测试结果
我们还可以通过点击 Web 测试设计器来配置我们的 Web 测试如下图所示:图 18 Web测试设计器
我们可以通过上图看到我们所做的这个Web测试总是通过的,主要的原因是因为如果当我们进行Web测试时没有加上验证信息那么Web测试就失去了它的意义。
1.5 Web测试验证与提取规则
验证规则根据预期的字符串结果对页面上的字符串进行检查,从而验证应用程序的功能是否正常。可以通过使用验证规则来验证预期值是否出现在特定HTTP请求的HTTP响应中。验证规则还可用于执行Web功能测试。其中预定义的规则包括以下几个:
1) 查找文本
2) 请求时间
3) 属性值
4) 所需要的标记
所谓的提取规则是指网页与网页之间存在着页面的跳转,在页面与页面跳转时需要从一个页面中提取一部份信息传送给下一个网页,那我们如何提取这部份内容呢,这就是所谓的提取规则。
我们可以使用提取规则从响应中复制字符串,然后将字符串存储到上下文变量中,以供任何后续请求使用。我们可以通过显示“详细信息”窗格,可以在Web测试查看器中检查上下文。
VSTS为我们提供了六种提取规则:
1)提取属性值
从指定的标记中提取属性值。该标记还可以包含另一个可指定值的属性。
2)提取窗体字段
提取响应中指定窗体字段的值,并将该值放入Web测试上下文中。
3)提取HTTP标头
提取HTTP标头的值,并将该值放入Web测试上下文中。
4) 提取正则表达式
提取响应中与正则表达式匹配的文本,并将该文本放入Web测试上下文中。
5) 提取文本
提取响应中的文本,并将该文本放入Web测试上下文中。
6) 提取隐藏的字段
提取响应中所有隐藏的字段,并将它们放入Web测试上下文中。
1.6 添加Web的规则
我们可以通过右击 Web 测试步骤来添加验证规则和提取规则。如下图所示:图 19 添加验证规则
我们可以在验证规则对话框中加入验证规则属性。如下图所示:
图 20 验证规则对话框
我们加入验证规则后,当我们再一次运行Web测试时,Web测试就会根据这个验证规则来匹配当前的页面有没有满足条件,如果没有满足条件则Web测试就无法通过。我们可以通过点击“详细信息”选项卡来查看结果。
同理对于“提取规则”也是一样的操作这理不再复述,用户可以通过测试结果的“上下文”选项卡来查看测试程序提取了那些字段有那些值等!从而可以制定相应的提取请求。
1.7 向Web测试绑定数据
Web测试绑定数据功能可以用于进行输入批量的数据,这些数据我们之前可以存放在数据库中,然后在Web测试过程中进行数据源的绑定。在进行数据绑定时VSTS支持对数据库中的记录进行顺序访问、随机访问和唯一访问。
所谓的顺序访问指从第一条记录开始,逐行能过整个表。这是默认的设置,这种访问方法在负载测试持续期间会依次通过表中的数据。
所谓随机访问指在表中的行之间随机访问。这种访问方法在负载测试持续期间会依次通过表中的数据。
所谓唯一访问指逐行访问数据但每条数据的记录只访问一次而不循环访问。
具体添加数据源的方法可以如下图所示:
图 21 添加数据源
通过上述数据源配置后,我们可以通过点击Web测试步骤在其属性框中指定数据源。如下图所示:
图 22 数据源绑定
2 负载测试详细介绍
负载测试是由一系列的单元测试和Web测试所组成的,可以说负载测试是Web应用程序的集成测试!
负载测试可以用于以下几种不同的测试类型:
1) 冒烟测试
确定在短时间内负载较小时应用程序如何执行。
2) 压力测试
确定在较长时间内负载较大时应用程序是否可以成功的运行。
3) 性能测试
确定应用程序的响应时间
4) 容量计划测试
确定各种容量下应用程序如何执行。
2.1 测试方案
负载测试包含一些方案,这些方案包含Web测试或单元测试。“方案”是负载测试中的容器,可在方案中指定负载模式、测试组合、浏览组合和网络组合。通过方案可以灵活的配置测试特征,便于模拟复杂的现实工作负载,因此方案非常的重要。
浏览器组合:模拟虚拟用户通过各种Web浏览器检查网站的过程。除Ineternet Explorer之外,浏览器组合还提供Web浏览器选项。
网络组合:模拟虚拟用户通过各种网络连接检查网站的过程。网络组合提供的选项包括LAN、电缆调制解调器等。
负载模式:指定负载测试期间的活动虚拟用户数和启动新用户的速度。例如:单步、负载、恒负载和基于目标的负载模式。
测试组合:指定虚拟用户在负载方案中运行给定测试的概率。例如:20%的概率运行TestA,80%的概率地TestB。
2.2 负载模式
负载模式属性指定在负载测试过程中如何调整模拟用户负载。VS2005提供了三种内置负载模式:
1) 恒负载模式:恒负载模式用于指定在负载测试期间不发生变化的用户负载。例如:对Web应用程序运行冒烟测试时,可能要设置一个较小的、10个用户的恒负载。
2) 单步负载模式:单步负载模式用于指定随时间不断增加到定义的最大用户负载的用户负载。对于单步负载,指定“初始用户计数”、“最大用户计数”、“单步持续时间(秒)”和“单步用户计数”。
3) 基于目标的负载模式
基于目标的负载模式与单步模式相似,但它基于相对于定期用户负载调整的性能计数器阈值调整用户负载。即由计算机随线性时间来分配用户数!
2.3 测试组合
测试组合指定虚拟用户在负载测试方案中运行指定测试的概率。这样可以更逼真地模拟负载。应用程序中可以有多个工作流而不是仅有一个,这可以更接近最终用户与应用程序交互的方式。向负载测试中添加一组测试之后,测试组合可像其他组合选项一样工作。虚拟用户根据在组合中指定的概率随机选择测试。例如:如果有两个测试,在组合中各占50%的概率,则一个新虚拟用户基本上通常会选择运行第一个测试。在50/50组合中,如果一个测试较长,另一个较短,则负载更多来自于较长的测试。即负载测试中单元测试与Web测试所占的比重
2.4 负载测试的步骤
1) 右键点击测试的工程,在弹出的菜单中选择添加负载测试如下图所示:
图 23 添加负载测试
2) 这时VS2005会弹出负载测试向导如下图所示:
用户根据这个向导依次填写测试方案的名称、负载模式、测试组合、浏览器组合、网络组合等相关参数,在配置完参数后系统会自动生成负载测试组合。在生成负载测试后,用户可将测试的结果保存于SQL数据库中,用户可以通过单击菜单栏测试选项中的“管理测试控制器”在弹出的对话框中用户可以进行配置存储的数据区。则这个数据库的建立就要是由以下这个文件脚本(loadtestresultsrepository.sql)建立的。
用户在负载测试结束后可以在自动弹出的负载测试结果中看到图形化的负载测试结果如下图所示:
图 25 测试结果