发布新日志

  • RPT录制问题

    2010-12-20 14:27:12

    我在RPT8.1中遇到如下错误:

    RPTO0029E 记录不包含已安装测试生成器的任何协议数据

    解决过程:

    方法一:

    解决办法:

    录制页面时,访问的URL不要使用localhost127.0.0.1,改用分配的IP地址,例如:

    http://192.168.1.100:1080/webtours

     

    方法二:Tools -> Internet Options -> Connections (tab) -> Lan Settings ->
    There is a checkbox which states "Automatically Detect Settings" which was checked(selected). After unchecking this checkbox, the problem got solved. I am able to reproduce the problem by enabling this checkbox again.

    但以上方法都解决我了我的问题,最后还是自己解决

    分析:产生原因IE6,因为Firefox 没有该问题,于是升级为IE7,问题得到解决。

  • 使用 RPT 进行 Web 应用程序的负载测试第 3 部分: 通过增强的用户负载运行远程测试

    2010-10-25 16:36:43

    本文概述

    在一个典型的场景中,为了测试一个 Web 应用程序,您就要通过定义良好的测试计划来识别各种各样的场景。在一个负载测试期间,一位导致多个测试服务器负载崩溃的用户往往是我们所想要的。通过在多个机器之间适当的分摊用户负载,能够确保生成有意义的报告。这是一种在某些避免测试器负担过重的同时,另一些测试器却没有被充分利用的好方法。

    本文解释了在不影响您先前所记录的测试脚本的情况下,有效地降低用户负载所需要考虑的事项。您将学习如何使用 IBM Rational Performance Tester 通过增强的用户负载运行远程测试,包括如何为分布式的负载发生器设置远程机器。本文的本质内容是指导您通过在客户端机器上安装软件,完成这些步骤来设置分布式的测试。

    1. 在客户端机器上安装并且设置软件:
      1. 安装 Rational Agent Controller(代理控制器)。
      2. 安装 IBM Rational License Server(许可服务器)。
      3. 在工作台机器上,将浮点许可密钥导入到许可服务器中。
      4. 将远程机器提交到许可服务器。
    2. 配置并且运行测试
      1. 配置测试调度,远程运行测试。
      2. 运行用户负载分别为100、500、1000和2000的测试。

    在结尾处一个可选的小节描述了如果您希望将其用于测试的话,如何配置 DayTrader 例子应用程序。如果您愿意的话,您也可以创建针对您的需要被测试性能的应用程序的测试。

    先决条件

    请您在开始学习本文之前,完成对第 2 部分的学习,这是因为您将用到与之相同的例子应用程序。第 2 部分中关于将 Rational Performance Tester 用于负载测试的基本知识也非常重要,它使您能够处理本文中更加复杂的活动。

    请注意:
    工作台及其应当仅被用作工作台活动,例如创建测试、将性能负载分配到远程机器上运行。

    请确保您的系统满足以下这些先决条件:


    表 1. 必需的资源
    资源 工作台机器 远程机器
    硬件 最小要达到 1GB 最小要达到 1GB
    软件 IBM Rational Performance Tester (包括 IBM Rational 代理控制器)
    IBM Rational 许可服务器
    IBM Rational 许可服务器
    IBM Rational 代理控制器
    许可 激活工具包,使得 Rational Performance Tester 能够永久的使用

    被导入到 Rational 许可服务器中的浮点许可密钥

    请注意:浮点许可密钥必须等于或者大于 Rational Performance Tester 将要进行的测试中的虚拟用户的数量*

    指出被工作台机器服务的浮点许可密钥
    网络 能够连通所有的远程机器 能够连通工作台机器

    *Rational Performance Tester 的试用版本只允许五位并发用户的测试。如果要测试更多的用户,您就需要购买许可。IBM® Rational® Software Delivery Platform. V7.0 - Desktop Product Activation 站点提供了关于如何获得许可和进行激活过程的信息。您能够从 IBM Software Access Catalog 下载 IBM® Rational® 代理控制器和 IBM® Rational® 许可服务器。详细信息请您参见 参考资料 一节中提供的链接。

    IBM Rational 许可服务器管理 Rational 产品的浮点和命名用户的许可密钥。浮点许可密钥在您希望运行多于五位虚拟用户的测试时被要求。在这个例子中,许可密钥被导入到许可服务器之中,它位于工作台机器上,并且将密钥提供给所有的远程机器。远程机器指向许可服务器。

    IBM Rational 代理控制器需要被安装到所有的远程机器上,以确保分布式的测试。工作台机器在安装 Rational Performance Tester 的同时已经安装了 Rational 代理控制器。

    图1显示了本文中您所需要的设置。


    图 1. 远程测试安装拓扑
    远程测试安装拓扑

    安装和设置必要的软件

    性能测试一个应用程序还包括用户负载测试。在这里,您将运行与本系列文章中的第 2 部分相同的测试,分别设定100、500、1000和2000个虚拟的用户。这样做的话,您将创建额外的用户组,并且在分布式的位置中运行它们,它能够为负载提供更多的资源,例如 CPU 能量和内存等。

    安装 Rational Agent Controller(代理服务器)

    1. 解压名称为 Rational Performance Tester_Agent_Controller_V7.0_Part1.zipRPT_Agent_Controller_V7.0_Part2.zip 的文件到临时文件夹 C:\temp 中。当解压操作完成之后,您将找到两个名称为 disk1disk2 的文件夹。
    2. disk1 文件夹下,点击 launchpad.exe 文件启动安装进程。选择 Install IBM Rational Performance Tester Agent,如图2中所示。

    图 2. Rational 代理的安装屏幕
    Rational 代理的安装屏幕

    1. 接受协议,并且点击 Next
    2. IBM 安装管理器将会首先被安装。接受默认的安装位置,并且点击 Next
    3. 点击 Install 安装 IBM 安装管理器。在安装完成后,点击 Finish
    4. 下一个屏幕将会显示将要被安装的测试器代理包。请确保 IBM Rational Performance Tester Agent Version 7.0.0 被选中,如图3中所示。

    图 3. Rational 代理安装包
    Rational 代理安装包

    1. 接受认证协议,并且点击 Next
    2. 接受默认的共享资源安装目录,并且点击 Next
    3. 接受默认的 Rational Performance Tester 安装目录,并且点击 Next
    4. 点击 Next 两次,直到您看到 Features 屏幕。
    5. 请确保 Tester Agent 被选中,如图4中所示,并且点击 Next

    图 4. Feature 屏幕
    Feature 屏幕

    1. 选择 Typical installationInstallation type,并且点击 Next
    2. summary information 屏幕上,点击 Install,如图5中所示。

    图 5. Summary 信息屏幕
    Summary information screen

    1. 当成功安装之后,开始 DCI 监控,如图6中所示。

    图 6. 启动 DCI 监控
    启动 DCI 监控

    1. 重复这些步骤,在所有远程机器上安装 Rational Agent Controller

    安装 IBM Rational 许可服务器

    Rational 许可服务器管理 Rational 产品的浮点和用户命名的许可密钥。在这个例子中,许可服务器被安装子工作台机器上,并且向所有远程机器发送许可。

    1. 解压许可服务器压缩包到 C:\Temp 下,然后点击 setup.exe 文件。
    2. 点击 Install IBM Rational License Server 开始安装,如图7中所示。

    图 7. 安装 Rational 许可服务器
    安装 Rational 许可服务器

    1. 点击 Next 直到您看到 Product Warnings 窗口。
    2. 停止运行在您的机器上的防病毒软件,然后点击 Next

    图 8. 停止运行防病毒软件
    停止运行防病毒软件

    1. 点击 Accept 接受许可协议,同时接受默认的安装文件夹。
    2. 点击 Next 直到您到达 Summary 窗口,然后点击 Install
    3. 安装完成之后,点击 Finish
    4. 在所有远程机器上重复许可服务器的安装。

    将浮点许可密钥导入工作台服务器

    1. 在工作台机器上,双击浮点许可密钥,如图9中所示。

    图 9. 许可密钥
    许可密钥

    1. License Key Administrator 将会打开。在 Confirm Import 屏幕上,点击 Import,如图10中所示。

    图 10. 导入许可密钥文件
    导入许可密钥文件

    1. 在密钥成功被导入之后,点击 OK
    2. 当您被提示重启许可服务器的时候,点击 Yes

    图 11. 点击 Yes 重启许可服务器
    点击 Yes 重启许可服务器

    在许可服务器被重新启动之后,它将显示密钥,如图12所示。


    图 12. 许可密钥被导入并且准备好服务
    许可密钥被导入并且准备好服务

    将远程机器提交到许可服务器

    1. 远程机器上,启动 IBM Rational License Key Administrator

    图 13. 启动 License Key Administrator
    启动 License Key Administrator

    1. License Key Administrator 向导中,选择 Point to a Rational License Server to get my licenses

    图 14. 指向许可服务器
    指向许可服务器

    1. 在下一个屏幕上,输入许可服务器的名称或者 IP 地址,并且点击 Finish

    图 15. 输入许可服务器的信息
    输入许可服务器的信息

    License Key Administrator 将显示由许可服务器的名称或者 IP 地址提供的密钥,如图16中所示。


    图 16. 由安装在工作台机器上的 Rational 许可服务器所提供的许可密钥
    由安装在工作台机器上的 Rational 许可服务器所提供的许可密钥

    1. 在所有其他的远程机器上重复前面的步骤,确保它们都指向许可服务器。

    请注意:
    您也能够通过使用 License Key Administrator 菜单配置许可密钥:

    1. 点击 Settings > Client/Server Configuration
    2. Client/Server Configuration 窗口中,选择 Use License Server,然后点击 Add Server
    3. 为许可输入详细信息:Server TypeServer Name 以及 Port,如图17中所示,然后在完成时点击 OK

    图 17. 许可服务器的详细信息
    许可服务器的详细信息

    配置调度,运行测试

    在三台远程机器上运行测试,最好创建三个用户组,将每一组指派到一台远程机器上运行。

    配置测试调度,远程运行测试

    1. 添加另外两个用户组到 DayTraderSchedule中,如图18中所示。

    请注意:
    红色的 X 符号代表它将在您完成和保存设置之后被移除。


    图 18. 两个额外的用户组
    两个额外的用户组

    1. 选择 User Group 1。从 Schedule Element Details > Group size 小节中,选择 Percentage,然后输入值40。重复这一操作:User Group 2 的值为30,User Group 3 的值为30。三组合计大小为100%,如图19中所示。

    图 19. 添加组
     添加组

    1. DayTraderTest 添加到 User Group 2User Group 3 中。

    图 20. 将测试添加到两个新的用户组中
    将测试添加到两个新的用户组中

    向每个用户组添加一个远程位置:

    1. 选择 User Group 1
    2. Schedule Element Details 下,点击 Run this group on the following locations
    3. 点击下面的 Add New,创建一个新的远程位置。

    图 21. 点击 Add New 创建一个新的位置
    点击 Add New 创建一个新的位置

    1. 为第一个远程机器添加详细信息,然后点击 Finish。每一个用户组都将被指派到一个不同的远程机器上。Deployment Directory 将会在远程机器上被创建,保存实时信息,如图22中所示。

    图 22. 远程机器的细节
    远程机器的细节

    在这些信息被成功添加之后,远程机器将在位置表中被列出,如图23所示。


    图 23. 位置表中的远程机器列表
    位置表中的远程机器列表

    1. 重复这些步骤,为 User Group 2User Group 3 添加远程位置。
    2. 当您完成操作之后,使用组合键 CTRL+S 保存所有的设置和改变。

    分别运行用户负载为 100、500、1000 和 2000 的测试

    1. 在运行 DayTraderSchedule 测试之前,请定位到 Schedule Element Details 并且将 Number of users 改变为 100,如图24中所示。
    2. 按下组合键 CTRL+S 保存改变。

    图 24. 配置测试,运行100个虚拟用户
    配置测试,运行100个虚拟用户

    1. 请确保 DCI monitoring 在所有机器上都被开启,然后运行测试:
      1. 右键单击 DayTraderSchedule
      2. 选择 Run As > Performance Schedule
    2. 当收集完成之后,保存报告,将其导出为 HTML 格式。
    3. 接下来,重复前面的操作,分别运行 50010002000 为虚拟用户的测试。将每一份报告都导出为 HTML 格式进行比较。

    关于第 4 部分:报告

    在本文中,您已经学习了如何在一个分布式的环境中运行100、500、1000和2000个用户的测试。要学习更多关于 Rational Performance Tester 的特性和使用的知识,请您访问 Rational Performance Tester 的信息中心,在 参考资料 小节中提供了它的链接。

    第 4 部分全部是关于报告的。我们将解释如何检查、诊断、分析、和解释 Rational Performance Tester 所提供的各种各样的分析报告。例如,一个Web 应用程序可以被分解为不同的组件,诸如 Enterprise Java™Beans (EJBs)、servlets、Java™ Database Connector (JDBC) 以及用于分析的网络服务器。我们还将探索默认的报告,并且描述如何定制它们。


  • 使用RPT进行 Web 应用程序的负载测试第 2 部分: 创建并且运行性能测试

    2010-10-25 15:02:24

    简介: 本文是本系列四篇文章的第 2 部分,它指导您通过安装一个 IBM® Rational® 性能测试器的评价版本,创建一个简单的测试,并且运行针对被配置在 IBM® WebSphere® Application Server Community Edition 和 IBM® DB2® Express 上的 DayTrader 应用程序的

    关于本系列文章

    IBM® Rational® Performance Tester 是一款性能测试工具,它仿真各种各样的用户负载来模拟真实生活中的负载。通过适当的计划,这一工具利用当前的负载来估计未来的负载。例如,一个客户的应用程序可能最多只能够服务5000位用户。通过 Rational Performance Tester,您能够轻易的估计出用户负载分别为1000、2000、3000、4000、5000以及更多的情况,以便您能够设计正确的用户增长,并且能够更加精确的设计服务的规格,例如最佳的 CPU 和内存需求。您能够识别并且诊断出性能的瓶颈,无论这种问题是发生在网络、数据库、应用服务器、甚至是用户应用程序之中。这一基础导致分析能力进一步分析应用程序的等级,它可能包括诸如 Enterprise Java™Beans (EJBs)、servlets、Java™ Database Connector (JDBC) API、网络服务器等等页组件。这一功能性使您能够通过分析在线的或者解压的报告轻易地和有效地查明性能问题。

    下面,对本系列的四篇文章加以简短的介绍:

    • 第 1 部分 为您提供了关于 IBM Rational Performance Tester Version 7.0 的一个总体介绍。
    • 第 2 部分(本部分)通过创建、运行、和评估一个简单的测试,向您介绍了使用 Rational Performance Tester 的基本知识。
    • 第 3 部分介绍了不同用户负载的测试(请参见下一小节)。
    • 第 4 部分全部是关于报告的内容。

    本系列文章的目的是帮助您理解特性、拓扑事项、以及约束条件,以便您能够创建和测试网络应用程序,并且分析其性能报告。根据这一知识以及 Rational Performance Tester 的使用的便捷性,负载测试一个网络应用程序不再是一项繁重的重担,您能够将其包含在软件的每一次迭代中。

    本文概述

    在本系列文章的第一部分中,您已经对 IBM Rational Performance Tester 的功能建立了整体的认识,它能够帮助您自动处理许多性能测试过程。本文是本系列文章的第 2 部分,它将帮助您开始实际使用这一测试工具。

    第 2 部分知道您安装一个评价版本的程序、创建一个简单的测试、并且运行配置在 IBM® WebSphere® Application Server Community Edition 和 IBM® DB2® Express 上面的 DayTrader 应用程序的测试。它还为第 3 部分打下了基础,在第 3 部分中,您将运行不同用户负载规模的测试。

    本文最后是一个可选的小节,它描述如何配置 DayTrader 的例子应用程序。如果您愿意的话,您也可以为您需要测试性能的应用程序创建测试。

    下载一个 Rational Performance Tester V7.0 的评价版本

    从 IBM developerWorks 下载一个 Rational Performance Tester 的评价版本,其中包括三个文件:RPT_V7.0_Part_1.zipRPT_V7.0_Part_2.zipRPT_V7.0_Part_3.zip。评价证书的有效期从安装之日开始计算是30天,最多允许五个并发的虚拟用户。在有效期到期后,您需要购买一个商业证书密钥来激活 Rational Performance Tester 才能继续使用它。请您参见 参考资源 一节中的链接来下载 IBM Rational Software Development Platform. V7.0 - 在 Desktop Product Activation 区域中,您能够获得关于激活过程的证书和相关信息。

    安装 Rational Performance Tester 的机器被称为工作台。它需要最少 1GB 的内存和最少 1GB 硬盘空间。


    安装 Rational Performance Tester

    这些步骤将指导您完成安装操作:

    1. 将以下三个文件解压到临时文件夹 C:\temp 中。
    • RPT_V7.0_Part_1.zip
    • RPT_V7.0_Part_2.zip
    • RPT_V7.0_Part_3.zip

      操作完成之后,您将找到三个解压后的文件夹:disk1、disk2 和 disk3。

    1. disk1 文件夹中,点击 launchpad.exe 文件,启动安装。
    2. 选择 Install IBM Rational Performance Tester (Includes Agent),如图1中所示。


    图 1. Rational 安装屏幕
    Rational 安装屏幕

    1. 当您被提示时请接受该协议,并且点击 NextIBM Installation Manager 将会首先被安装。接受默认的位置,并且点击 Next
    2. 点击 Install 安装 IBM Installation Manager,并且在安装完成后点击 Finish
    3. 下一幅屏幕将会显示即将被安装的 Rational Performance Tester 。请确保 IBM Rational Performance Tester Version 7.0.0 处于被选中状态,如图2中所示,然后再次点击 Next


    图 2. 安装 Rational Performance Tester 包
    安装 Rational Performance Tester 包

    1. 再次接受许可协议,安装 Rational Performance Tester ,点击 Next
    2. 屏幕上显示 Select a location for the shared resource directory,或者输入一个新的位置,或者接受默认的位置,然后点击 Next,如图3中所示。


    图 3. 共享资源目录域
    共享资源目录域

    1. 在下一幅屏幕上,请确保 Check a new package group 处于被选中状态,或者为安装输入一个新的位置,或者接受默认的安装位置。点击 Next,如图4中所示。


    图 4. Rational Performance Tester 安装位置
    截屏

    1. 点击 Next 两次,直到您看到屏幕上显示 Select the Features you want to install 为止。接受默认设置,点击 Next,如图5中所示。


    图 5. 特性屏幕
    截屏


    安装 Rational 代理控制器

    1. 多次点击 Next 直到您看到标题为 Configure the IBM Rational Agent Controller installation 的屏幕为止,如图6中所示。IBM® Rational® 代理控制器同 Rational Performance Tester 一同被安装。
    2. 选择 Typical installation 并且点击 Next


    图 6. 安装 Rational 代理控制器
    截屏

    1. Summary Information 屏幕上,点击 Install,如图7中所示。


    图 7. Summary 信息屏幕
    截屏

    1. 当成功完成安装操作之后,您将看到如图8中所示的屏幕。选择 IBM Rational Performance Tester 并且点击 Finish。启动 Rational Performance Tester 。


    图 8. 安装成功提示
    截屏

    创建并且运行一个性能测试

    要创建一个性能测试来运行一个应用程序,您就要使用 Rational Performance Tester 来记录同基于网络的应用程序进行的交互作用的序列。这一序列被称作测试场景。您需要在开始记录之前就计划好测试场景。在本文中,测试场景的例子是本文需要用户登录 DayTrader 应用程序,购买和出售股票,然后登出该应用程序。

    在记录性能测试之前,您还需要创建包括这些测试的性能测试项目。Rational Performance Tester 然后打开一个浏览器,使您记录测试场景并且生成该测试。您能够对生成的测试进行编辑,向其添加确认点、数据池、定制代码、以及其他变量。在这个例子中,您将添加一个保存相同值的多个数据的数据池。在将数据池同测试关联之后,它将会在执行时将测试中的值置换为数据池中的值,从而仿真不同的用户对服务器的请求。

    要运行完成的测试,您需要为测试创建一个测试调度和一个用户组。测试调度包括一个或者许多用户组。记录的测试被添加到用户组中。使用测试调度和用户组能够控制测试的运行。例如,一个测试能够顺序的、随机的或者按照权重顺序运行;按照设定的间隔或者次数运行;远程运行;以及仿真工作量。这个例子使用响应时间崩溃选项(它是在测试调度下面被选中的),在测试运行时收集被捕获的页面元素的统计数字。响应时间崩溃显示我们在每一个页面上所花费的时间。要收集响应时间的崩溃,就必须运行 DCI 监视器。

    以下步骤将指导您完成从创建到运行测试,以及为分析生成报告的操作:

    1. 首先,启动 IBM WebSphere Application Server Community Edition,它将启动 DayTrader 应用程序:Start > All Programs > IBM WebSphere > Application Server Community Edition > Start the server
    2. 启动 Rational Performance Tester ,点击 OK 将测试项目保存到默认的工作空间位置上,如图9中所示。


    图 9. 选择默认的工作空间
    截屏

    1. 创建一个测试项目,保存性能测试。

    1. Test Navigator 中,右键单击,显示菜单。
    2. 选择 New > Performance Test Project,如图10中所示。新的 Performance 测试项目窗口将被打开。


    图 10. 创建一个测试项目
    截屏

    1. 输入 Project NameDayTraderProject,并且选中 Use default location,如图11中所示。
    2. 点击 Finish 创建项目。


    图 11. 为测试项目命名
    截屏

    2. 创建一个新的测试,记录测试场景

    1. 在项目被创建之后,Create New Test from Recording 窗口将被打开,如图12中所示。


    图 12. 创建测试窗口
    截屏

    1. 选中 Create Test from New Recording 并且选择 HTTP Recording。点击 Next
    2. 对于 Select Location for Test Suite,选择 DayTraderProject。在 Test file name 域中,输入 DayTraderTest,如图13中所示。
    3. 点击 Finish 启动,初始化记录器。


    图 13. 为测试命名
    截屏

    3. 记录 DayTrader 的测试场景

    1. Rational 性能测试记录器在初始化操作之后,将打开一个新的浏览器。
    2. 在浏览器中,输入 DayTrader URL (此即 DayTrader 应用程序的默认位置):
      http://IIC02:8080/daytrader/app
    3. 记录下列测试场景:
      1. 点击 Trading & Portfolios 标签。
      2. 登录,使用默认的用户名和密码,如图14中所示。


    图 14. DayTrader 登录屏幕
    截屏

    1. 当 DayTrader 主页被显示之后,点击顶部的 Quotes/Trade 链接,打开 Quotes 页面,如图15中所示。


    图 15. 进入 Quote/Trade 页面
    截屏

    1. 点击 Quote 表中第一行的 Buy 按钮,购买 100 shares,如图16中所示。确认屏幕将会确认您的购买操作。


    图 16. 购买股票
    截屏

    1. 点击顶部的 Portfolio 链接,打开用户 Portfolio 页面。
    2. 验证 Portfolio 中所反映的购买操作。在同一个页面中,请注意列出的资产编号。
    3. 下一步,点击 Portfolio 表中第一行的 Sell 链接,出售股份,如图17中所示。确认屏幕将会确认您的出售操作。


    图 17. 出售股票
    截屏

    1. 再次点击 Portfolio 链接,查看反映销售的资产编号。
    2. 点击 Logoff 然后关闭浏览器。

    控制器将返回到 Rational Performance Tester ,进行记录和显示测试内容。

    4. 创建一个数据池,置换测试中的用户 ID 和密码的值

    1. Test Navigator 中,右键单击,显示菜单。
    2. 选择 New > Datapool。新的数据池窗口将被打开,如图18中所示。


    图 18. 创建一个数据池
    截屏

    1. Enter or select the parent folder 域中,输入 DayTraderProject。在 Name 域中,输入 DayTraderDatapool,如图19中所示。
    2. 点击 Next


    图 19. 数据池细节
    截屏

    1. 对于 Description,为数据池输入登录 ID,对于 Initial Table Dimension,输入“两”列。
    2. 点击 Finish
    3. 接下来,点击 Variable1 列,Edit Variable 窗口将被打开。
    4. LoginID 列命名,对于 Type,输入 String。然后点击 OK


    图 20. 编辑变量1
    截屏

    1. 如上所述,对变量2执行相同的操作。将新的列命名为 Password,并且指定 Type 为 String。


    图 21. 编辑变量2
    截屏

    数据池将包括五个不同的用户登录 ID,分别编号为:uid:0uid:4,如表1中所示。


    表 1. User ID 和 Password 值

    User ID Password
    uid:0 xxx
    uid:1 xxx
    uid:2 xxx
    uid:3 xxx
    uid:4 xxx

    提示:
    为下一个记录添加一行,按下回车键,或者右键单击最后一个记录并且选择 Add Record


    图 22. 添加数据池记录
    截屏

    提示:
    使用组合键 CRTL-S 保存数据池。

    5. 参考 DayTraderTest 使用数据池的值

    1. Test Navigator 中,点击 DayTraderTest 打开属性页面。
    2. 右键单击 DayTraderTest 并且选择 Add > Datapool


    图 23. 向测试中添加数据池
    截屏

    1. 当 Import Datapool 窗口被打开时,选择如下内容:
    • 匹配资源:DayTraderDatapool.datapool。
    • 打开模式:共享式(每一台机器)
    • 当最后一行到达时的约束:选中的


    图 24. 选择数据池
    截屏

    1. 点击 Select 接受 DayTraderDatapool.data 池作为 DayTraderTest。Test Element Details 将会被更新为数据池中的信息。


    图 25. 数据池元素的详细资料
    截屏

    1. 保存变化,请使用组合键 CTRL+S

    6. 将用户 ID (uid)和密码的值同数据池中的列相关联

    1. Test Navigator 中,点击 DayTraderTest,打开属性页面。
    2. 展开 Welcome to DayTrader 页面,然后选择 iic02:8080/daytrader/app


    图 26. 选择测试页面
    截屏

    1. 滚动 Test Element Details 屏幕,直到您看到 Data 小节中的 uidpasswd,如图27中所示。


    图 27. 测试同数据池相关联的值
    截屏

    1. 点击 uid 的值(如图28中所示的紫色加亮部分),菜单将被显示,选择 Substitute From > Datapool Variable


    图 28. 用数据池的变量替换值
    截屏

    1. Select datapool column 窗口将被打开。选择 Column:LoginID,然后点击底部的 Use Column 按钮,如图29中所示。


    图 29. 使用数据池的值
    截屏

    uid 的值将用绿色被加亮,指出关联性,如图30中所示。


    图 30. 关联的 uid 值
    截屏

    1. 重复 图 25 之后的操作,将密码值同数据池中的密码列关联起来。关联之后,密码将用绿色被加亮,如图31中所示。


    图 31. 关联的密码值
    截屏

    1. 在完成关联操作之后,再次点击 Welcome to DayTrader 页面。请注意,Test Data 表中现在包括这个关联,如图32中所示。


    图 32. 验证关联
    截屏

    1. 保存变化,使用组合键 CTRL+S

    7. 创建性能测试调度

    1. Test Navigator 中,右键单击 DayTraderProject,显示菜单,然后选择 New > Performance Schedule,如图33中所示。


    图 33. 创建性能测试调度
    截屏

    1. Performance Schedule 窗口将被打开,如图34中所示。输入 DayTraderSchedule 作为测试调度的名称。


    图 34. 测试调度的详细资料
    截屏

    Performance Schedule 属性窗口中,如图35中所示,在 Schedule Contents 下面请注意 DayTraderSchedule 和一个 user group。在 Schedule Element Details 中,General 标签显示 Number of users 的默认值为 5。此即为您所运行的 Rational Performance Tester 的评估版本中虚拟用户数量的最大值。


    图 35. 性能测试调度属性窗口
    截屏

    8. 为测试调度中的数据收集的崩溃配置响应时间

    1. Schedule Element Details 中,点击 > 显示更多的标签。
    2. 点击 Response Time Breakdown 标签,如图36中所示。
      1. 选择 Enable collection of response time data,如图37中所示。
      2. 选择 DayTraderTest,执行收集。
      3. Options 下,选择 High 作为 Detail 的级别。
      4. 选择 Only sample information from a subset of users
      5. 选择 Fixed number of users,然后为 per User Group 输入 2


    图 36. Response Time Breakdown 标签
    截屏


    图 37. Response time breakdown 设置
    截屏

    1. 确保保存了设置(组合键 CTRL+S)。

    默认情况下,User Group 1 将被用于添加测试。默认的用户组大小是100%运行在本地计算机上,如图38中所示。在本文(第 3 部分)的第二小节中,将介绍添加更多用户组作为用户负载测试的详细步骤。


    图 38. 默认的用户组
    截屏

    9. 将 DayTraderTest 添加到 DayTraderSchedule

    1. Performance Schedule 属性窗口中,右键单击 User Group 1,并且选择 Add > Test,如图39中所示。


    图 39. 向测试调度中添加测试
    截屏

    1. Select Performance Tests 窗口中,展开 DayTraderProject 并且选择 DayTraderTest,如图40中所示。
    2. 点击 OK


    图 40. 选择 DayTraderTest
    截屏

    测试被添加到 User Group 1 下的测试调度中,如图41中所示。


    图 41. 被添加到测试调度中的 DayTraderTest
    截屏

    1. 再次使用组合键 CTRL+S 保存改变。

    10. 运行 DayTrader 测试并且回顾报告

    1. 首先,启动 DCI (数据转换接口)监视器,如图42中所示。在窗口中:IBM Software Delivery Platform. > IBM Rational Data Collection Infrastructure > Start Monitoring


    图 42. 启动 DCI
    截屏

    1. Test Navigator 中,右键单击 DayTraderSchedule,显示菜单。
    2. 选择 Run As > Performance Schedule,如图43中所示。


    图 43. 运行性能测试
    截屏

    当收集操作完成之后,Rational Performance Tester 将启动该测试调度,收集数据,并且在报告中显示结果。

    1. 滚动到不同的标签上,查看报告。


    图 44. 完成的性能报告
    截屏

    当您完成性能报告之后,您能够导出一个 HTML、XML 或者 CVS 格式的版本,用于浏览器中进一步的分析、打印、显示,或者仅仅是通过电子邮件将其和其他人分享。按照下述步骤将报告导出为 HTML:

    1. Performance Test Runs 视图中,右键单击您希望导出的报告。
    2. 从菜单中选择 Export To HTML,如图45中所示。


    图 45. 将报告导出为一个 HTML 文件
    截屏

    请注意:
    如果您无法看到这个报告,请右键单击 DayTraderSchedule 并且从菜单中选择 Display Report,如图46中所示。


    图 46. 显示报告
    截屏

    1. 为报告提供 locationfile name,然后点击 Finish,如图47中所示。


    图 47. 为报告指定位置和 HTML 文件的名称
    截屏

    1. 打开被导出的报告,并且在您的网络浏览器中回顾它,如图48中所示。


    图 48. HTML 格式的性能报告
    截屏


    关于第三部分 如何测试不同规模的用户负载

    至此,您已经理解了基本知识,并且准备好进行第三部分(请参见 参考资料 中的链接)的操作,运行不同用户负载规模的性能测试。

    可选项:配置 DayTrader 例子应用程序

    1. 下载 IBM WebSphere Application Server Community Edition V1.1.0.2,请您参见参考资源小节中的链接,并且将其安装到 Rational 测试器的同一台机器上。
    2. 下载 IBM DB2 Express-C 9,请您参见参考资源小节中的链接,并且将其安装到 Rational Performance Tester 的同一台机器上。
    3. 从下载小节中下载 DayTrader.zip 文件,并且解压缩到 C:\ 下面。
    4. 接下来,设置数据库:
      1. 在 DB2 命令窗口中,创建一个名为 tradedb 的数据库:
        命令:db2 create db tradedb
      2. 使用 db2admin 发布一个到 tradedb 的连接:
        命令:db2 connect to tradedb user <db2admin> using <password>
      3. 加载 tradedb 的数据库测试调度:
        命令:db2 –tvf C:\daytrader\modules\db2\sql\Table.ddl


    图 49. 创建并且配置 tradedb
    截屏

    通过以下这些步骤将 DayTrader 应用程序配置到 WebSphere 应用程序服务器之中:

    1. 编辑 C:\daytrader\plans\dayTrader-db2-9.1-XA-plan.xml 文件:
      1. 修改 TradeDataSourceUserPasswordDatabaseNameServerName 属性。
      2. 查询并且修改信息:
        • {db2admin}
        • {db2admin_passwd}
        • {iic02.iicmy.ibm.com}
        • {tradedb}


    列表 1. XML 文件中的代码

    <name>jdbc/TradeDataSource</name>
    <config-property-setting
    name="User">{db2admin}</config-property-setting>
    <config-property-setting
    name="Password">{db2admin_passwd}</config-property-setting>
    <config-property-setting
    name="PortNumber">50000</config-property-setting>
    <config-property-setting
    name="ServerName">{iic02.iicmy.ibm.com}</config-
    property-setting> <config-property-setting
    name="DatabaseName">{tradedb}</config-property-setting>
    <config-property-setting
    name="DriverType">4</config-property-setting>
    


    1. 将改变保存到 dayTrader-db2-9.1-XA-plan.xml 文件中。
    2. 通过点击 Start > IBM WebSphere > Application Server community Edition > Start the server,启动 WebSphere Application Server Community Edition
    3. 打开 Windows 命令行,改变目录至 %WASCE_HOME%\bin
    4. 使用这条命令配置 daytrader.ear 文件:
      deploy.bat deploy C:\daytrader\modules\ear\target\daytrader-ear-1.1.1.ear c:\daytrader\plans\dayTrader-db2-9.1-XA-plan.xml
    5. 当您在配置期间被提示输入用户名和密码的时候,请输入“system”作为 username,“manager”作为 password


    图 50. 配置 daytrader.ear 文件
    截屏

    1. 当配置完成之后,重新启动 WebSphere:
    2. Start > IBM WebSphere > Application Server community Edition > Stop the server
    3. Start > IBM WebSphere > Application Server community Edition > Start the server
    4. 在开始使用 DayTrader 之前对其进行配置:
    5. 在一个网络浏览器中,打开:http://iic02:8080/daytrader/
    6. 点击 Configuration 标签,然后点击 (Re)-populate DayTraderDatabase


    图 51. 移植 DayTrader 数据库
    截屏

    1. 一个新的浏览器将被打开执行移植操作。请您等待,在它完成后会自动关闭该浏览器。
    2. 请注意被移植的用户 ID。您将使用它登录 DayTrader 应用程序。所有用户 ID 的密码统一是 xxx,如图52中所示。


    图 52. 将数据配置到 tradedb 数据库
    截屏



    下载

    描述 名字 大小 下载方法
    DayTrader sample application daytrader.zip 1799 KB HTTP

    关于下载方法的信息


     

  • 使用 RPT进行 Web 应用程序的负载测试: 第 1 部分:概述

    2010-10-25 13:52:10

    简介: 紧张的进度加上有限的资源,看起来会在不同阶段困扰着开发工作。有一些团队选择在每一次迭代时进行负载测试。大多数情况下,负载测试仅仅在开发周期的末期即项目被首次展示之前被执行。这就不可避免的会威胁到应用程序的质量及其满足客户的 SLA (服务级别协定)的能力。IBM® Rational® Performance Tester Version 7 使您能够迅速的进行负载测试,从而确保软件的性能和质量。

    目标读者群

    本文适用于以下任何一类人群:

    • 决定采用何种工具的项目管理者
      • 项目领导者
      • 项目经理助理
    • 功能性测试人员
      • 手动功能性测试人员
      • 自动功能性测试人员
    • 性能测试人员,他们是了解和使用这一工具的关键角色
    • 应用程序开发人员
    • 质量担保人员或者承包商

    IBM® Rational® Performance Tester 是一款性能测试工具,它仿真各种各样的用户负载来模拟真实生活中的负载。通过适当的计划,这一工具利用当前的负载来估计未来的负载。例如,一个客户的应用程序可能最多只能够服务5000位用户。通过 Rational Performance Tester,您能够轻易的估计出用户负载分别为1000、2000、3000、4000、5000以及更多的情况,以便您能够设计正确的用户增长,并且能够更加精确的设计服务的规格,例如最佳的 CPU 和内存需求。您能够识别并且诊断出性能的瓶颈,无论这种问题是发生在网络、数据库、应用服务器、甚至是用户应用程序之中。这一基础导致分析能力进一步分析应用程序的等级,它可能包括诸如 Enterprise Java™Beans (EJBs)、servlets、Java™ Database Connector (JDBC) API、网络服务器等等页组件。这一功能性使您能够通过分析在线的或者解压的报告轻易地和有效地查明性能问题。

    Rational Performance Tester 也有助您在配置您的基于网络的应用程序之前创建、运行和分析性能测试,并且验证其可量测性和可靠性。默认支持的协议包括 HTTP 和 HTTPS,允许您在Web 应用程序上运行负载测试。若干扩展也被提供如下:

    • IBM® Rational® Performance Tester Extension for Citrix Presentation Server
    • IBM® Rational® Performance Tester Extension for SOA Quality
    • IBM® Rational® Performance Tester Extension for Siebel Test Automation
    • IBM® Rational® Performance Tester Extension for SAP Solutions

    Rational Performance Tester 同使用一个可携式摄像机录制录制一段视频剪辑拥有相似的工作方式。它允许您录制您想要运行负载测试的每一步操作,然后通过适当的用户负载重放这些操作。本系列文章的第 1 部分(即本文)介绍了 Version 7 中所包括的特性和功能。

    在一个典型的场景中,为了测试一个 Web 应用程序,您就要通过定义良好的测试计划来识别各种各样的场景。在一个负载测试期间,一位导致多个测试服务器负载崩溃的用户往往是我们所想要的。通过在多个机器之间适当的分摊用户负载,能够确保生成有意义的报告。这是一种在某些避免测试器负担过重的同时,另一些测试器却没有被充分利用的好方法。本系列文章的第 2 部分和第 3 部分将讨论在不影响您先前所录制的测试脚本的情况下,有效地降低用户负载所需要考虑的事项。它将探索一个视觉指导的、基于目录的(基于树形结构的)编辑器和步骤来创建、编辑、确定评价时间、并且获得分析报告。

    本系列文章的第 4 部分全部是关于报告的。我们将解释如何检查、诊断、分析和解释 Rational Performance Tester 所提供的各种各样的分析报告。例如,一个Web 应用程序可以被分解为不同的组件,诸如 EJBs、servlets、JDBC 以及用于分析的 Web 服务器。我们还将探索默认的报告,并且描述如何定制它们。

    本系列文章的目的是帮助您理解特性、拓扑事项、以及约束条件,以便您能够创建和测试 Web 应用程序,并且分析其性能报告。根据这一知识以及 Rational Performance Tester 的使用的便捷性,负载测试一个Web 应用程序不再是一项繁重的重担,您能够将其包含在软件的每一次迭代中。

    本文概述

    IBM Rational Performance Tester 为您提供了特性丰富的功能,它能够有效并且容易的加载测试。您不再需要在维护复杂的测试脚本上面浪费时间,而是能够在大多数情况下使用半自动的测试工具来帮助您完成相应的操作。您也不再需要编写测试脚本,因为管理员任务是基于一个 Eclipse 3.2 框架结构中的交互式的图形用户接口(GUI)的。换句话说,您能够通过使用 GUI 完全掌控测试周期,您还可以使用定制代码进行高级的测试。这种 GUI 的方法主要包括以下种类:

    • 交互式的绘图测试
    • 测试的创建、精炼、重放和时序安排
    • 数据池和相互关系
    • 工作量的分解和分配
    • 实时系统监测控制
    • 实时系统报告分析
    • 版本控制
    • 定制代码和扩展测试
    • 缩放比例和维护

    本文将对以上每一个种类进行探索:

    交互式的绘图测试

    首要的问题是,IBM Rational Performance Tester 是建立在一个可扩展的开发平台之上的,使用的是 Eclipse 框架结构 Version 3.2。从开发的角度来看,Eclipse 框架结构的优势十分明显,但是从实践者的角度来看,IBM Rational Performance Tester 提供了全面而广泛的、上下文相关的 GUI 透视图来创建、管理和规划测试脚本。从测试的创建、用户负载的分发、到数据的收集,您都能够得到相应的视图。图1中显示了默认的测试透视图。


    图 1. 基于 Eclipse 的 GUI 测试
    基于 Eclipse 的 GUI 测试

    依据您所使用的透视图,相应的视图可能会有所变化。例如,默认的测试透视图提供一个四个面板的控制台及其相应的视图,包括:位于左下方面板的 General > Outline, General > Properties, Test > Performance Test Runs 和位于底部面板的 General > Tasks, Test > Recorder Control, Test > Protocol Data。然而,您不仅局限于这些默认的视图。在任何时间,您都能够将与特定任务相关的视图包括进来,例如 Database Explorer 或者 Error Log 视图。向您的工作空间中添加一个特定的视图是非常直截了当的。例如,使用 Database Explorer 探索数据库的连通性,只需遵照如下步骤:

    1. 选择 Windows > Show View > Other。更加通用的视图,例如 Error Log、Outline 和 Tasks 被列在下拉列表中,如图2中所示。默认的测试透视图设定了一组预先配置好的视图。您能够通过定制操作添加或者删减这些视图。


    图 2.显示视图
    显示视图

    1. 使用 Type-Forward Filtering 特性(如图3中所示)搜索您想要的视图,您无须完整匹配整个字符串。在这种情况下,后缀为 dataDatabase Explorer 视图。


    图 3. 类型前导过滤器
    类型前导过滤器

    透视图具有针对不同任务所提供的相应的视图,范围包括 General、Analysis、Connectivity、CBS、Debug、Profiling、Logging 和 SQL Development。我们需要做的是在正确的时刻选择正确的透视图。您能够拖动视图到面板中的任意位置,重新排列它们,或者当您需要返回原始布局时将它们归还到默认的透视图中。然而,透视图的重新安排是配置到当前打开的透视图的。例如,当其被选中时,数据库探索视图将如图4中所示:


    图 4. 数据库探索视图
    数据库探索视图

    其他值得注意的方面包括:

    • 您能够使用下拉菜单搜索视图。从菜单中选择 Windows > Navigate > Next View
    • 您能够通过按下“up”和“down”箭头在工作空间中当前处于打开状态的任意视图中进行定位。同样的操作也适用于定位透视图。
    • 同样,您也能够使用快捷键来定位视图,例如 CTRL-F7 (向后定位)或者 CTRL-SHIFT-F7 (向前定位)。您能够从 Menu > Windows > Preferences > Keys 中定制快捷键。General > Keys 下面的设置将被应用到所有的透视图中。


    图 5. 导航透视图
    导航透视图

    • 透视图能够根据您的需要被定制和保存,如图6中所示。三种定制方式分别为:可用的命令组、菜单中的详细内容、工具条中的详细内容。


    图 6. 定制透视图
    定制透视图

    • 还将提供一个Web 服务浏览器。


    图 7. Web 服务浏览器
    Web Services Explorer

    实时的捕获、精炼、重放和时序安排

    捕获、精炼、重放和时序安排一个测试的操作十分简单,这是因为 Rational Performance Tester 就是为了初学者能够方便使用而设计的。根本机制,诸如自动捕获和重放,对于用户来说都是不可见的。这使得测试的创建和维护变得十分简单。要录制一个测试,需要执行以下步骤:

    1. 首先,创建一个测试项目。从菜单中选择 File > New > Performance Test Project。根据提示输入项目的名称。


    图 8. 创建一个测试项目
    创建一个测试项目

    1. 选择一个录制。对于 Web 应用程序,选择 HTTP recording。点击 Next
    2. 在下一个页面,为您所选择的测试项目命名。


    图 9. 选择协议
    选择协议

    1. 您能够为测试下的应用程序捕获任何一个 Web URL,如图10中所示。如果您对录制满意的话,点击 Exit Recorder。现在,您就能够精炼您的测试脚本(通过点击)并且以任何方式重放它了。


    图 10. 录制
    录制

    在您录制测试脚本之后,通常还需要精炼测试调度。例如,您能够按照以下方式定制您的脚本:

    • 添加每一个虚拟用户之间的延迟时间(单位是微秒)、用户“思考时间”和统计级别的设置。
    • 定义您自己的数据池(下一主题中将会对此进行讨论)。
    • 使数据相互关联(确保有意义的数据在页面到页面之间平稳的流动)。
    • 添加验证点(检查测试下每一个页面的通过率)。
    • 添加特定协议元素、事务、循环、注释、条件处理和定制代码。

    IBM Rational Performance Tester 使您能够为运行测试脚本创建任意数量的测试项目、录制和时序安排。进一步的解释将在本系列本章的第 2 部分中加以介绍,您将使用 IBM Rational Performance Tester 实现一个完整的负载测试周期。

    数据池

    IBM Rational Performance Tester 能够为动态加载测试数据提供变量数据,或者直接从 CSV 文件中提供,或者从定制代码中提供。数据池是一种仿真实际生活场景的方式。例如,想象一下您希望测试 ACME Online 应用程序,即一个在线购物系统。在登录之后,用户将使用特定的关键字进行搜索、浏览目录、选购商品、输入细节、添加评论、或者在以一种指定的付费方式结算之前评价他们以前的购物经验。传统上说,测试数据要求富有技巧的人员提供定制代码。拥有数据池的话,您就能够使用您定制的测试数据评价每一个要求输入的页面。在这个 ACME Online 场景中,数据池能够被创建用于用户登录、搜索关键字、等等。这一特性使您能够建造精力充沛和灵活的测试实例。

    图11显示了在数据池编辑器中一个被导入的数据池的例子。


    图 11. 数据池
    数据池

    您能够在被导入的数据池中执行以下操作:

    • 添加一个录制
    • 删除一个录制
    • 添加一个变量
    • 编辑一个变量
    • 删除一个变量

    一个典型的测试实例由多个页面组成,根据页面的自然属性,需要不同的变量。这一用户输入被封装在 HTML 格式中。您能够通过命名创建同每一个页面相对应的数据池。例如,为了有效的测试一个端对端的Web 应用程序,数据池可能包括诸如 UserLogin、SearchString、ItemName、PaymentMethod 等等的池。创建数据池并且将其同一个页面相关联只需进行如下操作:

    1. 右键单击 Datapools 文件夹(将所有 Datapools 放到一个文件夹中是一个很好的习惯)或者 Test Navigator 中的任何位置,如图12中所示。


    图 12. 添加一个数据池,步骤一
    添加一个数据池,步骤一

    1. 接下来,指定新数据库所在的文件夹。在这个例子中,是在 Yahoo Entertainment > Datapools 文件夹下。在点击 Next 赋予其一个名称,如图13中所示。


    图 13. 添加一个数据池,步骤二
    添加一个数据池,步骤二

    1. 您能够创建任意行和列的数据池。提供一个描述是可选项,如图14中所示。


    图 14. 添加一个数据池,步骤三
    添加一个数据池,步骤三

    1. 浏览想要得到的 CSV 文件(您需要事前创建它)。点击 Finish 完成添加数据池的操作。


    图 15 添加一个数据池,步骤四
    添加一个数据池,步骤四

    将页面同数据池关联起来

    1. 将页面同数据池相关联是一项简单明了的操作。从性能测试录制的测试数据小节中,选中替代为数据池的那一行,然后点击 Data Variable,如图16中所示。

    提示:
    包含查询字符串的 URLs 将被自动检测到,并且用深绿色被显示出来。


    图 16. 将数据池同页面相关联,步骤一
    将数据池同页面相关联,步骤一

    1. 点击 Add Datapool,在您想要添加的数据池上点击,然后点击 Select,如图17中所示。


    图 17. 将数据池同页面相关联,步骤二
    将数据池同页面相关联,步骤二

    1. 完成关联数据池和页面的操作,请您定位到该列并且点击 Use Column 按钮,如图18中所示。


    图 18. 将数据池同页面相关联,步骤三
    将数据池同页面相关联,步骤三

    IBM Rational Performance Tester 的数据池特性使您能够替换不同的数据,基于不同的页面定位,从而避免了例如定制代码等更多的复杂性。您能够构造基于页面定位的不同联合的测试实例,并且将每一个要求用户输入的页面同一个或者多个数据池相关联。然而,对于使用大量测试数据构造起来的真正可升级的测试实例来说,替换数据池也许并不是最佳的解决方案。在那些情况下,您能够使用定制代码功能。例如,一个 Java™ 开发人员能够将定制代码插入。(关于这一内容的更多详细信息,请您参见 IBM® developerWorks® 题为 使用 IBM Rational Performance Tester 7.0 处理测试数据,第 2 部分: 使用超大测试数据集文件 的文章。)

    在运行中替换数据池的能力与关联不同数据的能力结合起来通过测试一个多用户的环境进行评价。相互关系(也被称为使用动态数据)是确保当前页面上的请求是基于前一个页面的引用(值)的一种方法。通常,当前页面上的数据请求是基于前一个页面中的响应数据的。Rational Performance Tester 认可并且自动将这些引用相关联,从而清楚地评价每一个用户的活动。这样的话,通过从所有测试页面中被请求的截然不同的数据,就能够将不同用户彼此区分开来。

    关联数据有以下两种方法:

    • 自动的:(自动的数据关联),测试生成器自动检测到当前请求中要替换的前一个值。正如前面所提到的,引用(从前一个中响应的值)将被用于关联后续请求的值。您也可以使用自己定制的代码扩展这一相互关系。
    • 手工的:通过阻断现已存在的相互关系,并且将前一个的响应作为值链接到当前的请求。尽管这是默认的行为,但是您能够关闭自动的数据关联。然而,当您将其关闭之后,您将依靠您自己,直到用于测试页面的数据流程关系被关注为止。关闭操作十分简单,如图19中所示:
      1. 进入 Menu, Windows > Preferences > Performance Test Generation
      2. 选择 Data Correlation 标签。


    图 19. 关闭数据关联
     关闭数据的相互关系

    工作量的分解和分配

    为了在应用程序负载测试期间仿真实际生活的场景,Rational Performance Tester 为您提供了灵活的选项,使得测试如同实际情况一样。您能够动态地创建任意多个测试脚本和调度,以及任意虚拟用户负载的结合。通常,您还想知道您是否拥有以下这些选项:

    • 我是否能够指定1000个虚拟测试人员,以相等的用户负载运行于三台远程机器中?
    • 我是否能够首先运行虚拟测试人员总数的10%,然后运行再运行另外10%?
    • 我是否能够让一组虚拟测试人员运行测试下的应用程序内部的某一部分?
    • 我是否能够指定用户思考时间?
    • 我是否能够是测试序列随机化?
    • 我是否能够通过每一位虚拟用户使用不同的 IP 远程运行负载测试?
    • 我是否能够以一定的比率运行测试?

    由于 Rational Performance Tester 允许您完成这些选项的任何变换,所以我们将首先探索它是如何允许不同的活动通过附加到它们上面的测试元素被指派到不同组的,以及这些元素是如何影响一个负载测试的行为的。图20中显示了您能够轻易的分解工作量,并且指派到不同的用户组,使得每一个组负责不同的虚拟用户。例如,添加一个新的组:

    1. 只需右键单击测试调度中的组(在 Schedule Contents 下方)。
    2. 选择 Add > user group 选项。

    当您创建一个组后,您就能够通过将测试脚本(录制)附加到这些组上,分解所有组间的分配。

    请注意:
    用户组和测试脚本之间的关系是 1:N。换句话说,一个用户组能够运行不止一个的测试脚本。至于工作量的分配是按照用户的绝对值还是相对比例,完全取决于您。


    图 20. 负载分布
    负载分布

    然而,要仿真一个实际生活的场景,仅仅将工作量在不同的组间分配对于反映一个好的测试场景来说并不是必须的。为了克服这一点,Rational Performance Tester 提供了不同的元素,您能够将它们同一个测试调度关联起来。无论调度中是否包括这些取决于您正在测试的场景。这些元素被直接关联到一个调度中。图21中描述了能够被包括在一个调度中的某些元素。


    图 21. 拥有其他元素的调度
    拥有其他元素的调度

    您能够将这些元素添加到一个测试调度中:

    • 测试脚本(录制):在它被录制之后,您能够将测试脚本指派到调度中。一个调度能够拥有不止一个通过不同的用户组被直接指派的测试脚本,这是因为每一个用户组都能够拥有不止一个的测试脚本。
    • 组和百分点指派:它用于分解工作量的用户组。它包括设置开始运行的用户数量的能力。例如:50位用户在 T1 时间点开始运行。
    • 用户思考时间:要仿真典型的思考时间,需要设置如下四个选项:
      • 被录制的思考时间;
      • 固定的思考时间(默认是2秒钟);
      • 动态增加或者减少思考时间的百分点;
      • 随机设定思考时间的百分点。
    • 延迟时间:您能够包括两个用户运行之间的延迟时间(单位是毫秒)。任何一种实际生活的场景都很难达到一个高的、真正的并发(例如,20位用户在 T1 时间点精确地同时运行)。通常来讲,50-100毫秒的延迟时间都属于正常的范围。如果您将延迟时间设置为100毫秒,那么这意味着一个用户(虚拟用户)在 12:00:00:00 开始运行,第二个用户在 12:00:00:01 开始运行。
    • 循环:它用于以一个规定的比率运行测试。从 Schedule Element Details 面板中,您能够设置迭代的数量,并且控制迭代的比率(例如,每两秒中一次)。您还能够随机化迭代之间的延迟。
    • 随机选择器:在现实生活中,应用程序页面击中通常是随机的。这个元素用来通过添加随机选择器,为一个测试运行序列提供随机选择,而不是按照测试顺序地运行。在随机选择器的设置期间,要求输入权重。在后面的操作中,您将把权重同一个测试脚本相关联。
    • IP 别名:它使您能够对每个拥有一个专用 IP 地址的虚拟用户进行仿真。

    本系列文章的第二部分将更加详细地解释这些元素。

    实时系统监测控制

    性能测试的目标就是通过为所有涉及到的组件收集分析数据,识别性能的瓶颈。这包括应用程序等级性能监控,例如应用程序服务器级别 instrumentation for IBM® WebSphere® Application Servers (版本5或者更高的版本),以及 BEA WebLogic Version 8 或者使用面向应用程序服务器的 Application Response Measurement (ARM) API 的数据收集,例如 JBoss、Apache Tomcat 等等。另外,数据库等级监控可以是 ARM 激活的。在这种意义下,所有的数据库活动都能够被收集和显示为 UML 顺序图。启用现实生活的应用程序监控仅仅是性能测试监控的一个方面。数据收集的这些级别(应用程序和数据库等级)在不具备收集服务器端资源级别监控(应用程序的各个组件正是运行于此)的情况下是无法完成的。

    IBM Rational Performance Tester 支持三种以上默认的实时资源水平监控方法,其中包括:

    • IBM® Tivoli® Monitoring
    • UNIX® 或者 Linux®rstatd 后台程序
    • Microsoft® Windows® Performance Monitor (perfmon)

    作为一个例子,如果要使用 Windows Performance Monitor 进行监控,您就需要启用资源监控。按照以下步骤收集 Windows Performance Monitor 的分析数据。

    1. 选择调度;
    2. Schedule Element Details 面板中,点击 Resource Monitoring 标签;
    3. 勾选选项 Enable resource monitoring,如图22中所示;
    4. 对于一个新的安装,点击 New 添加它。您还能够将一个现已存在的服务器添加为被监控的,或者从之前定义的服务器中进行编辑。


    图 22. 启用资源监控,步骤一
    启用资源监控,步骤一

    1. 在您点击 Add New 之后,您就能够在 Location 标签下输入您的 usernamepassword
    2. 然后,您能够在 Resource 标签下选择您所希望的 statistics,如图23中所示,并且在 Options 标签下选择 pollingtime-out intervals


    图 23. 启用资源监控,步骤二
    启用资源监控,步骤二

    请注意:
    如果要通过 IBM Tivoli Monitoring 和 UNIX (或者 Linux)的 rstatd 进行监控,您就必须确保在它们被连接之前就已经启动并且运行。除了实时系统监控之外,您还能够从 IBM Tivoli Monitoring 将历史数据导入到一个性能报告之中。例如,从菜单中选择 File > Import,然后选择 ProfileLogging > Resource Monitoring Data。下一幅屏幕将允许您指定 Tivoli 监视服务器。现在,您只能够导入 IBM Tivoli Monitoring 历史数据,如图24中所示。


    图 24. 从 Tivoli 中导入历史数据
    从 Tivoli 中导入历史数据

    实时系统报告分析

    使用 Rational Performance Tester 的好处之一就是在线(以及不在线)分析报告能够被生成出来分析性能,以及工具找出特定问题的根源的能力。默认的报告远不止通常的目的。如果需要更加高级的报告,您就能够定制分析报告,从而为更加深刻的洞察性能问题生成更加有意义的、深入的报告。在 IBM Rational Performance Tester 中提供四种类别的 HTTP 报告:

    • 性能报告
    • 页面元素报告
    • 百分点报告
    • 确认报告

    请注意:
    不同性能报告的细节将在本系列文章的第 2 部分中进一步阐述。

    性能报告由高级别的报告组成,例如全部运行成功率、一个显示全部已完成用户的概要页面、流逝的时间总计、所有页面的平均响应时间,等等。在线性能报告为方便定位被显示为不同的格式(9个标签)。例如,图25中显示了响应与时间的概要格式。


    图 25. 性能报告:响应与时间的概要
    性能报告:响应与时间的概要

    页面元素报告,一个5个标签的报告,由其自己的默认分析报告集组成,例如 Response vs. Time Details 和 Page Element Throughput。图26中显示了一个典型的页面元素吞吐量报告。


    图 26. 页面元素报告——页面元素吞吐量
    页面元素报告——页面元素吞吐量

    百分点报告,一个4个标签的报告,显示了同页面响应时间相关联的百分点范围。它所提供的默认报告包括概要和 85th、90th 以及 95th 百分点。这一报告类型通常被用于决定异常的情况,例如页面活动中的震荡。通过关联百分点和页面,数据能够在每个页面级别上被集合以识别那些关键百分点的页面行为。这些报告是一种表达 85% 的页面在 X 毫秒内被完成、90% 的页面在 Y 毫秒内被完成等的方式。您能够创建百分点和页面响应时间之间的关系,以便它为您提供保障 85% 的页面能够在指定时间内被响应。然后,通过将报告同百分点报告进行可视化的比较,您就能够轻易的看到任意时刻异常事件发生的情况。

    图27捕获了 85th 百分点,而且对于一个页面来说,精确捕获到 90th 和 95th 百分点也并不是一件不寻常的事情,它意味着事情都进展的很顺利。如例子中所示,85% 的用户都在 16,954 毫秒内完成 Yahoo! Entertainment 页面的下载。


    图 27. 百分比报告——85th
    百分比报告——85th

    验证点报告,一个3个标签的报告,为页面提供了“通过”或者“失败”的状态,以便进行确认。确认是测试脚本下面的 Test Content 下面的集合。它是一种判断页面请求是“通过”还是“失败”测试的方法。测试的内容可以是 HTML 页面标题、HTML 返回代码、以及 HTML 响应大小(请参见 Windows > references > Performance Test Generation > Verification Points)。验证点能够为每一个页面打开,如图28中所示:


    图 28. 验证点——启用
    验证点——启用

    页面验证点报告列出了每一个页面及其相应的“通过”或者“失败”率,以及百分比通过率。一个例子“页面验证点”报告显示了完成的页面的通过率。在图29所示的例子中,没有失败的页面;因此,通过率是百分之百。


    图 29. 验证点——页面验证点
    验证点——页面验证点

    除了这四个报告,您还能够挖掘到页面级别,以便更好的理解基于页面级别的响应时间。

    1. 挖掘一个页面,选择 Page Performance 默认性能报告中的标签上的一个页面(垂直工具条),并且右键单击选择 Display Page Element Responses。例如,图30中显示了 My MTV Movie Awards '07 页面,以及 Breaking News on Yahoo! 被选中用于挖掘。


    图 30. 页面元素响应,步骤一
    页面元素响应,步骤一


    图 31. 页面元素响应,步骤二
    页面元素响应,步骤二

    Rational Performance Tester 还能够使您执行根本原因的分析。这在两个方面获得便利:资源使用(正如前面所提到的)以及代码执行统计表。此处,您从性能报告中能够得到一个响应时间分解报告。这允许您在预定的测试期间从页面元素中分析统计表,或者从外部工具中分析任何导入的历史数据。响应时间分解为您所测试的系统显示了诸如每一项元素的周期等细节。每一个页面元素都被同统计表中的一个入口关联起来。在获得响应时间分解之前,您必须选中 Response Time Breakdown 选项:

    1. 选择包括测试脚本的调度,然后选择 Schedule Element Details > Response Time Breakdown
    2. Quick Links 下,勾选 Enable collection of response time data 复选框。
    3. 最后,为适当的录制选择复选框。


    图 32. 启动响应时间分解
    启动响应时间分解

    1. 确保 DCI 正在运行,并且已经准备好被监控。
    2. 要启动监控,进入 Start > All Programs > IBM Software Development Platform. > IBM Rational Data Collection Infrastructure > Start Monitoring

    Response Time Breakdown 报告提供了与代码执行相关的统计表,它包括根本组件:JDBC、RMI/IIOP (Remote Method Invocation over Internet InterORB Protocol)、网络服务器、EJBs,等等。图33中显示了一个 Response Time Breakdown 报告的例子。(您也能够通过查看 Response Time Breakdown Statistics 获得更多细节,尽管该选项并没有被显示在这里。)


    图 33. 响应时间分解
    响应时间分解

    通常来讲,响应时间分解是在开发环境中被捕获的。在它被启用和配置用来收集数据的量(低、中、高)之后,并且数据收集器基础构造被安装和运行之时,您能够通过以下几种方式收集数据:

    • 从一个标准的Web 应用程序性能测试中得到;
    • 从这些性能监控工具中:IBM® Tivoli® Monitoring for Transaction Performance、IBM® Tivoli® Composite Application Manager for Response Time Tracking、或者 IBM® Tivoli® Composite Application Manager for WebSphere 得到;
    • 从 Java™ 2 Platform、Enterprise Edition (J2EE) 应用程序服务器和 Application Response Measurement (ARM) 中得到。它所支持的应用程序服务器包括 IBM® WebSphere® Application Server 版本5和版本6,以及 BEA WebLogic 版本8;
    • 从网络服务中得到;
    • 从一个配置 ARM 的应用程序中得到。这一模式支持一个不支持 J2EE 的应用程序服务器。数据能够通过手动插入 ARM API 调用而被收集。ARM 工具将通过挖掘工具下面的应用程序提供一个事物序列图表;
    • 从应用程序、网络服务器、数据库服务器所生成的应用程序日志中得到。这些能够被导入、分析和关联。

    请注意:
    每一个应用程序服务器都需要被配置和被用于数据收集基础构造。

    启动 Data Collection Infrastructure (DCI) 监控器的唯一目的就是收集分析数据。正如前面所提到的,为了确保数据被收集,DCI 需要为每一台运行应用程序的主机启用(安装和运行)。失败的操作将导致如图34中所示的错误。


    图 34. Profiling Agent 错误
    Profiling Agent 错误

    版本

    Rational Performance Tester 同 IBM® Rational® ClearCase® LT 被打包在一起,使得源版本控制能够更好的鼓励开发环境中的协作。ClearCase LT 配置一个单一的服务器模型以及少量的管理需求。尽管自然地适合于一个比较小型的环境,例如25-30位开发人员和测试人员,但是您也能够将 ClearCase 或者 IBM® Rational® ClearCase MultiSite® 编辑器用于更加大型的环境中,并且为两者都提供了移植路径。

    资产,例如项目、调度、测试、定制代码、数据池、位置、以及结果等,能够被放到源代码控制之下。通过 IBM Rational ClearCase LT 源控制,可以提供以下特性:

    • 检入和检出:检入资产,使得他人能够在其上面工作。而检出则允许您在您的本地工作台中在其上面工作。
    • 透视图支持:CVS Repository Exploring (如图35中所示)和 Team Synchronizing 透视图。


    图 35. 与 CVS 相关的透视图
    与 CVS 相关的透视图

    • 多个视图:CVS Console、CVS History 和 CVS Repository。
    • 同步与融合:
      • 同步是一种通过知识库检查本地工作台之间差异性的一种方式。它允许您在您的本地工作台中更新资源,并且将资源从本地工作台提交到一个知识库中。
      • 融合使您能够在资源冲突时找到折中的方案。

    同 Rational ClearCase LT 的集成引入了在工作台中共享工作资产的功能,或者资产的并行开发功能。任何人都能够通过检入和检出工作区域共享测试文件,任何团队成员都能够在任何时间对其进行更新。通常来说,个体将本地工作于团队项目的一部分,他们通过同步工作台中发生的任何变化来核对其他人的工作。简而言之,所有的工作都是由一个本地个体所完成的,只有在这个人将它们通过提交到知识库中发布之后,它们才能够被共享。当您已经将变化提交到分部时,变化将会从您的本地工作台被拷贝到分部中。

    基于功能性的需求,有许多不同的分部,例如并行运行的每一个项目都有一个分部。同样的道理也适用于处理不同的分部。您将通过首先同步您的工作台,检查其他人的工作。为了进行同步操作,IBM Rational Performance Tester 配备了一个 Team Synchronizing 透视图,以便更加容易的进行定位和管理。有以下四种与同步相关的模式:

    • 流入:显示 CVS 知识库中与本地工作台不同的资源(只是流入改变);
    • 流出:显示本地工作台中将被修改的资源(只是流出改变);
    • 流入/流出:显示流入和流出改变的结合;
    • 冲突:显示冲突的资源。当知识库中具有比您正在工作的资源更加新近的副本时,资源就会发生冲突。资源冲突的问题可以通过融合技术解决。丢弃您的工作或者其他人的工作也许并不是一个好的选项。

    添加定制代码和扩展测试

    IBM Rational Performance Tester 首先是一个交互式的 GUI 测试器,它使初学者也能够轻松的执行加载测试。然而,有时侯也需要添加定制代码,从而实现更高级的测试方法。

    定制代码选项以绿色字符 C 作为图标。您可以在测试脚本中的任何位置插入定制代码。图36中显示了两段即将被插入的定制代码的片段。当您第一次插入定制代码的时候,将自动生成一个类名称。不过,如果您愿意的话,可以将其重新命名为有意义的字符串。


    图 36. 插入定制代码
    插入定制代码

    当定制代码被插入之后,您就能够立即通过转换到 Java 源代码视图来输入代码逻辑(点击 View Code)。此外,您还能够将透视图改变为 Java Browsing。另外,内联的 Java IDE 允许您调试您的代码。


    图 37. 生成定制代码
    生成定制代码

    系统提供两个接口:CustomCode2ITestExecutionServices,用于扩展测试执行(提供一个完整的 Javadoc)。下面的场景就是扩展测试执行的典型用例:

    • 控制循环行为;
    • 运行一个已经存在的调用外部程序;
    • 找到一组用户或者一个用户的 IP 地址;
    • 设置和清除用户的访问消息
    • 从用户数据区域中获得信息;
    • 将一个页面同另一个页面关联起来。

    缩放比例和维护

    跨越地理边界为每一个远程分布的测试迭代动态地测试用户负载并不是一种通常的做法。典型的测试方法,即每一项测试都被限定在一个位置上,也许对地理分散的开发团队来说并不具有灵活性。除此之外,跨边界共享测试资产的能力,Rational Performance Tester 使您能够通过一个广域网(WAN)跨越不同的地理位置来执行负载测试。由于服务器可能是地理上分散的,所以远程执行的能力与较低的硬件要求的结合,使得您能够使用 IBM® AIX®、Linux、Microsoft® Windows® 和 z/OS 等操作系统配置远程服务器。

    例如,您可能拥有五个低端的服务器,它们从新加坡仿真5000位用户,另外有三台服务器从香港仿真3000位用户,等等。这种测试方法不仅产生更加逼真的测试效果,而且降低了测试的成本,这是因为测试结果可以由团队共享和分析,而且空闲的服务器能够被更好的加以利用。

    最低需求,例如每个虚拟用户拥有一个 CPU 和 1MB 的内存(通常来说)首先依赖于测试页面的复杂性。有些因素能够增加每位虚拟用户的内存容量。您能够通过仿真实际的场景获得更高的缩放比例,例如为每位用户使用思考时间和延迟时间。通常来说,将额外的负载放到管理员服务器上并不是一种很好的做法,这是因为与工作台相关的活动需要服务器中的资源。

    在您捕获测试脚本之后,扩大虚拟用户的范围就是添加更多的用户组。Rational Performance Tester 通过允许您添加更多的用户组以及指派用户的绝对值数量或者百分点数量,从而无缝的掌控缩放比例。只要测试实例依旧完整的话,我们就无需重新捕获测试脚本。

    中央管理部门允许一个集中的视图和管理,只需少量的管理成本就能够管理远程测试系统。管理本地测试服务器和远程测试服务器所花费的精力实际上是一样的,这是因为远程服务器并不必掌控本地服务器复杂。图38中显示了将远程服务器纳入测试服务器是多么的容易实现。


    图 38. 远程测试服务器——管理员
    远程测试服务器——管理员

    下一步工作的展望

    在本系列四篇文章的第 1 部分中,我们查看了由 IBM Rational Performance Tester 所提供的各种各样的功能。包括易于使用的 GUI 管理、报告特性、以及可量测性。尽管这些内容仅仅是被简要的概述,但是本文为您提供了一幅功能的鸟瞰图。您能够使用从这一简要介绍中所获得的知识加深对 IBM Rational 软件交付开发平台中的软件选项的负载测试工具的理解。

    在第 2 部分和第 3 部分中,您将学习一个完整的负载测试周期。在第四部分中,您将详细看到包括在 Rational Performance Tester 中的许多报告及其变种,并且学习如何根据您的特定需要对它们进行定制。


  • IBM Rational Performance Tester V7.0 入门介绍

    2010-10-25 11:16:35

    测试 Web 应用程序

    如果您对 IBM® Rational® Performance Tester 非常了解,那么您可以跳过此部分,如果您对它不了解,那么下面是一些介绍。Rational Performance Tester 是一个为测试 Web 应用程序设计的软件,它的功能是在部署之前捕获并更正性能问题。Rational Performance Tester 通过模拟并发用户的数量,产生一系列报告,这些报告被清晰的标志出来显示 Web 页面的性能、URL 和事务等信息,来帮助您在部署之前查明系统的瓶颈。

    高级的特性包括在每一个用户组的行为和使用方式层面的详细测试调度安排。Rational Performance Tester 同时还提供了一种自动化的"数据池"特性,它可以改变每一个模拟用户使用的测试数据设置。使用一个集成了测试编辑器的浏览器窗口,您可以回顾在测试记录期间访问过的 Web 页面。除此之外,高级测试人员可以选择将自定义的 Java 代码插入到性能测试中,用来执行类似于高级数据分析和请求解析的操作。

    这篇文章将会介绍一些 Rational Performance Tester V7.0 的特性。为了展示新特性,我们将会记录并执行一个简单的测试。

    核心特性

    下面是 IBM Rational Performance Tester V7.0 中一些可用的特性概括介绍。它拥有很多的特性,我们将会详细的讨论其中的一些,剩余的将会概括性的介绍。这些特性在 Rational Performance Tester Help 中有概括性介绍。

    Citrix 和 SAP 协议测试

    Citrix Presentation Server 扩展允许您装载运行在 Citrix Metaframe. Presentation Servers 上的测试窗口应用程序。您可以使用带有可选图形识别技术的窗口创建和改变事件来完成这个工作,从而同步用户输入数据和服务器输出数据。当您使用 Citrix 应用程序记录一个会话前,这个应用程序的行为必须是完全可复制的。应用程序必须经常在相同目录下以相同的顺序建立窗口和 GUI 元素。鼠标或者键盘事件必须显示相同的输出结果。

    由于 Citrix 性能测试和 Citrix Presentation Server 客户端在一个非常低的层级(鼠标移动和点击)上进行交互,所以在记录后(例如移动测试元素,添加循环或者条件,或者插入新的序列)您对测试做的任何更改,都可以改变用户行为仿真的环境以及引起同步超时。当您编辑测试时,需要特别注意用户行为的环境。

    除了 Citrix 之外,还有一些对 SAP 测试的支持。您可以在一个测试中使用类似于循环,条件和事务等的测试元素。您还可以在一个测试套件的选择点中插入一项记录。SAP 的确认点被增强为可以捕获任何 SAP GUI 的属性,并可以随意的针对一个预期数值做检查。此外,您还可以从一个 Web 接口(通过生成 SAP Web 构建)记录和回放 SAP 应用程序。

    问题分析工具

    问题分析工具做以下三件事情。他们是:

    • 收集响应时间分解数据
    • 收集资源监控器数据
    • 为分析收集的数据提供视图和工具,以便找出引起性能问题的原因。

    您可以通过使用数据收集代理完成这个工作,这些代理存在于来自产品或者开发环境的用于捕获跟踪、监视或者日志数据的数据收集框架中。您还可以使用基于 Eclipse 的工具进行检视和代码及运行数据的分析,以及关联数据。

    性能和问题分析工具可以帮助您找到并修复代码问题,这些问题可能引起分布式性能问题。它包含一些您熟悉的类似于 IBM® Performance Optimization Toolkit 等的工具,它们被封装在 Rational Performance Tester 中。下面描述的一些特性(例如,资源监控和响应时间分解)在这些工具中有详细的介绍。

    资源监控

    资源监控数据由一序列在特定间隔期间的观察组成。您可以实时收集数据,或者您可以从 IBM® Tivoli Enterprise™ Monitoring Server 找回这些数据。除了响应时间分解数据之外,资源监控数据为您提供了一种更加完善的系统视图,它可以帮助您确定问题。下面是一些数据范例,您可以收集并分析它们:

    • CPU 使用状况(总体,对于单个处理器,甚至是单个进程)
    • 可用内存
    • 硬盘使用状况
    • TCP/IP 以及网络吞吐量

    这个特性提供了一种更加完善的系统视图,它可以帮助您隔离问题。您可以在测试(或者代理)时使用 IBM® Tivoli® Monitoring、Windows Performance Monitor 或者 UNIX® rstatd 监视器监控系统。您既可以使用 Eclipse Test & Performance Tools Platform. (TPTP)阅读器,又可以使用 Rational Performance Tester performance 报告来观察资源监控器数据。

    响应时间分解

    响应时间分解为您显示了系统的每一个部分在测试期间的时间所占用系统运行总时间的比重。响应时间分解视图和一个测试或者时间表的页面元素(URL)相关。这样您可以在任意 HTTP 页面元素的响应时间统计表中,察看在测试下系统每一个部分所花费的时间。您可以使用响应时间分解来做下列事情:

    • 识别代码问题
    • 察看哪一个服务器上的哪一个应用程序是整个系统的瓶颈
    • 进一步决定哪一个包、类或者方法引起了这个问题

    为了捕获响应时间分解数据,您必须在一个测试或者调度中启动它,然后配置将要捕获的数据的信息。数据收集框架(当您安装 Rational Performance Tester 工具时您应该会看到)收集响应时间分解数据。应用程序运行时的每一个您想要收集数据的主机,必须拥有数据收集框架并且将其运行)。除此之外,您还必须配置(或者工具)每一个应用程序服务器以便使用数据收集框架。

    注释:启动响应时间分解收集功能,让整个性能日指标可以请求所需的内存数量,因此我们可以设定在何时何地启动它。


    期待已久的特性

    下面介绍的两个特性是我从 Rational Performance Tester 发布以来一直期待的特性。缺少 IP 混淆和对客户端数字证书的支持,限制了我使 用Rational Performance Tester 为一些类型应用程序类型进行性能测试。现在这两个特性已经包含在其中了。

    IP 混淆

    Rational Performance Tester 现在拥有了 IP 混淆,一项我急需的特性。默认情况下,当您运行一个调度时,每一个虚拟用户都会拥有相同的 IP 地址。但是这在真实的生活中是不存在的。对于特定类型的应用程序来说,它可以影响负载如何分布,甚至影响应用程序的详细功能。拥有了这个特性后,您可以让每一个虚拟用户感受到好像只有他一人在使用主机。

    要实现这个功能,您需要在主机上配置 IP 混淆,然后在调度中启动 IP 混淆功能。当您运行调度时,多个主机的网络流量会被显示。IP 混淆使您可以配置一个代理,在 HTTP 测试运行期间就好像负载是来自不同的 IP 地址。

    数字证书

    数字证书是一个文件,它绑定了一个带识别码的公用密钥(一个用户或者一个组织)。可信的证书权威机构发布数字证书,它们被用来鉴别用户和组织访问 Web 站点,e-mail 服务器和其他安全系统的权限。一个证书存储是一个存档文件,它包含绝大部分数字证书,或者是由不同证书权威机构发布的证书。

    使用Rational Performance Tester V7.0,您可以做:

    • 建立数字证书
    • 通过数据池访问它们
    • 将这些数据池与测试相关联

    它可以通过使用代理KeyTool命令行程序来建立数字证书存储及实现。数字证书让您针对服务器使用基于 SSL 的 HTTP 记录和运行测试,对于应用程序来说,它需要客户端的数字证书来验证用户身份。


    其它特性

    最后,在 V7.0 中还有一些其它新特性:

    • 当您使用 Firefox 或者 Mozilla 浏览器记录 HTTP 应用程序时,您不再需要配置它们。
    • 目录认证点支持预期和未预期的结果。
    • 在 Help 文档中包含了如何在测试中替换主机名称。
    • 测试执行服务文档包含更多的范例。
    • Performance Testing SDK(软件开发工具包)在安装过程中可以作为可选安装项目。

    建立一个性能测试脚本

    让我们察看一个性能测试的简单的范例。您将会针对 BookPool.com 运行一个小型的负载程序(这个负载非常的小)。随着对范例的学习,您将会对新特性的细节有所了解。其余的特性将会一带而过。

    按照下列步骤建立这个测试脚本。

    1. 打开 Create New Test From Recording 向导。
    2. 选择 HTTP Recording,如图1所示,点击 Next 按钮。

      图1:Create New Test From Recording 向导
      selecting a recorder type

    3. 为脚本输入一个名称,如图2所示。这个测试执行了一个简单的查询操作,并在购物车中添加一本书籍,在这个范例中(bookpool)反映了它的基本流程。

      图2:为测试输入一个名称
      select project and file name for test

    4. 点击 Finish 按钮。 打开 Recorder,如图3所示。这个过程可能要花费几分钟时间。

      图3:打开 Recorder
      connecting to agent controller

    5. 如果您转回到 Rational Performance Tester,如图4所示,您可以看到 Recorder Control 正将您在记录期间执行的行为记录入日志。

      图4:Rational Performance Tester Recorder Control
      KBytes Recorded and Recorder Status

      Recorder 运行之后,Rational Performance Tester 会打开浏览器到 ReadMe 页面,如图5所示。这个页面概要了一些性能测试的公共实践。(注释:这取决于您的浏览器默认主页的设置。)

      图5:Firefox 中的 Rational Performance Tester ReadMe 页面
      welcome to performance test recording

    6. 这是您的测试的正式运行面板。在 Address 栏,输入 URL www.BookPool.com 然后开始记录测试。
    7. 在搜索对话框中,输入 Software Testing 然后点击 Search 按钮,如图6所示。

      图6:搜索对话框
      green Search button

    8. 当结果页面被装载后,点击 Add to Basket 按钮来还第一本书。当我建立这个测试时,第一本书的书名为How to Break Software: Functional and Security Testing of Web Applications and Web Services(顺便说一下,这是一本极好的书!)。如图7所示:

      图7:还第一本书的范例
      screenshot of book image and details

    9. 在 Shopping Cart 页面加载之后,请关闭浏览器。关闭浏览器意味着 Rational Performance Tester 将停止记录。Rational Performance Tester 将会产生您的脚本,然后再测试编辑器中打开它,如图8所示:

      图8:Performance Test:测试编辑器
      Test Contents and Test Element Details sections

      测试编辑器列出了测试的 HTTP 页面的标题。当您展开它们时,您会在每一个页面中看到请求和响应数据。您可以使用编辑器来检查或者定制一个测试,这个测试会根据一个已记录的会话自动的产生,当然如果您愿意也可以先为其编制一段测试代码。 注意在 V7.0 中的 Common OptionsHTTP Options 都被标志在了 Test Element Details 区域,但是它们经常在同一场景下使用。您同时还会在视图的顶部看到 Enable response time breakdown 的检查框。
    10. 如果您点击 Common Options 标签,如图9所示,您会看到在哪里为您的测试指定数字证书。

      图9:Common Options 标签上的 Digital Certificates
      top section is Datapools

      在这篇文章中不涉及任何数字证书的设置,但是您可以察看响应时间分解。
    11. 为了查看它们之间的不同,请不要选择 AddToCart 元素上的 Enable response time breakdown 选项。您需要在 Shopping Basket 页面启动这个选项,如图10所示。

      图10:为 Shopping Basket 选择 Enable response time breakdown 选项
      option circled in red

    现在您已经为建立一个调度做好了准备,下面您可以运行您的测试程序了。


    建立一个调度

    调度允许您在远程聚合测试,排序测试和运行测试。一个调度可以简单到就像一个用户在运行一个测试,或者复杂到不同组的成百个用户,每一个人在不同的时间运行一个不同的测试。根据您所了解的内容,我们可以定制一个调度:

    • 聚合测试来模拟不同用户的行为
    • 设置测试运行的顺序:顺序地、随机地或者加权顺序
    • 每次测试运行时设置时间
    • 以确定的速率运行测试
    • 在远程终端运行一个测试,或者一组测试

    在您建立了一个描述系统行为的调度后,您既可以使用正在测试的应用程序的连续构建,或者使用一个不断增加数量的虚拟用户来运行这个调度。

    建立一个调度:

    1. 右键点击您的项目,然后选择 New > Performance Schedule
    2. 在 Performance Schedule 向导中,输入调度的名称,然后点击 Finish 按钮,如图11所示:

      图11:Performance Schedule 向导
      selecting the parent folder

    3. 这位一个用户组建立了一个新的调度,如图12所示:

      图12:New Performance Schedule
      User Group 1 (100%)

      用户组让您使用多种特性来表达您系统上的各种类型的用户,在逻辑顺序下分组测试。图12显示了执行期间一组包含100%的用户。您现在所拥有的结果可以100%产生用户搜索,在他的购物车中添加购买项,在最后更改它们的想法,或者在另一个 Web 站点察看价钱。对于更现实的用户来说,您可以将浏览人员、购买人员、店主或者查看订单的用户分组。您可以为每一个行为建立一个脚本。 同时,您还要注意这个视图中拥有一连串新的标签。在这篇文章中虽然您不会看到所有的标签,但是您还是会看到它们中的一些。首先,将您的测试添加到用户组。
    4. 右键点击用户组,然后点击 Add > Test 按钮。
    5. Select Performance Tests 对话框中,选择 AddToCart 然后点击 OK,如图13所示:

      图13:在调度中添加测试
      selecting the test to add

      在继续之前,请快速的查看您在哪里可以找到 IP 混淆。
    6. 如果您点击用户组,您将会在 Schedule Element Details 部分下的表格中看到 IP 混淆。当您配置远程执行路径时,您需要设置它的 IP 混淆选项。对于这个测试来说,我们只需要选择 Run this group on the local computer ,如图14所示:

      图14:User Group 1 元素下的 IP 混淆
      options circled in red

    7. 下一步,您需要为用户改变开始时间。选择 ScheduleOne 选项,调度的根节点。
    8. Schedule Element Details 部分的 General 标签上,选择 Add a delay between starting each user 框体,如图15所示:

      图15:设置用户数量和每一个运行的用户的延迟
      schedule name, number of users, and delay

    9. 在延迟设置中,输入100milliseconds,如图15所示。除此之外,将 Number of users 数值设置成5。 注意:请不要将用户的数值设置成大于5或者10的数值。我想 BookPool.com 不希望遭受服务拒绝攻击。
    10. 选择 Think Time 标签,清除 Limit think times to a maximum value 检查栏,如图16所示。我对认为限制思索时间并不感兴趣。注意这里有几个不同的选项,其中包含 Vary the think time by a random percentage

      图16:设置思索时间
      modify the delay duration

    11. 最后,选择 Response Time Breakdown 标签,然后同时选择Enable collection of response time data 窗框和 AddToCart 测试用例。
    12. 一旦您选择了测试,设置了选项之后,请将 Detail level 设置成 High(让我们看看这个工具能够做什么)。
    13. 由于 detail level 被设置成了 high (它可以使您慢下来),在这个测试中我们要限制它为一个用户使用。 当您完成设置后,您的 Response Time Breakdown 标签应该和图17所示类似:

      图17:设置 Response Time Breakdown 选项
      select tests for which to collect data

    您的调度已经准备好可以运行。


    运行您的调度

    难理解的部分已经结束!按照下列步骤运行调度:

    1. 在 Test Navigator 中,选择 ScheduleOne
    2. 右键点击调度,然后选择 Run > Run Performance Schedule

    这个过程启动了您的测试和报告的生成程序。您将会看到先前版本中所有的报告,不过其中添加了一些新的选项和特性。例如,报告中包含平均响应时间,并提供了时间的标准偏移量。除此之外,您现在可以为特定的时间范围建立报告。这篇文章不会涉及所有的报告,但是我们会涉及一些有特色的响应时间分解。

    1. 右键点击任意一个默认报告的页面,您可以查看很多报告,如图18所示:

      图18:右键点击页面查看报告选项
      page performance

      现在您有很多选项可选,它们是:
      • Display Response Time Breakdown Statistics
      • Display Host Response Time Breakdown
      • Display Page Element Responses
    2. 如果您选择 Display Page Element Responses,您会看到每一个页面元素的平均时间,如图19所示:

      图19:Display Page Element Responses
      performance summary

    3. 如果您选择 Display Response Time Breakdown Statistics,您将会看到 Selection Wizard,如图20所示: 您可以选择一个单独的元素。

      图20:运行时间分解 Selection Wizard
      select a page element for tier analysis

      在这里您可以切换到其他页面,并查看每一个 URL 详细的响应时间。
    4. 选择一个 URL 然后点击 Finish 来查看页面的 Methods 细节,如图21所示:

      图21:Method-level 响应时间
      response time breakdown statistics

    5. 如果您选择 Display Host Response Time Breakdown,您会看到不同报告选项弹出,如图22所示。这在真实测试项目中没有任何实用价值,您可能会从您的测试中的各种服务器上收集数据(Web 服务器、应用程序服务器、数据库服务器等等)。这样的话,系统中正在测试的每一个服务器的 Response Time Breakdown 的数据都会显示在报告中。

      图22:Host Response Time Breakdown 选项
      also base time, cumulative time, and calls

    6. 选择 Average Base Time (seconds) 选项。您应该会看到和图23类似的视图:

      图23:正常状况下主机分解时间
      host breakdown details

    这里还有其他报告选项,但是您只要运行这些报告选项就需要至少花费1周的时间。其他的报告选项请查看 Help 文档。


    下一步

    这篇文章介绍了在 Rational Performance Tester V7.0 下运行负载测试的基础知识。您也可以使用这些工具做其他类型的性能测试。当您已非常熟练掌握基本性能测试特性时,您可以尝试使用其它的特性。

    一条基本规则,如果您每次打开工具时都研究一项新的特性,那么您永远也不能精通它们。Rational Performance Tester Help 是个很好的帮手,您还可以到 IBM® developerWorks® Web 网站查看性能测试的相关资料。我推荐您看一些深入的介绍文章,或者是浏览 Performance 和 VU Testing 论坛。


Open Toolbar