如何使用VSTS做压力测试
1 前言
1.1 目的
本文档主要介绍如何在VSTS环境中进行LoadTest测试,给测试人员和初次使用者提供参考。
对该工具进行LoadTest测试的优劣进行简单的分析说明。
1.2 软件版本
本文档中使用的VSTS 版本为2008 。
VSTS为 visual studio team 2008 缩写。
1.3 测试环境准备
本次文档中使用的虚拟环境为RHIS 1.1 测试环境,VSTS2008工具安装在本机中。
1.4 测试需求
在测试VSTS是否适合在RHIS项目中进行Loadtest,个人认为需要在以下几个方面进考察:
1. 工具能够录制和手工编写脚本,满足测试的需求。
2. 工具能够进行参数化设置,对脚本中的部分变量进行参数化,已达到多用户并发的要求。
3. 工具能够监控服务器和客户机的系统资源,以便输出报告进行软硬件性能瓶颈分析。
4. 工具是否能够出具良好的测试报告。
2 Loadtest测试
2.1 测试步骤
使用VSTS进行Loadtest测试时,基本步骤如下:
1. 首先建立一个webtest脚本,录制或者手工皆可。
2. 参数化测试脚本。
3. 验证测试脚本
4. 新建一个Loadtest脚本
5. 建立场景,包括设计场景的各种设置,并发人数、运行时间、客户端等等
6. 运行测试场景
7. 添加服务器监控计数器
8. 搜集测试结果,出具报告
接下来我们就开始一步步的学习怎样使用VSTS进行一次完整的Loadtest测试。
2.2 新建Test项目
使用VSTS进行测试工作时,我们首先需要新建一个测试项目。
1. 打开VSTS2008选择Test Team 进入界面:
2.3 新建WebTest脚本
1. 选择新建一个测试项目,并设置好项目的名称,存储路径:
2. 在工具栏中选新建一个Test:
3. 在界面中我们可以看到VSTS中所支持的所有的测试类型。我们在这里选择webtest,设置好测试名称和存储路径:
4. 在弹出的录制界面中,输入URL地址开始录制脚本
5. 按照测试要求或者需要录制完毕脚本后,出现以下的界面:
6. 对于录制完毕的脚本我有时需要进行的参数化工作,在VSTS中可以利用特有的方式对测试脚本进行参数化,已达到测试需要。
7. 选择需要进行参数化的步骤,在界面的右侧选择value,则可以进行参数化工作。选择“Add Data Source”
8. 在弹出的界面中,我们可以发现VSTS提供三种数据参数化模式“Databse”、“CSV File”、“XML File”三种方式,这里我们使用CSV文件进行参数化。
点击“Next”,进行下一步
9. 在文件选择界面中,选择参数化源文件:
点击确定。
10.界面中出现的列表即系统可以使用的参数数据:
11. 点击“Finish”后,系统会出现提示信息,并在项目列表中出现数据源信息:
12. 同样在右侧的工具栏中,可以看到参数化的相关信息:
13. 参数完毕后,我们可以运行下脚本,检验脚本是否正确:
点击Test工作区域的“Run Test”,检验脚本。
14.脚本运行完毕后,我们看到脚本是否参数化成功:
上面是脚本运行完毕后的报告页面。我们可以从上面得到许多相关的运行信息:脚本运行的当前步骤、测试结果、与步骤对应的WEB页面等等。
Test脚本验证完毕后,我们可以进行下一步的Loadtest的工作。
2.4 新建LoadTest场景
1. 选择新建一个Loadtest脚本
在VSTS中,我们可以认为Load test就是在建立一个测试场景,这个场景去加载执行测试脚本已达到压力测试的目的。
2. 在建立Load Test后,系统会弹出一个建立场景的向导帮助用户完成相关的操作:
3. 设置“Load Pattern”,系统提供了两种加载用户的方式:持续加载所有用户“Constant Load”,分布加载用户“Step load”。可以根据不同需要灵活配置达到不同的测试目的。
4. 在Test Mix Model 选项中我们可以对虚拟用的加载方式进行控制,系统提供了以下三中的方式,利用这三种方式可以更好的模拟实际的系统负载。
5. 选择要加载的web test脚本,在VSTS可以选择加载多个脚本。
6. 在Test Mix 中可以选择每个脚本使用的虚拟用户的百分比。
7. 在Browser Mix 中我们可以设置测试过程中模拟的浏览器的模式,通过下图我们可以看到VSTS中支持IE7、Firefox、 IE6.0等多个浏览器模式,功能较为强大。
8.在Network Mix 中,我们可以设置模拟网络带宽,系统支持多种网络模式。
9. 在Counter Sets 中我们可以设置想要监控的服务器的资源。添加一个服务器或者计算机到场景中,即可在测试的过程中添加计数器、监控系统资源
10.在Run Settings 中我们可是设置场景运行的时间和方式。
11. 运行Run Test开始Load Test场景测试工作。
12. 在测试界面中出现性能计数器,我们可以在右边的Counters 中 添加个人所需或者关心关键的性能计数器,计数器的选择需要根据系统的各方面的预先表现进行有针对性的添加。
13. 在测试运行完毕后,系统会自动生成一份测试Summary 报告:
生成的报告中包含 “test run information ”、“over results”、“error”等等信息,帮助分析结果。
2.5 添加事务点
之前有过性能测试经验的同事可能会发现,在VSTS的录制界面中没有添加事务点、集合点的功能,如图:
实际上我们可以在脚本生成后,在脚本中右键添加。由于在录制过程中会生成许多的requst请求,那么再想添加事务点时会有出错的可能。我们可以使先使用添加注释的方式标注事务点。
在脚本中我们使用右键可以插入许多方法,其中包括添加事务点:
2.6 添加计数器
计数器的添加在VSTS中,不是很方便。只有在Load Test运行时才能够添加用户关心的计数器,使用不是很方便。
对于添加我们想要监控的服务器可以使用以下步骤添加:
1.在界面的Run Setting 中右键选择“Manage Counter Sets”
2. 选择“Add Computer”,并输入计算机名称即可选择需要监控的系统信息,如图:
但是VSTS在运行时只会显示默认的一些技术信息,我们需要手工的去添加一些自己关心的计数器,是否能够保存设置,目前还是研究中。
通过以上的步骤,我们可以完整的进行一次次压力测试。
有关计数器详细列表和分析的相关内容,将在以后的学习中进行总结。
3 工具分析
对于使用VSTS进行压力测试,个人认为该工具能够基本完成轻量级的压力测试工作,而且在脚本可读性方面具有一定的优势。但是该工具也存在着一些缺陷:
1. VSTS只能进行基于web协议的压力测试,在协议扩展方面不强。如在RHIS系统中DAP模块的压力测试无法进行。
2. 计数器只能在测试开始时进行,如果计数器添加多时,会极大的增加工作量,并且不能被保存,人性化不足。
3. 出具的测试报告信息量较少,只能导出EXECL、TEXT格式的报告。
4. 监控的服务器上需要安装客户端,增加系统资源消耗。
5. 不支持对中间件、数据库的监控,如was 、oracle 等等。但是支持.net环境和IIS 对目前的RHIS系统较为适用。
VSTS这套工具集中许多测试工具,包括单元测试、手工测试、压力测试等等,功能比较强大,但是如果要专业化的测试性能和压力,VSTS中的Load Test 只能基本满足测试基于web协议的测试工作。