使用 IBM Rational Performance Tester 7.0 处理测试数据,第 1 部分

使用测试数据的数据池

如何使用典型数据进行工作负荷模拟

Comments

系列内容:

此内容是该系列 # 部分中的第 # 部分: 使用 IBM Rational Performance Tester 7.0 处理测试数据,第 1 部分

敬请期待该系列的后续内容。

此内容是该系列的一部分:使用 IBM Rational Performance Tester 7.0 处理测试数据,第 1 部分

敬请期待该系列的后续内容。

介绍

测试数据在绝大多数软件测试中都是一个十分重要的部分,尤其是性能测试,它经常需要大量的测试数据。 IBM® Rational® Performance Tester 为了处理测试数据对 Eclipse 测试和性能工具平台(TPTP)数据池结构进行了调整。Rational Performance Tester 包括许多使这些数据池的利用变得十分容易和灵活的特性。

一旦您开始使用了包含不止10,000行数据的数据池,无论如何都会在开始一个测试时都会有很长的延迟。对于大型系统的性能测试,测试数据需要一百万或者更多的记录是难于想象的。在这些情况下,TPTP 数据池可能是最有效的解决方法。

目的

这个分两部分的系列文章告诉您怎样创建 Rational Performance Tester 测试,在存储和处理测试数据时使用的是文件而不是数据池。这个方法可用于满足 Rational Performance Tester 性能测试中使用大量测试数据的需求。

第一部分的开始,将创建一个简单的测试和标准数据池来提供可变的测试数据。在第二部分中,您将修改同样的测试来使用一个测试数据文件,从而代替使用数据池。

注意: 这篇文章是利用 Performance Tester version 7.0.0 的。尽管特定的程序是可以改变的,但是它应该对以后的版本同样有效。虽然有些截图和程序可能并不完全相同,但是您还是可以利用 RPT version 6.1.2 来完成这篇文章。Performance Tester version 6.1.1 和更早的版本将不再有效,是因为 Performance Tester 自定义代码 API 中的变化。

使用 Rational Performance Tester 处理大量的测试数据

通过记录带有一个可变数据的项目和一个搜索字符串的简单测试开始。您开发的第一个测试将会在运行一定的用户负载时,利用一个数据池来控制多种搜索条目。

设置这篇文章的文件

这篇文章中包含有几个文件,如下所述:

  • TestData.csv: 用来搜索字符串的包含50个随机名的文件。
  • GetTestData.java:一个完全的自定义代码代码模块,您可以从中进行拷贝和粘帖,运用在第二部分。
  • SetupTestDataArea.java:一个完全的自定义代码代码模块,您可以从中进行拷贝和粘帖,运用在第二部分。
  1. 下载并解压这些文档到您的C:\temp\地址。您可以将这些文档放置在其它位置,但是您必须用几个步骤来更新,因此使用默认设施可能更容易。

使用数据池来创建一个测试

  1. 创建一个 Rational Performance Tester 项目。
    1. 运行 Rational Performance Tester 并确保您在 Test 透视图中,这是 Rational Performance Tester 默认的 Test 透视图。
    2. 从这个菜单中,选择 File > New > Performance Test Project,如图1所示。您可以键入任何您想要的 NameContents directory
      图1.创建一个新的测试项目
      the menu navigation to create a new test project
      the menu navigation to create a new test project
    3. 在图2显示的 Create New Test From Recording 窗口中,点击 Cancel。 您现在可以看到这个列在左边 Test Navigator 窗格中的新项目。
      图2.从记录中取消创建新测试
      exiting the create new test from recording window
      exiting the create new test from recording window
    4. 通过右键点击 Test Navigator 窗格中这个项目的名称创建一个新文件夹,选择 New > Folder。重复操作创建下面的文件夹,如图3所示:

注意: 您还可以创建其它您想要的附件文件夹来帮助组织这个测试工件。

  1. 检查被测系统并设计这个测试的步骤。

正如前面所提到的,您将把 developerWorks Web 站点作为被测系统(SUI),为这个测试执行一个简单的搜索。在记录一个测试之前,您通常至少应该人工浏览一遍测试步骤,从而确保这个环境已经进行了合理地配置并为测试记录做好了准备。您将执行的测试步骤下面已经列出。 仅执行这些步骤。

  1. 运行一个浏览器并转到 developerWorks 的 Rational 专区: www.ibm.com\developerworks\rational\ 。
  2. 点击 Performance Tester 链接,并定位到靠近这个页面中央的 Software Quality 下面,如图4所示。
    图4.被测系统——developerWorks
    list of Rational products
    list of Rational products
  3. 在靠近页面顶部的 Search 域中,键入您的名称(或者其它您想要搜索的项目)并点击 Search
  4. 当这个搜索结果返回以后,关闭浏览器。
  1. 从内含的 TestData.csv 文档中创建一个数据池。

您一定不会在每一个测试中都使用完全相同的搜索字符串,因此您将对这个搜索字符串使用一套测试数据(在这个例子中是随机名称)。您可以产生您自己的数据,或者利用包含于这篇文章的文档。逗号分隔值(CSV)文档是文件中数据的普通格式,大多数数据库都能够保存为这种格式。您将把这些导入到数据池中,从而实现 Rational Performance Tester 的一些便于使用的特性。

  1. 通过右键点击 Test Navigator 窗格中的测试数据文件夹来创建一个新的数据池,选择 New > Datapool
  2. 在图5所示的 New Datapool 窗口中,确保您已经选择了这个测试数据文件夹。键入这个 TestData 名称,然后点击 Next
    图5.新数据池
    enter or select the parent folder
    enter or select the parent folder
  3. 在下一个 New Datapool 窗口中,键入任何您想要的种类然后点击 Next
  4. 在最后的窗口中,如图6所示,清除 First row contains variable names and suggested types 复选框。
  5. 登陆或者浏览,定位到这篇文章测试数据文档的位置(如前面所述,默认的地址是C:\temp\TestData.csv)。如果您保存这个文件到另一个位置,就登陆到那个地址。
  6. 点击 Finish 创建这个数据池。导入可能会花一点时间,使得以最终的完成。
    图6.为这个新数据池导入数据
    selecting the CSV file
    selecting the CSV file
  7. 您现在可以看到中心工作区中开放的 Datapool,显示着数行的数据。这个新的数据池仅包括一个变量(一栏),您应该给它命一个更有意义的名称。点击标有“Variable1::String”的变量名称 一次一次
  8. 将名称更改为 SearchString,如图7所示,然后点击 OK
  9. 保存这个变更到数据池中然后关闭。
图7.重新命名数据池变量
you can edit the variables
you can edit the variables

现在您的测试已经以数据池的形式准备好了。

  1. 记录一个测试。
    1. 通过点击 iconCreate New Test From Recording 工具条按钮记录一个新的测试。
    2. 在 Create New Test 窗口中,确保 Create Test From New RecordingHTTP Recording 已被选中,如图8所示。点击 Next
      图8. 新建 HTTP 记录测试
      selecting the Recorder and Test Generator
      selecting the Recorder and Test Generator
    3. 在下一个 Create New Test 窗口中,确保您已经选择了这个测试文件夹。键入名称 LargeTestData_datapool,然后点击 Finish
    4. 如第 III 部分所描述的,严格执行重复测试步骤的操作来运行一个浏览器和搜索,根据 developerWorks 网站来记录。键入任何名称或者值作为搜索字符串来搜索。
    5. 如果您使用的是 Microsoft® Internet Explorer,那么在您关闭这个浏览器时 HTTP 记录将会自动停止。如果您使用的是 Firefox 或者 其它浏览器,您不得不点击 Recorder Control 中的 Stop Recording 按钮 (位于 Rational Performance Tester 窗口底部附近), 如图9所示。
    6. 这个测试时间会花一点时间,然后打开用于编辑。
      图 9. 记录控制
      highlighted message
      highlighted message
  1. 用数据池值取代记录搜索值。

已记录的测试在默认情况下将会使用记录测试数据作为搜索字符串,直到您编辑这个测试来选择一个数据池使用。

  1. 在最新的记录测试中,选择 Test Contents 窗格中最后的页面,它的标题应该是 IBM developerWorks > Search 结果。在这个测试编辑器的 Test Data 部分,如图10所示,注意到您键入的作为 query 项目中 Value 值的搜索字符串。
    图 10. 确定测试数据的参数
    Test Contents, Test Element Details, and Test Data
    Test Contents, Test Element Details, and Test Data
  2. 选择名称为query 的行,然后点击 Substitute From 按钮。
  3. 当您点击这个按钮打开子菜单时,选择 Datapool Variable
  4. 在 datapool column 窗口中,点击 Add Datapool 按钮。
  5. 在 Import Datapool 窗口中,选择数据池 TestData_1k_rows,然后点击 Select,保持默认的数据池选项。
  6. 在 Select datapool column 窗口中, 选择 SearchString,然后点击 Use Column, 如图11所示。
    图 11. 数据池列替换
    describes the datapool name and usage
    describes the datapool name and usage
  7. 在测试编辑器的 Test Data 部分, 您可以看到查询条目已经被 TestData_1K_rows 数据池的 SearchString 变量所取代,如图12所示。
    图 12. 用数据池测试数据取代参数
    shows the substituted value
    shows the substituted value
  1. 创建一个调度来运行这个测试。
    1. 右键点击 Test Navigator 板面中调度文件夹来创建一个新的调度,选择 New > Performance Schedule
    2. 在 Performance Schedule 窗口中 ,确保您已经选择了调度文件夹,键入 LargeTestData_datapool名称。点击 Finish
    3. 在 Schedule Element Details 的右边, General 工具条上,选择 Add a delay between starting each user 复选框并键入 500 毫秒的延迟时间,如图13所示。
      图13.执行调度
      specifying Schedule Element Details
      specifying Schedule Element Details
    4. 点击 Schedule Element Details 下面的 Test Log 工具条来设置日志级别。把 Action Details 的 Log Level 设置为 And also show all other types 。如图14所示。您可以忽略推荐警告,因为这个测试不会把过多的数据记录到日志中。
      图14.执行调度——Log Levels
      图14.执行调度——Log Levels
      图14.执行调度——Log Levels
    5. 右键点击 Schedule Content 部分中的 User Group 1,添加一个循环,选择 Add > Loop
    6. 现在仍然选择了循环,在 Schedule Element Details 的右边, Number of iterations的值设定为 3。选择 Control the rate of iterations 复选框并键入重复率为 10次每分钟,如图15所示。
      图15.执行调度循环迭代率
      Schedule Element Details options
      Schedule Element Details options
    7. 通过右键点击 Schedule Content 部分中的循环添加一个测试,并选择 Add > Test
    8. 从 Select Performance Tests 窗口中,选择 LargeTestData_datapool 并点击 OK
  1. 运行这个测试并验证这个测试数据已经被使用。
    1. 通过点击 icon2Run 工具条按钮运行这个调度。
      注意:不要选择 Run As > Performance Schedule,因为这将在这个项目的根目录下保存结果,而您想把结果保存在结果文件夹中。
    2. 在 Run configurations 窗口中,选择左边的 Performance Schedule,然后点击 New 按钮创建一个新的设置,如图16所示。
      图16.创建一个新的运行配置
      create, manage, and run configurations
      create, manage, and run configurations
    3. 为这个新配置键入一个名称。点击 Schedule 键并选择这个调度 LargeTestData_datapool。
    4. 点击 Test Logs 键,清除 Use defaults 复选框,为 Location 选择这个结果文件夹。
    5. 点击 Apply 来保存这个运行配置,如图17所示。
      图17.保存执行测试到一个结果文件夹中
      details on the Test Logs tab
      details on the Test Logs tab
    6. 现在您已经配置了这个调度,把结果保存在预期的文件夹中,通过点击 Run 来运行这个调度。这个测试将很快开始执行。这个默认的将显示测试何时完成。
      重要!这个 IBM developerWorks web 站点不能被当作负载测试站点来使用。请不要运行超过文章规定数量的用户。同时,只需运行完成这个测试的必要步骤,不要运行过多的重复步骤。
    7. 右键点击 Performance Test Runs 窗口中的 LargeTestData_datapool [date+time] 来打开执行的历史记录,并选择 Display Test Log, 如图18所示。
      图18.显示执行记录
      displaying the test log
      displaying the test log
    8. 通过选择执行历史记录底部的 Events 键显示测试运行的具体细节。
    9. 展开这些事件直到您看到标题为 IBM developerWorks > Search results 的页面。展开它并选择第一个请求,如图19所示。这里您将看到实际上运用在测试运行中的 URL 编码查询值。
      图19.测试运行中使用的可视验证测试数据
      showing the URL encoded query value
      showing the URL encoded query value
    10. 在这个页面的几个不同实例中重复这个操作并验证查询值是不同的,那与数据池中的值是相匹配的。
    11. 实际上已经使用的另一个验证测试数据的方法是选择这个页面请求(如果第一个请求返回的是 “The document has moved”应答,您不得不选择第二个请求)。
    12. 下一步,点击 Protocol Data 键并选择工作区底部附近的 Browser,如图20所示。这将在浏览器中移交这个测试运行过程中接受的应答。这个技巧花费的时间比较长,尤其对于大型的测试结果。
      图20.使用浏览器视图查看可视化验证测试数据
      Selecting Broswer
      Selecting Broswer
  1. 关闭这个测试 LargeTestData_datapool。

使用数据池的测试数据的总结

在 Rational Performance Tester 中使用数据池是在您的测试中管理测试数据和替换值的最简单的方法。一旦测试数据被导入到整个CSV文件中,您可以简单地选择测试参数和挑选数据栏来使用。无论如何,对于非常大的数据池应该有所限制,即使我们并不打算在这篇文章中推入这些限制。

总结

Rational Performance Tester 是将测试数据链接到测试中最简单的方法,它有助于减少执行测试开发和负载测试所需时间。然而,由于大量的数据(总体超过10,000个记录)会使效率变得非常低。有利之处在于 Rational Performance Tester 并不将您仅仅限制在数据池中;您还可以在自定义编码中直接使用测试数据文档,来控制您的测试中所需要的数据的容量。这个技术将在这个系列的第 2 部分中进行解释。


下载资源


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Rational
ArticleID=256268
ArticleTitle=使用 IBM Rational Performance Tester 7.0 处理测试数据,第 1 部分: 使用测试数据的数据池
publish-date=09072007