关于本测试中使用的自行开发的测试工具在本文中不准备进行详细描述,需要说明的内容包括如下几点:

  1、 测试工具的需求需要根据测试需求来确定:在本项目中,主要是通过测试用例来确定,根据用例描述的场景确定需要的测试工具。例如,在本文的上篇中作为例子的测试用例,从该用例的“已通过模拟程序产生每秒300条告警的告警数据”描述中,我们可以明确需要一个能产生每秒300条告警数据的模拟程序,从“所有告警产生和呈现时间记录在本地日志文件中”描述,我们可以明确该模拟程序还必须能够记录告警产生时间。当然,对测试工具的需求确定还必须结合其他用户的需求。在本测试中,与该用例相关的测试工具被实现为一个可以根据用户给定的文本文件发送告警数据的工具,通过参数可以指定工具发送告警的间隔以及是采用随机还是定时的方式发送;
 
  2、 测试工具的实现语言需要根据实际情况确定:测试工具的实现语言主要看项目成员对语言的熟悉程度以及是否需要在测试过程中修改测试工具。如果预计到在测试中需要修改测试工具,建议采用脚本语言来实现测试工具,例如在该测试中,我们的部分测试工具是采用C++语言实现的,部分测试工具是采用Perl实现的;
 
  3、 测试工具本身也是配置项的一部分:测试工具也需要纳入配置管理的范围,一方面,测试工具的发布和更新必须按照项目的配置管理流程实现;另一方面,测试工具的开发过程必须符合项目的开发过程。为避免测试工具在使用中带来混乱,这一点是必须要注意的;
 
  4、 测试工具的开发需要从实际角度出发:千万不要尝试在一个项目中开发出一个强大和完善的测试工具,测试工具的开发要从实际出发,能满足实际测试需求的测试工具是好的测试工具。如果真的觉得有需要对测试工具进一步完善以利于重用,那也请在项目完成后再专门作为一个项目来专门完善测试相关的测试工具。
 
  我们在把测试工具和测试环境同时包含在这一章中,主要的原因是因为部署后的测试工具也属于测试环境的一部分,测试工具的部署和维护也是测试环境部署和维护的一部分。
 
  上面已经提到,测试工具本身也是配置项的一部分,测试工具的发布需要按照项目的配置管理流程实现,因此,对测试工具在测试环境上的部署需要按照配置管理流程来管理,同时,这也是测试环境部署和维护的一部分。在本测试中,要求测试工具来源于配置项的发布版本,对测试工具的变更需要进行记录并纳入配置项变更管理,不同的是这个配置项的变更的发起人是测试工程师,审核人是测试负责人。
 
  5. 测试实施
 
  测试计划、测试用例、测试环境都完成之后,可以开始对测试进行实施了。测试实施在整个测试过程中并不是消耗资源多的,有了详细的测试用例之后,其实测试实施是一件“照葫芦画瓢”的简单工作。
 
  本章主要探讨性能测试实施过程中需要记录的信息(这部分内容其实应该是在测试计划和测试用例中确定,但为了整个描述的连贯性,我把这部分内容安排在本章)。
 
   本测试实施记录的内容包括如下:。
 
  Unix主机。
 
  CPU使用率;。
 
  内存使用状况;。
 
  Disk I/O;。
 
  数据库服务器。
 
  Cache命中。
 
  Long Transaction.索引使用情况。
 
  数据库进程CPU使用状况。
 
  数据库内存使用状况。
 
  数据库连接数量。
 
  应用服务器。
 
  MQ的主要进程内存使用状况。
 
  MQ的进程数量。
 
  TEMIP主要进程内存使用状况。
 
  WEB服务器。
 
  进程的CPU和内存使用状况。
 
  Cache命中。
 
  平均响应时间等。
  对这些内容的记录需要通过操作系统提供的性能观测工具或是应用自身提供的性能观测工具:
 
  1、 在Unix环境中,可以用top、vmstat、iostat程序观察需要记录的内容,更好的方法是自己写一个简单脚本,把时间信息和输出信息一同存入本地日志文件。在本测试中,我们用Perl和Unix的Shell脚本实现了对输出信息的抽取和格式化,生成的记录文件可以方便地被Excel等程序进行处理;
 
  2、 对于数据库环境,可以用Oracle自带的性能监测工具或是第三方软件(如TOAD等)观察性能并存成文件;
 
  3、 对WEB服务器,可以用WEB Server自带的性能监测工具监测其性能。