在市场需求的推动下 , Web 应用如今已经从一般的网站发展成为大型电子商务、信息发布和提供各种服务的平台 , 软件规模不断扩大 , 软件复杂性不断增加 , 但是激烈的商业竞争使软件开发周期缩短 , 如何保证 Web 应用的正确性和可靠性越来越成为人们关注的问题。作为保证软件质量和可靠性的重要手段 ,Web 应用软件的测试就成为如今开发过程中的一个重要环节。本文将介绍一款开源的 Web 性能测试软件— OpenSTA,OpenSTA 是专用于 B/S 结构的、免费的性能测试工具。它的优点除了免费、源代码开放等优点外,还能对录制的测试脚本进行分析,并且按指定的语法进行编辑。通过实际的应用实例证 明,OpenSTA 具有较为广阔的应用前景。
概述
随着 Web 应用技术的发展和 Web 应用程序的迅速普及,Web 系统的性能和服务质量显得越来越重要。性能测试在软件的质量保证中起着越来越重要的作用。性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载 条件来对系统的各项性能指标进行测试。性能测试是一种信息的收集和分析的过程,测试过程中通过收集的数据用来预测怎样的负载水平将耗尽系统资源。性能测试 保证程序具有良好的性能,它考察在不同的用户负载下,Web 对用户请求做出的相应情况,以确保将来系统运行的安全性、可靠性和执行效率。性能测试的主要目的是为维护系统的性能找到有效地改善策略。
OpenSTA 是一个免费的、开源的的 web 性能测试工具。OpenSTA 是专用于 B/S 结构的、免费的性能测试工具。它的优点除了免费、源代码开放等优点外,还能对录制的测试脚本进行分析,并且按指定的语法进行编辑。软件测试工程师在录制完 测试脚本后,只需要了解该脚本语言的特定语法知识,就可以对测试脚本进行编辑,以便于再次执行性能测试时获得所需要的参数,而后进行特定的性能指标分析。 OpenSTA 以最简单的方式让大家对性能测试的原理有较深的了解,其较为丰富的图形化测试结果大大提高了测试报告的可阅读性。
OpenSTA 的安装及配置
为了能够更为详实的说明 OpenSTA 的应用过程,本节下面主要介绍 OpenSTA 的安装及配置过程,使测试人员能够更为快捷便利地使用 OpenSTA 进行性能测试的工作,能够更加方便的应用 OpenSTA 的各项功能。
下载软件安装包,OpenSTA 官方网站提供了基于 windows 系统的各种安装包,用户可以根据需要进行下载安装。 OpenSTA 安装包下载地址:http://www.opensta.org/download.html
双击下载的安装包进行安装。
图 1. OpenSTA 安装界面
图 2. OpenSTA 操作界面
OpenSTA 测试的组成
OpenSTA 测试
OpenSTA 测试是一组用户控制的定义,其中包括脚本、性能指标收集器还有用于运行测试的参数。测试运行会生成由图形或者表格显示的结果。脚本和性能指标收集器是测试 的构建模块。可以被许多不同的测试所引用。脚本决定了测试的内容,指标收集器则定义了测试运行期间将被收集的数据。添加到测试中的脚本和性能指标收集器会 被放在测试任务组中。通过对每个测试任务组采用不同的设置来控制测试的运行以及目标 WAE 的负载水平。测试任务组的设置包括虚拟用户的数量、所使用的主机数目和一次测试运行脚本的回放次数。性能测试的开发首先需要对结构和内容进行规划。然后按 序创建测试所需要的脚本和性能指标收集器。
OpenSTA 脚本
脚本构成了 HTTP/S性能测试的内容,记录了用户通过浏览器向目标网络应用环境(WAE)发出的请 求。脚本是通过代理服务器或者 Gateway 传输 HTTP/S 通信,使用 SCL(脚本控制语言)命令取代原来的 HTTP/S 命令生成的。脚本建模器根据 Web 会话期间的 HTTP/S 通信来创建脚本,使用 SCL 语言记录了 HTTP/S 活动。当测试开始运行,该脚本就会回放所有原始请求。这意味着目标 Web 应用环境(WAE)将接收来自模拟浏览器用户,或虚拟用户的并发,异步连接和请求,就如同真实的终端用户一样。使用 SCL 编写脚本,可以对内容进行控制。通过引入变量来取代脚本录制生成的固定值,可以在指定的负荷水平上测试 Web 活动,从而使性能测试更为灵活有效。
脚本的录制,会产生一个 .HTP 文件和一个 .ALL 文件。.HTP 文件包含了在 SCL 编写过程中,Web 会话期间发出的所有 HTTP/S 浏览器请求。这个文件就是脚本,它会作为 Web 性能测试的一部分被建模和回放。而 .ALL 文件则将 WAE 响应保存在不同分类下,包括可以被用来对附属脚本进行建模的 DOM。所有的脚本都保存在存储库中,可以被不同的测试所引用。
OpenSTA Gateway
Gateway 是 OpenSTA 的一个组件,它与脚本建模器直接对接,记录 HTTP/S 通信,并创建脚本。它相当于一个代理服务器,位于客户端浏览器和承载了 WAE 环境的远程 Web 服务器之间。当你开始使用脚本建模器进行录制,Gateway 会覆盖浏览器的一些 Internet 连接设置,强迫使用代理服务器,在这里特指的就是 Gateway。Gateway 可以记录浏览器和 WAE 之间的网络活动,并产生一个 SCL 语言描述的脚本。 Gateway 将所有的浏览器请求存储在 HTP 文件中,WAE 对浏览器请求的响应则存储在 .ALL 文件中。.ALL 文件包含的 HTML 数据与 .HTP 文件中的内容有着直接联系。通过对 .ALL 文件的信息进行处理,可以实现脚本的建模。
OpenSTA 脚本和 SCL
SCL 是用于控制和记录 HTTP/S 通信的脚本控制语言。使用的 SCL 编写脚本,给开发切合实际的性能测试提供了建模能力。当你运行一个测试的时候,为了给一个或者多个目标 WAE 环境提供足够的负载,你可以编写一个脚本或者一个脚本序列,来模拟成千上万的虚拟用户。