基于Linux Rational Performance Tester自动化测试研究

1.工具简介

Rational Performance Tester 是一个为测试 Web 应用程序设计的软件,它的功能是在部署之前捕获并更正性能问题。Rational Performance Tester 通过模拟并发用户的数量,产生一系列报告,这些报告被清晰的标志出来显示 Web 页面的性能、URL 和事务等信息,来帮助工程师在部署之前查明系统的瓶颈。高级的特性包括在每一个用户组的行为和使用方式层面的详细测试调度安排。Rational Performance Tester 同时还提供了一种自动化的”数据池”特性,它可以改变每一个模拟用户使用的测试数据设置。使用一个集成了测试编辑器的浏览器窗口,可以回顾在测试记录期间访问过的 Web 页面。除此之外,高级测试人员可以选择将自定义的 Java 代码插入到性能测试中,用来执行类似于高级数据分析和请求解析的操作。

2.使用场景

RPT是针对Web应用程序设计的一个强大的性能测试工具,它基于windows和Linux的用户界面,通过模拟生成若干数量的并发用户,完成性能测试并产生一系列报告,并清晰标示Web页面的各项性能数据。使用基于树型结构的测试编辑器,提供高级且详细的测试视图和测试数据以便查看。

实验环境配置:主机Linux,内存4G,操作系统Ubuntu 13.04,IBM Rational Performance Tester自动测试管理工具。

3使用方法

    RPT集成了Eclipse作为图形化界面,所以即使在Linux下操作起来也非常方便。我们主要通过RPT完成性能测试。因此首先新建性能测试项目,然后主要通过四个步骤:记录测试、关联数据池、创建调度、生成性能报告来完成测试。

3.1 新建性能测试项目

新建选择性能测试项目,点击下一步,填写项目名称完成。

技术分享

(1),项目文件结构如图,项目文件夹中常用的有测试、调度、数据池、结果:

技术分享

(2),在测试文件夹下建立测试,注意:对于Web应用程序的测试可以使用HTTP测试,套接字测试、TN3270测试,选择浏览器。

技术分享

技术分享

(3),开始记录测试,测试前最好要熟悉测试流程(包括网址以及所要进行的动作),注意测试前要删除所用浏览器访问过测试网址的所有记录包括Cookie等,避免造成测试结果不准确。

技术分享

(4),测试过程中主要步骤:下面几幅图主要是利用测试工具中的注释、快照、解释等。
通过注释,标示当前测试页面

技术分享

快照保留参数输入等关键动作:

技术分享

技术分享

技术分享

(5),关闭浏览器,完成测试:

技术分享

技术分享
所有测试数据(包括快照,注释等)

技术分享

3.2新建数据池

技术分享

数据池中添加数据

技术分享

3.3 用数据池中数据替换原有测试用数据项(如搜索关键字)

技术分享

选择数据项,单击替换

技术分享

技术分享

用现有数据池数据替换

技术分享

技术分享

技术分享

3.4 新建调度

在调度文件夹下新建调度

技术分享

在调度中分配用户组,并添加延迟,循环等事务

技术分享

技术分享

技术分享

运行调度

技术分享

技术分享

3.5 调度完成,生成性能报告

技术分享

3.6 将性能报告导出

技术分享

4. 结果收集和分析

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

4.1资源监控

资源监控数据由一序列在特定间隔期间的观察组成。实时收集数据,除了响应时间分解数据之外,资源监控数据提供了一种更加完善的系统视图,可以用来确定问题。可以收集并分析一下数据:

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

4.2响应时间分解

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

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

5. 设计测试方案完成测试用例

5.1 测试方案

对于测试一个Web应用程序,需要一些简单的测试用例,如加载多图片页面,填入用户数据,搜索关键字等都是测试的关键部分。关联数据池,比如在测试过程中有搜索动作或者登录动作,可以用建立的数据池中的数据替换掉搜索的关键字并重复进行,比如持续性恶意登录。 

调度主要模拟并发,建立调度后可以根据百分比或者绝对数量建立用户组,用户组模拟现实中的大量用户,可以给用户组添加刚才的测试,即每个用户组中的用户执行以上测试所进行的动作,也可以为不通过的用户组分配不同的测试用例,同时可以添加循环,延迟等测试条件,这对测试网络并发量非常重要。

5.2 测试用例:

以北航ihome和未来花园为例,通过测试登录、加载多图、发表状态(更新数据库)、搜索关键字等关键性指标来测试网络性能;
主要动作包括:
Ihome 登录
Ihome加载多图页面和发表状态
未来花园查看贴子和搜索相关关键字

并且通过数据池传入不同参数模拟恶意登录和多人查找,以5人的用户组为例,并在调度中添加迭代、循环、延迟等,模拟并发。
以上截图均来自测试ihome和未来花园用例,故不再赘述测试过程。

6.数据分析和处理

生成的性能报告如下

6.1总体:

技术分享

6.2摘要

技术分享

6.3页面性能:

技术分享

技术分享

6.4 页面响应时间:

技术分享

6.5页面响应时间详细

技术分享
技术分享

6.6页面吞吐量

技术分享

6.7服务器吞吐量:

技术分享

6.8服务器运行状况

技术分享

6.9服务器运行详细

技术分享

6.10 高速缓存

技术分享

6.11资源:

技术分享

6.12页面大小

技术分享

6.13错误数:

技术分享

6.14页面运行状况:

技术分享

7.数据的简易分析

由于是试用版本的Rational Performance Tester只支持5人的用户组,所以对于并发的模拟结果并不太好,但还是能够从性能报告中获得一些我们需要的信息:

(1),ihome首页响应时间远远大于其它页面,此页面需要加载大量组件和图片,而且也没有做太多的优化。运行情况良好百分比也只在27%左右。
(2),用户页面命中率也比较低。
(3),服务器吞吐量在人数增加的情况下减少的情况比较明显。
(4),ihome的登录页面和首页服务器的状态码成功百分比很低。
(5),就主机资源来说,在登录到ihome首页时_Total–%Disk Time也是最长的。

当然,数据中包含大量信息,由于测试用例也比较简单,所以在此不再做复杂分析。只是说明整个性能测试流程和数据分析的基本方法。
  

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。