目的
本工具向导说明如何制定在 Rational LoadTest 上进行性能测试的计划。
相关的 Rational Unified Process 活动:
其他相关信息,另请参见后续内容:
概述
通过模拟众多的虚拟用户,您可以使用 LoadTest 来测试服务器的性能。此处的目的在于得到系统在承受负载时的实际性能。
由于性能的评判是一个主观性的问题,因此在制定性能测试的计划时,首先需要考虑的是可以接受的性能标准。需要回答的性能问题如下:
- 在正常条件下,服务器可以支持多少个虚拟用户?
- 在正常条件下,是否存在服务器性能突然下降的情况?
- 当负载超出正常时,服务器的工作情况如何?在比较恶劣的情况下,系统是性能适度下降,还是完全崩溃?
- 在不同的硬件配置下,系统性能如何?
制定性能测试计划时,务必不要忘记测试的目的所在。您需要了解系统按照其设计运行时的速度如何,您应该关注系统执行实际业务操作时的工作情况。您将建立实际工作量的模型,即与实际情况近似的模拟环境。您可以在测试中使用数据来增强对于系统容量的测试强度。
要制定性能测试计划,请执行以下步骤:
- 定义通过标准和失败标准。
- 确定要测试的硬件和软件。
- 执行其他计划任务。
因为评判性能是一个主观性的问题,所以不仅要确定要测试的特性,还要确立性能通过与否的标准,这一点至关重要。如果在计划阶段提前确定了评判标准,就可以对照预期值来查看结果,并评估系统是否通过了测试。
通过标准通常涉及可接受的响应时间范围。例如,定义可接受的反应时间如下:在 100 个用户时,90% 的事务平均响应时间不超过 5 秒,每一事务的响应时间不超过 20 秒;在 500个用户时,80% 的事务平均响应时间不超过 10 秒,每一事务的响应时间不超过 45 秒。
制定性能测试计划时,需要确定测试所需的硬件和软件。例如:
- 服务器、数据库服务器、Web 服务器和其他服务器系统
- 客户机:Windows 计算机、网络计算机、Macintosh 或 UNIX 工作站
- 将要访问的数据库
- 将要运行的应用程序
此外,还需要考虑下列测试参数:
- 为了精确反映实际的工作量,测试数据库应该多大,其他测试文件应该多大?
- 为了避免 I/O 瓶颈,数据应如何分布在整个测试系统中?
- 如果要测试数据库,则应该如何设置数据库的主要参数?
测试时要考虑的其他事项如下所示。文档 CD 的 Using Rational LoadTest 手册的第二章中也涉及了这些主题。
- 设计符合实际情况的工作量
- 设计性能测试
- 计划虚拟用户脚本
- 设置虚拟用户记录选项
- 修改虚拟用户脚本
- 纠正虚拟用户脚本中的错误
- 分析性能结果
工具向导:记录性能测试会话
目的
本工具向导说明如何使用 Rational LoadTest 和 Rational Robot 记录性能测试。
相关的 Rational Unified Process 活动:
概述
您可以使用 LoadTest 来执行性能测试,它有助于您在工作量不断变化的情况下,确定多客户系统的工作情况是否在其用户定义的可接受标准之内。性能测试涉及到向服务器上加载大量的虚拟用户。例如,可在一个虚拟用户上设置一个计时器,以得到当 1000 个其他虚拟用户同时向同一服务器发送请求时,一次查询所用的时间。
性能测试包括下列测试类型:
负载测试 - 设计用于测试客户机或服务器在工作量不断变化的情况下的响应时间。也用于帮助测试员计算服务器在给定时间内可以处理的最大事务数。
强度测试 - 在极端条件下运行客户机应用程序,查看该应用程序或服务器是否“崩溃”。例如长时间连续运行一个客户机应用程序;执行大量事务;让数百个用户同时进行相同的操作。
争用测试 - 在一台或多台计算机上同时运行 GUI 和虚拟用户,模拟实际的用户环境。这一测试类型可以确定锁定、死锁条件和并行控制等问题。
配置测试 - 测试产品是否能在多种不同的平台上继续运行。通过在不同的计算机上运行相同的测试,您可以测试有关兼容性方面的问题,确定运行该应用程序所需最低和最优的软、硬件配置,并了解应用程序的每个部分在不同配置下的运行情况。
记录上述测试的虚拟用户脚本时,实际上是在记录一个会话。这一会话包括记录起止之间的所有客户机请求和服务器响应。它是使用 Rational Robot 记录的。记录完毕之后,Robot 将更据会话生成一个或多个脚本。
要记录性能测试会话,请执行以下步骤:
- 设置记录选项。
- 记录会话。
- 将会话分成多个脚本。
- 向脚本添加特性。
其他相关信息,另请参见下列工具向导:
在记录虚拟用户脚本之前,请确保记录选项是按预期记录会话方式来设置的。可以采用下列任一方式,复审和设置虚拟用户记录选项:
- 在记录之前,单击 Robot 中的 Tools -> Virtual User Record Options。
- 当开始记录时,单击 Record Virtual User 对话框中的 Options。
- 当记录完毕后,单击 Stop Recording 对话框中的 Options。此时只能设置影响脚本生成的选项。(在前两种情况下,可以在任意选项卡中设置所有选项。)
要获取有关这些选项的信息,请单击对话框中 Help 按钮。
Robot 为用于性能测试的虚拟用户脚本在记录操作上提供了很大的灵活性。您可以记录:
- 多个事务。例如,可在同一记录会话中,先后记录一个数据输入事务和一个查询事务。
- 对于同一或不同服务器执行的事务。例如,您可以记录对于一台 Web 服务器执行的一个事务,然后再记录对于另一台 Web 服务器执行的另一个事务。
- 同一会话中不同类型的请求。例如,您可以在一个会话中记录 Oracle、Microsoft SQL Server、HTTP 和 TUXEDO 请求。
有关记录虚拟用户脚本的过程,请参见文档 CD 的 Using Rational LoadTest 手册中的第四章。
一般来说,在一个会话中记录的每个脚本都包含一个由单一用户执行的动作构成的逻辑集合。例如,如果会话记录了一个对某台 Web 服务器执行的查询事务,并记录了一个对数据库服务器执行的订单输入事务,您可以将此会话拆分为两个不同的脚本,即每个事务使用一个脚本。
模拟工作量时,将一个会话拆分为多个脚本也是区别对待部分会话记录的捷径。例如,假设登录到一个数据库服务器中,然后执行三个不同的事务。如果将会话拆分为登录和记录每一事务的单独脚本,即可设置工作量时间表来执行这些事务的多次迭代,但是只需运行一次登录脚本。
有关将会话拆分为多个脚本的过程,请参见文档 CD 的 Using Rational LoadTest 手册的第四章。
下列特性可以添加到虚拟用户脚本中:
注释 注释是在脚本中以特殊字符起止的一行文本,它们不会作为脚本的一部分执行。在脚本的编译期和回放期中将忽略注释。使用注释记录脚本,如果在以后需要编辑脚本,注释将有助于您找到进行编辑的途径。在记录和编辑过程中都可以添加注释。
块 块是多行连续代码的集合,块有助于您将其与脚本的其他部分区分开来。通常脚本内的一个事务可用一个块来确定。一个脚本最多可以有 50 个块。块可以嵌套,但是不能重叠。
之所以要使用块的可能原因如下:
- 将块和计时器名与执行事务的模拟命令相关联。
- 在 LoadTest 报告中包括块名,即可使用块名过滤报告。
- 使脚本更加简明易懂,并通过命令 ID 为块中的行提供其紧邻的上下文。
同步点 同步点可以使您协调大量用户的活动,它在某个特定点(同步点)暂停每个用户的执行活动,直到下列事件之一发生:
- 所有与该同步点关联关系的用户到达了该点。
- 所有用户到达该点之前已超时。超时时间是由您来指定的。
- 您在 LoadTest 中监测时间表的运行时,手工释放了一些用户。
当以上事件之一发生时,LoadTest 将释放用户,以便它们继续执行事务。
计时器 自动对单个模拟命令计时。默认情况下,LoadTest 报告输出中将包括它们。但是,如果要衡量虚拟用户执行一项活动所用的时间,您可以在脚本中插入计时器。计时器的工作原理和秒表一样。计时器在您衡量序列重叠的事件时非常实用。它们还可用于衡量特定脚本组成部分的运行时间。
工具向导:为符合实际性能测试的数据生成数据池
目的
本工具向导说明如何生成数据池,以便在性能测试中向服务器发送符合实际的值。数据池在 Rational Robot 中生成,在性能测试中用于 Rational LoadTest。
相关的 Rational Unified Process 活动:
概述
在使用 LoadTest 进行性能测试时,您向服务器发送的实际数据对性能的影响很大。现实环境中,每个用户使用不同的用户名,因此服务器需要在后端数据库中检索和存储每个用户名。数据库为了检索和存储每个不同的用户名,需要进行大量工作,这也是 Web 应用程序启动比较慢的原因所在。
例如,在一个出售商品的电子商务站点,用户订购商品时填写他/她的用户名。如果运行性能测试并且每个用户都有相同的用户名,则后端数据库只需检索并存储一个用户名。因为数据库可以将这个单一的用户名存储在高速缓存(一个存取速度非常快的内存区域)中,所以您运行的报告将表明系统运行的速度非常快。(这被称为是“伪正确”的测试结果,因为测试错误地告诉您一切正常。)
为了生成更加符合实际情况的工作量,LoadTest 采用了数据池。数据池向服务器提供不 [1] [2] [3] [4] 下一页
|