《软件测试技术指南》:6.3 性能测试工具

本节重点介绍性能测试工具——Loadruner 的使用。它是一款比较全面的,操作也相对简单的性能测试入门级的工具

对于性能测试工程师来说,性能测试的重点并不是在性能分析而是在负载生成,这个道理和进行功能测试相同,不需要功能测试工程师能准确地定位缺陷产生的原因和位置,而是强调如何确定问题的出现方式

当然作为一名优秀的测试工程师应该做到定位和分析,不过这也不是一朝一夕就能做到的,应先确保做好基础的工作

6.3.1 性能测试概念

1.性能测试定义

性能测试是指在一定软件、硬件及网络环境下,对系统的各项性能指标来进行测试,主要检测其性能特性是否满足特定的性能需求

性能测试在软件质量中起着重要的作用,主要表现在以下几个方面

(1)评估系统的处理能力

从用户的角度来看,主要关注的就是系统响应能力和处理业务的时间

(2)评估系统存在的弱点

从开发的角度来看,主要关注的就是软件的体系结构和数据库设计是否合理,还关注的是代码是否存在性能问题以及内存的使用是否合理

(3)评估系统的稳定性

从系统管理的角度来看,主要关注系统资源的占用情况、长时间的运行系统是否稳定以及系统能支持多少用户

2.性能测试的分类

性能测试的方法很多,名词也很多,通常将性能测试分为以下几种类型

(1)并发测试

并发测试(Concurrency Testing)是指通过模拟多用户并发访问同一个应用、模块、数据以及其他并发操作,来测试是否存在内存泄漏、线程锁、数据库死锁、数据错误以及资源争用等问题

(2)负载测试

负载测试(Load Testing)是指在一定软、硬件及网络环境下,模拟大量的用户运行一种或多种业务,测试服务器的性能指标是否在用户可接受的范围内,以此来确定系统所承受的最大负载数和不同用户数下系统的性能指标以及服务器的资源利用率

(3)压力测试

压力测试(Stress Testing)是指在一定的软、硬件及网络环境下,模拟大量的虚拟用户向服务器产生负载,使服务器的资源处于极限状态下并长时间连续运行,以此测试服务器在高负载情况下是否能够稳定工作。压力测试强调的是在高负载情况下进行的测试,关注的是服务器的稳定性,此时处理能力已经不重要了

(4)容量测试

容量测试(Volume Testing)是指在一定的软、硬件及网络环境下,在数据库中构造不同的数据记录,运行一种或多种业务来获取不同数据下服务器的性能指标,目标就是为了找出数据库的最佳容量和最大容量

(5)配置测试

配置测试(Configuration Testing)是指在不同的软、硬件及网络环境下,运行一种或多种业务来获取不同配置的性能指标,其目标是为了找到最佳的参数配置,可以帮助企业节省硬件上的成本

(6)基准测试

基准测试(Benchmark Testing)是指在一定的软、硬件环境下,获取系统的关键指标,并把它作为基准供其他版本做对比或者参考,有时也可以为类似的产品做参考

6.3.2 性能测试指标

常见的性能测试指标有并发数、响应时间、吞吐量、TPS、点击率、资源利用率

1.并发数

并发通常分两种情况:一种是狭义的并发,就是多用户在同一时间进行同一个操作,这种操作一般指做同一类业务,即单业务的并发数。另一种是广义的并发,就是多用户对系统发出请求或进行操作,其请求或操作可以是相同的,也可以是不同的,对整个系统而言,仍然是有多用户同时对系统进行操作。在实际性能测试中,真正的并发是不存在的,因为 CPU 的处理每次只能处理一件事(双核例外,因为处理的时间很快,通常被认为是并发处理。测试人员一般关心业务并发数到底是多少比较合理呢?下面给出估算并发用户数的公式

公式一中C代表并发用户数n是登录会话的数量L是登录会话的平均长度T是指考察的时间段长度

公式二中N表示并发用户数n表示系统的用户数s是每个用户发生的业务数p是每笔业务需要访问服务器的时间t是使用业务的时间R为调节因子,默认值为 1

还有一种可以根据二八定律来评估并发数,通常已在线用户数的 20%来作为并发数的参考值。如果应用系统使用的频率比较低,可以取在线用户数的 5%来作为并发数的参数值。需要注意的是上述几种计算方法只是一个参考

2.响应时间

响应时间是指完成某个业务所需的时间。在性能测试中,通过事务函数(开始事务和结束事务)来完成对响应时间的统计。在 Web 应用的页面中的响应时间,如图 6-40 所示

图 6-40 描述了 Web 应用的页面响应时间,是指客户端发送请求到收到服务器响应所需的时间。包含网络传输时间(N1+N2+N3+N4、应用服务器延迟时间(A1+A3、数据库服务器延迟时间(A2

通常对于一个用户来说,如果访问某系统的响应时间小于 2s,那么用户会觉得系统反应快,非常满意;如果访问某系统的响应时间在 2~5s,那么用户会觉得系统还行,比较满意;如果访问某系统的响应时间在 5~8s,那么用户就很难接受;如果访问某系统的响应时间超过 10s,用户将无法接受

所以对于一个系统来说,需要尽可能保证每一个操作的响应时间控制在 5s 之内。当然对于某一些特殊的操作可能会超过这个响应时间,可以通过提示来提前告诉用户

3.吞吐量

吞吐量是指性能测试过程中网络上传输数据量的总和。在性能测试中,吞吐量有两种说法:一种是网络吞吐量,表示在单位时间内通过网卡数据量之和。另一种是系统吞吐量,指在单位时间内 CPU 从读取、处理、存储的信息量总和

从业务角度来分析,吞吐量指单位时间内系统处理的客户端请求的数量,直接体现应用系统性能的承载能力。因此有针对性地测试吞吐量,可尽快定位到性能瓶颈所在位置

吞吐量和响应时间存在一定的关系,通过响应时间小,吞吐量一定大,但是吞吐量大,响应时间不一定小

4.TPS

事务(Transaction)一般是指要做的或已做的事情。在性能测试中,事务是指对一个或多个用户动作进行端到端的测量。简单地讲事务就像一个集合(由开始事务和结束事务组成,即标记某一动作或某一操作的过程

TPS(Transaction Per Second,每秒事务数)即单位时间内完成事务的数量,它是衡量系统性能的一个非常重要的指标,与脚本中的事务相关联。根据软件需求的不同 TPS 衡量的标准也不同,一般情况该值越高,说明系统处理能力越强

5.点击率

点击率是指网站页面上某一内容被点击的次数与被显示次数之比,即 clicks/views,它是一个百分比。在性能测试中,指虚拟每秒用户向 web 服务器提交的 HTTP 请求数,它是 Web 应用的特有指标

通常根据点击率,来判断系统是否稳定。系统点击率下降通常表明服务器的响应速度在变慢,需进一步分析,发现系统瓶颈所在。在性能中点击率跟吞吐量成正比

6.资源利用率

资源并不仅仅指运行系统的硬件,而是指支持整个系统运行程序的所有软、硬件平台,主要有数据库服务器、应用服务器、Web 服务器以及中间件和网络等

在性能测试中,需要监控系统在负载下软、硬件的各种资源的占用情况,比如服务器 CPU 的占用率、内存、磁盘以及网络的使用率,数据库的连接数、缓存命中率以及锁的使用情况,还有应用服务器的线程数的使用等

根据经验表明,一般 CPU 低于 20%的利用率为资源空闲,在 20%~60%之间表示资源使用稳定,在 60%~80%之间表示资源使用饱和,如果超过 80%就表示处理器达到瓶颈,必须尽快进行资源调整与优化

6.3.3 性能测试流程

性能测试相对于功能测试来说复杂很多,但是其测试流程基本大同小异,大致分 5 个阶段:制定性能测试计划、设计性能测试、执行负载测试、分析优化性能、评估并生成报告

1.制定性能测试计划

性能测试计划的第一步就是通过需求分析得到性能测试需求,也就是性能测试的目标。然后熟悉系统结构,选择性能测试工具,如 Loadrunner、Jmeter 等。最后确定性能测试的实施时间

2.设计性能测试

设计性能测试主要包括性能测试脚本的开发优化、负载的生成规则、监控资源的方式以及环境的设计等

3.执行负载测试

首先,需要完成环境的搭建和性能测试数据的准备;然后,根据设计的性能测试场景进行执行负载测试

4.分析优化性能

根据执行的结果、监控系统资源以及相关的数据进行分析,这个分析需要同开发人员共同完成,找出系统存在的性能问题,确定性能瓶颈。接下来进行性能的优化,确定调优的效果是否达到预期的目标

5.评估并生成报告

达到性能目标后撰写性能测试报告,最后还需要对系统的性能进行风险评估

6.3.4 Loadrunner 工具介绍

LoadRunner 是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找系统存在的性能问题,LoadRunner 能够对整个企业架构进行测试。通过使用 LoadRunner 企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。LoadRunner 可适用于各种体系架构的自动负载测试,能预测系统行为并评估系统性能

1.Loadrunner 工具组成

Loadrunner 工具主要由以下 4 个部分组成

(1)脚本生成器 Virtual User Generator

Virtual User Generator 简称 VuGen,它是基于协议来捕获用户业务或流程,可生成性能测试的脚本,也可以说是用户行为的模拟

(2)负载控制器 Controller

Controller 对性能测试的过程进行设置,可以设定场景运行的方式、时间,同时还提供了系统资源、数据库以及应用服务器的监控功能

(3)负载发生器 Load Generator

Load Generator 简称 LG,在模拟大量虚拟用户对服务器进行负载和压力测试时,需使用多台负载发生器进行,确保负载均衡(每台负载机均匀对服务器进行施加压力

(4)结果分析器 Analysis

Analysis 主要是对负载的性能测试数据进行收集,便于性能测试人员对测试的结果进行整理分析,从而判断性能的问题

2.Loadrunner 工作原理

Loadrunner 的工作原理就是模拟大量用户的行为进行负载,以检测程序是否存在性能问题以及服务器可以承受的压力

(1)脚本的生成

首先选择相应的协议,通过 VuGen 对用户行为进行模拟(录制,生成测试脚本并且进行脚本的优化

● 通过 Loadrunner「事务」记录用户的不同的行为

● 通过 Loadrunner「检查点」对事务进行判断

● 通过 Loadrunner「参数化」实现多用户不同的数据

● 通过 Loadrunner「关联」实现用户请求之间的依赖

● 通过 Loadrunner「思考时间」实现用户请求之间的延时

● 通过 Loadrunner「集合点」实现多用户的并发操作

(2)场景的设置

其次通过 Controller 对性能测试的场景进行设置,同时需要监控各项性能指标,为结果分析做数据依据

● 通过 Controller「全局计划」设计启动用户数、加载方式以及运行时间

● 通过 Controller「集合点策略」对多用户并发行为进行设置

● 通过 Controller「系统资源图」对服务器资源进行监控

● 通过 Load Generator 添加负载机来产生大量的虚拟用户

● 运行负载测试

(3)结果的分析

最后执行场景后,通过 Analysis 对性能测试的数据进行整理,并分析性能的问题

● 通过 Analysis「概述」可以看到性能指标的数据,便于分析性能的问题

● 通过 Analysis「合并图」可以进一步分析性能问题,便于定位性能瓶颈

● 通过 Analysis「报告」可以生成性能测试的报告

3.Loadrunner 工具的特点

(1)模拟大量虚拟用户

在 VuGen 脚本中,可以对用户数据进行参数化操作,这一操作可以模拟不同用户的不同数据来测试应用程序,从而反映系统的负载能力。还可以通过 Data Wizard 从数据库服务器获取大量的测试数据

(2)模拟真实的负载

在 VuGen 脚本建立后,用户需要设定负载方案。在 Controller 中通过 AutoLoad 技术,为用户提供了更多灵活的设计,可以模拟真实用户的负载方案

(3)可以精确的定位问题

测试完毕后,Loadrunner 通过 Analysis 收集汇总所有的测试数据,并提供高级的分析和报告工具,以便快读查找性能问题并追溯原因

(4)涉及的领域广泛

Loadrunner 支持广泛的协议,可以测试各种软件的性能,目前 Loadrunner12 版本还支持手机 APP 软件的性能测试

6.3.5 VuGen 录制脚本

下面通过 Loadrunner11.0 自带的飞机订票网站为例,讲解 Loadrunner 的使用过程

首先需要启动 Web 服务,依次选择「开始」→「程序」→「HP Loadrunner」→「Samples」→「Web」→「Start Web Server。然后在浏览器中输入 http://127.0.0.1:1080/WebTours 打开自带的飞机订票网站。默认的用户名:jojo,密码:bean

案例:模拟 30 个虚拟用户进行并发登录测试

1.选择协议

利用 Loadrunner 自带的 Protocol Advisor(协议分析)功能来确定,也可以利用 HttpWatch 抓包工具进行分析,这里选择 Web(HTTP/HTML)协议,如图 6-41 所示

图 6-41 录制协议选择

2.选择录制模式

1)基于 HTML 的脚本:以 HTML 操作为录制级别,非 HTML 操作不进行录制

2)基于 URL 的脚本:基于 URL 请求的脚本录制方式,录制得到的是所有 HTTP 请求,脚本将得到大量的 web url 函数

这里选择 URL 的级别来进行录制登录脚本,如图 6-42 所示

3.开始录制脚本

在录制脚本时,可以直接插入事务名称「登录(方便初学者快速熟悉脚本的内容,如图 6-43 单击图标插入「开始事务,待操作完成后再插入「结束事务

4.生成录制脚本

图 6-42 录制级别选择

图 6-43 录制时的工具条

 

5.编辑脚本(要点:事务、检查点、参数化、关联、思考时间、集合点

● 事务:其作用为记录用户某一操作,对操作的响应时间做监控

事务(transaction)在 Loadrunner 中由开始事务(lr start transaction)和结束事务(lr start transaction)组成,它是一个集合,用来记录用户的行为或某一个操作。通常在录制脚本的时候直接插入

● 检查点:作用就是对事务做出正确的判断,步骤如下

步骤 1:首先切换到树视图中,选择 HTTP 视图

步骤 2:在 HTTP 响应中,找到登录成功后服务器响应的数据

步骤 3:选中「唯一标识」登录成功的信息,右键添加文本检查点

步骤 4:在弹出对话框中,勾选「保存计数,取参数名为「登录计数,然后确定

web_reg_find("Text= 需要查找的文本内容","SaveCount= 出现的次数",LAST

● 参数化:作用就是模拟不同用户的不同数据,步骤如下

通过菜单栏「插入」→「新建参数」来创建参数,如图 6-44 所示

步骤 1:在 web_submit_data 中找到需要进行参数化的参数

步骤 2:选中参数右键替换为现有参数「username」即可

● 关联:其作用为承接上下文请求的依赖关系,步骤如下

步骤 1:首先回放一次脚本

图 6-44 创建参数

步骤 2:在菜单栏「Vuser」中,点击扫描脚本中的关联

步骤 3:选中不一样的参数,右键创建关联即可

web_reg_save_param_ex("ParamName= 关联参数名","LB= 左边界","RB= 右边界",LAST

● 思考时间:其作用为模拟请求之间的等待时间

lr_think_time(3;通常等待时间为 1s~5s

● 集合点:其作用就是模拟多用户的并发操作

lr_rendezvous("login_run";通常设置在开始事务前面

优化后的脚本如下

 

6.参数的设置

通过菜单栏「Vuser」→「参数列表」进行参数设置,如图 6-45 所示

● 选择下一行

Sequential:按照参数化的数据列表顺序取值

Random:按照参数化的数据列表随机抽取

Unique:为每个虚拟用户分配一条唯一的数据

● 更新值的时间

Each iteration:每次迭代时取新的值

Each occurrence:每次出现参数时取新的值

once:参数化中的数据列表中,一条数据仅抽取一次

● 当超出值时

Abort Vuser:当参数超出后退出

Continue in a cyclic value:当参数超出后循环参数列表

Continue with last value:当参数超出后循环最后一个列表项

6.3.6 Controller 场景设计

在性能测试场景中需要完成并发测试、压力测试、负载测试的场景设计,对系统进行监控,主要是模拟多用户的真实行为,并将负载下系统的数据进行收集整理,为后面的分析提供支持。Controller 场景中主要有目标场景和手工场景 2 种

1.目标场景

所谓目标场景,就是通过设置一个运行目标,用来验证系统是否能够达到一定的需求。在 Controller 场景中提供了 5 种目标类型,具体如下

●Virtual Users:虚拟用户数就是系统需要支持的用户数

●Hits per Second:每秒点击率是指系统需要达到的点击请求的数目

●Transaction per Second:每秒事务数是指完成一个事务系统的处理能力

●Transaction Response Time:事务的响应时间是指完成一个事务系统花费的时间

●Pages per Minute:每分钟页面是指系统每分钟提供的页面处理能力

通常根据需求分析得到的性能需求,可以直接在目标场景中验证性能需求的指标。目标场景运行结束后,如果目标达到设定结果,同时服务器资源占用合理,就可以证明系统可以满足用户的性能需求,即性能测试通过

2.手工场景

所谓手工场景,就是通过自行设置虚拟用户的变化,模拟真实的用户请求来完成负载的生成。手工场景主要是通过设计用户的变化帮助我们分析系统的性能瓶颈。手工场景的计划模式有场景模式和组模式,运行模式有实际计划和基本计划

1)场景模式是指所有的脚本都使用相同的运行模式来运行场景

实际计划,就是模拟真实用户的行为来完成负载

基本计划,就是通过设置一个峰值负载,只要系统能满足这个峰值即可

由于该运行模式只能设置一次负载,在真实的情况下,系统并不是长期都处于高负载状态下运行,随着负载的经常变动,系统会产生大量的资源申请和资源释放,通过「实际计划」的场景来设置就显示更有意义

接下来模拟 30 个虚拟用户进行登录并发测试来介绍场景的设置。首先用户的初始化选择默认方式,启动虚拟用户为 30 人,设置每隔 2s 加载一个用户,场景的持续时间为 3min,用户登录完后每隔 1s 退出 2 个用户,如图 6-46 所示

还可以通过单击「Add Action」添加多个用户变化的过程,来面对更复杂负载情况,双击「启动 Vuser」进行设置负载用户加载的策略,再单击「持续时间」按钮进行设置负载的运行时间,最后再单击「停止 Vuser」按钮设置负载用户退出的策略

2)组模式是指所有脚本可以独立设置运行模式,此外还可以设置脚本之间的前后关系

在组模式下,每一个脚本都会有一个「启动组,如图 6-47 所示

图 6-46 场景模式

图 6-47 组模式-启动组

● 场景开始后立即启动

● 当场景开始运行多少时间后启动

● 当某一个组「登录」后启动

3.集合点策略

通常在执行并发测试时需要设置集合点的策略,具体步骤如下

步骤 1:在 Controller 菜单栏「场景」中,单击「集合」按钮

步骤 2:在弹出对话框中,单击「策略」按钮,选择第一种,如图 6-48 所示

图 6-48 集合点策略

策略 1:当用户数达到测试总数的百分比时,开始释放集合点

策略 2:当用户数达到运行总数的百分比时,开始释放集合点

策略 3:当用户数达到目标数时,开始释放集合点

4.监控资源

在 Controller 中,提供了对系统(Windows、Unix 等)资源图以及数据库(Oracle、SQL server 等)服务器的监控

(1)Windows 资源监控

选中 Windows 资源图,右键选择「添加度量,弹出对话框,如图 6-49 所示

图 6-49 添加 Windows 监控

然后单击「添加」按钮,输入需要监控的服务器的 IP 地址或服务器名即可,注意这里可以添加多台服务器的监控

在监控 Windows 资源时,需要开启「Remote Registry」服务。然后再添加 Windows 资源监控的计数器,常见的 Windows 资源监控的计数器,见表 6-1

表 6-1 Windows 常用计数器

(2)SQL Server 监控,见表 6-2

表 6-2 SQL Server 常用计数器

(3)Linux 监控

Linux 平台可以通过 rstatd 服务从场景中进行监控。在 ContOS 6.5 版本中,安装 rstatd 服务时需要先安装 xinetd 服务,然后在场景中直接添加 Linux 服务器的 IP 地址来进行监控。通常服务器不允许安装 xinetd 服务,还有就是当负载数比较大的时,会无法监控到指标。所以在这里介绍一款常用的监控工具——NMON

在 ContOS 6.5 下,直接下载并解压 nmon linux 14g.tar.gz 来进行监控,解压后需要将 NMON 文件夹的权限修改为 777,然后运行 nmon linux x8664 文件,即可

在运行 NMON 时需要配置一些参数,参数解释见表 6-3

表 6-3 NMON 参数

NMON 的使用步骤如下

步骤 1:在 ContOS 6.5 中运行命令:./nmon linux x8664-s 1-c 300-f-m/home/

步骤 2:运行后在 home 目录下生成一个.nmon 的文件:localhost 1802151314.nmon

步骤 3:然后将此数据文件传到 Windows 上,下载 nmon analyser v34a x64.xls 工具

步骤 5:用 Excel 打开分析工具,开启 Excel 宏功能

步骤 6:单击 Analyze nmon data 按钮,选择.nmon 的数据文件,此时会生成一个分析后的结果文件:localhost 1802151314.nmon.xls,再用 Excel 打开就可以看到结果

除了工具,还可以在 Linux 中运行命令来进行监控,如 vmstat 和 iostat 命令

●vmstat 命令可以监控 Linux 系统的虚拟内存、进程、CPU 的活动。基本用法如下

  

下面列出具体参数的属性,见表 6-4

表 6-4 vmstat 参数属性

下面列出具体参数的属性,见表 6-5

表 6-5 iostat 参数属性

(续

案例:利用 iostat 命令,每隔 1S 查看 TPS 和吞吐量,运行 5 次,基本命令如下

 

属性的详细解释见表 6-6

表 6-6 参数属性

5.IP 欺骗

在设计场景时,很多时候服务器对 IP 有策略,即不允许在同一 IP 地址上有多个操作。在 Controller 中还提供了 IP 欺骗,来模拟不同用户使用不同的 IP 地址运行负载。当模拟用户比较少,可以通过网卡设备绑定多个 IP 来实现

如果需要生成大量的 IP 地址,通过 Loadrunner 自带的 ipwizard 工具来生成大量的 IP 地址,具体设置如下

1)首先需要设置固定的 IP 地址

2)打开 Loadrunner 工具,单击「ipwizard」弹出对话框,如图 6-50 所示

3)选择创建新设置,点击「下一步,弹出对话框,如图 6-51 所示

4)单击「下一步」按钮,弹出对话框,如图 6-52 所示

图 6-50 IP 向导

图 6-51 服务器 IP 地址

图 6-52 添加 IP 数

5)单击「添加」按钮确定 IP 数,在这里选择 B 类地址生成 50 个不同的 IP,如图 6-53 所示

图 6-53 生成虚拟 IP

6)单击「确定,此时 IP 地址被写入网卡,但是 IP 还没有生效,需要重启网卡

7)设置虚拟 IP 的启动,首先在场景菜单栏下勾选启用 IP 欺骗器,如图 6-54 所示

8)然后在工具菜单栏下选择「专家模式」如图 6-55 所示

图 6-54 启用 IP 欺骗

图 6-55 选择专家模式

9)最后在工具菜单栏下进入「选项,在常规中进行设置,为每个线程分配不同 IP 地址,如图 6-56 所示

图 6-56 线程 IP 分配

6.3.7 Load Generator 负载生成

Load Generator 是 LoadRunner 中的负载生成器,该负载生成器可以单独安装并提供给 Conreoller 进行远程管理。通常一台普通的 PC 机大约可以模拟 200~500 个虚拟用户进行并发操作,如果模拟大量的虚拟用户进行并发测试,这个时候可以通过 Controller 调用多台 Load Generator 来完成大规模的并发测试

1.Windows 下安装 Load Generator

在官网下载 ISO 镜像文件,通过虚拟光驱打开后,出现安装向导,如图 6-57 所示

在图 6-57 所示的安装主界面中单击「Load Generator」按钮,此时会弹出解压安装目录的对话框,如图 6-58 所示

单击「Next」按钮,解压后出现 Load Generator 的安装界面,如图 6-59 所示

接下来连续单击「Next」按钮即可。待安装完成后,会出现 Load Generator 的配置模式,运行模式 Performance Center 是作为一个服务运行,而 LoadRunner 是作为普通进程运行,如图 6-60 所示

单击「Next」按钮完成安装配置。在 Windows 中,当需要远程使用 Load Generator 时,只需要添加 IP 地址即可

2.Linux 安装 Load Generator

Linux 下只能安装 LoadRunner 的负载生成器 Load Generator,脚本的录制和场景的设计必须放在 Windows 平台下

linux 下的 Load Generator 安装包可以在 HP 官网下载,这里介绍一下在 CentOS 6.5 下的安装

首先将下载好的安装包复制到 home/Loadrunner 目录下,进入 home/Loadrunner 目录,可以看到 installer.sh 的启动安装文件,如图 6-61 所示

其次输入./installer.sh 命令启动 Load Generator 的安装向导,如图 6-62 所示

接着输入 n,按〈Enter〉键继续,此时出现安装许可协议说明,如图 6-63 所示

接着输入 a,按〈Enter〉键继续,这里给出安装的文件名和大小,如图 6-64 所示

接着输入 i,按〈Enter〉键继续,完成最后的安装,如图 6-65 所示

最后输入 f,按〈Enter〉键结束整个 Load Generator 的安装

在 Linux 中,安装 Load Generator 完成后并没有启动,需要手动启动后才可以使用。Load Generator 默认安装在/opt/HP/HP LoadGenerator 目录下,在目录中给出一个环境变量为 env.csh 配置文件的格式,在 Load Generator11.0 中,该文件默认已经配置好了。此时还需要在/root/.bashrc 文件中添加如下配置即可,运行命令如下

[root@localhost/]#vi/root/.bashrc

export PRODUCT DIR=/opt/HP/HP LoadGenerator

export M LROOT=$PRODUCT DIR

export LD LIBRARY PATH=${M LROOT}/bin

export PATH=${M LROOT}/bin:$PATH

然后进入 Load Generator 安装的 bin 目录,执行./verify generator 命令(注意:在 Linux 中不能使用 root 执行,需要切换其他用户来执行。运行后可能会出现一个错误,这个错误原因是 libstdc++.so.5 这个共享库不存在,可以通过 yum 命令安装此库文件即可,运行命令如下

[root@localhost bin]#yum-y install libstdc++.so.5

再次切换用户运行./verify generator 命令,进行检查安装是否成功。最后再执行./m daemon setup start 启动 Load Generator,运行命令如下

[amos@localhost bin]$./m daemon setup start

运行后提示 m agent daemon(4258)表明启动成功

到此 Load Generator 在 CentOS 6.5 下的安装、配置及启动过程介绍完毕

6.3.8 Controller 场景运行

在场景的运行时根据性能测试场景(见表 6-7)来执行负载测试

表 6-7 性能测试场景

6.3.9 Analysis 结果分析

Analysis 的功能就是将场景运行中所得到的数据整合在一起,通过对结果数据的分析来确定系统可能存在性能问题以及服务器可能存在的性能问题。当场景运行结束后,通常在 Controller 中,通过菜单栏下的「结果」Analysis Result 打开 Analysis 对结果进行整理和分析。具体数据如下

1.分析概要

分析概要收集了基本的数据,如图 6-66 所示。图中「90 Percent」表示在采样数据中有 90%的数据比该值(4.315s)小,它也是事务响应时间的参考值

图 6-66 分析概要

2.添加监控图

默认情况下,Analysis 提供了最基本的 5 个图,可以通过在界面中右键菜单完成添加新图的操作,如图 6-67 所示

3.合并图

Analysis 分析主要通过数据和相关图进行分析,如何处理图和图之间的关系。这里主要介绍一下,如何将图片进行合并。比如将 CPU 资源图中的 CPU 的占用率和运行用户数进行合并

首先打开系统资源图,右键设置筛选 CPU 的计数器,如图 6-68 所示

然后在系统资源图 6-68 中,右键再选择「合并图,弹出对话框选择「运行用户数,如上图 6-69 所示

图 6-68 设置筛选

图 6-69 合并图

最后单击「确定」生成合并图。此时可以清楚地看出,当用户加载完成后,开始并发时导致系统资源 CPU 持续在 90%左右,如图 6-70 所示

图 6-70 合并后的分析图

4.生成性能测试报告

Analysis 还提供了导出性能测试报告的功能,当 Analysis 将相关的计数器图整理完成后,可以直接生成性能测试报告,为开发调优提供数据依据

Analysis 还可以自定义模板,可以导出 Word 格式、PDF 格式、HTML 格式等。来生成自己的性能测试报告

posted @ 2020-09-03 16:40  Marlon康  阅读(618)  评论(0编辑  收藏  举报